]> err.no Git - linux-2.6/blobdiff - fs/xfs/xfs_iomap.c
Merge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block
[linux-2.6] / fs / xfs / xfs_iomap.c
index ab5062199f55bf33bf6853f771d3677472724584..72786e356d56ebba6e1f6455cf9f471fd52745fa 100644 (file)
@@ -135,14 +135,10 @@ xfs_imap_to_bmap(
        int             flags)
 {
        xfs_mount_t     *mp;
-       xfs_fsize_t     nisize;
        int             pbm;
        xfs_fsblock_t   start_block;
 
        mp = io->io_mount;
-       nisize = XFS_SIZE(mp, io);
-       if (io->io_new_size > nisize)
-               nisize = io->io_new_size;
 
        for (pbm = 0; imaps && pbm < iomaps; imaps--, iomapp++, imap++, pbm++) {
                iomapp->iomap_offset = XFS_FSB_TO_B(mp, imap->br_startoff);
@@ -169,10 +165,6 @@ xfs_imap_to_bmap(
                                iomapp->iomap_flags |= IOMAP_UNWRITTEN;
                }
 
-               if ((iomapp->iomap_offset + iomapp->iomap_bsize) >= nisize) {
-                       iomapp->iomap_flags |= IOMAP_EOF;
-               }
-
                offset += iomapp->iomap_bsize - iomapp->iomap_delta;
        }
        return pbm;     /* Return the number filled */
@@ -451,19 +443,14 @@ xfs_iomap_write_direct(
                return XFS_ERROR(error);
 
        rt = XFS_IS_REALTIME_INODE(ip);
-       if (unlikely(rt)) {
-               if (!(extsz = ip->i_d.di_extsize))
-                       extsz = mp->m_sb.sb_rextsize;
-       } else {
-               extsz = ip->i_d.di_extsize;
-       }
+       extsz = xfs_get_extsz_hint(ip);
 
        isize = ip->i_size;
        if (io->io_new_size > isize)
                isize = io->io_new_size;
 
-       offset_fsb = XFS_B_TO_FSBT(mp, offset);
-       last_fsb = XFS_B_TO_FSB(mp, ((xfs_ufsize_t)(offset + count)));
+       offset_fsb = XFS_B_TO_FSBT(mp, offset);
+       last_fsb = XFS_B_TO_FSB(mp, ((xfs_ufsize_t)(offset + count)));
        if ((offset + count) > isize) {
                error = xfs_iomap_eof_align_last_fsb(mp, io, isize, extsz,
                                                        &last_fsb);
@@ -666,13 +653,7 @@ xfs_iomap_write_delay(
        if (error)
                return XFS_ERROR(error);
 
-       if (XFS_IS_REALTIME_INODE(ip)) {
-               if (!(extsz = ip->i_d.di_extsize))
-                       extsz = mp->m_sb.sb_rextsize;
-       } else {
-               extsz = ip->i_d.di_extsize;
-       }
-
+       extsz = xfs_get_extsz_hint(ip);
        offset_fsb = XFS_B_TO_FSBT(mp, offset);
 
 retry: