Merge tag 'modules-for-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / fs / xfs / xfs_iomap.c
index e17ab7f..d154f42 100644 (file)
@@ -159,7 +159,7 @@ xfs_iomap_eof_align_last_fsb(
        struct xfs_bmbt_irec    irec;
        struct xfs_iext_cursor  icur;
 
-       ASSERT(ifp->if_flags & XFS_IFEXTENTS);
+       ASSERT(!xfs_need_iread_extents(ifp));
 
        /*
         * Always round up the allocation request to the extent hint boundary.
@@ -198,6 +198,7 @@ xfs_iomap_write_direct(
        bool                    force = false;
        int                     error;
        int                     bmapi_flags = XFS_BMAPI_PREALLOC;
+       int                     nr_exts = XFS_IEXT_ADD_NOSPLIT_CNT;
 
        ASSERT(count_fsb > 0);
 
@@ -232,6 +233,7 @@ xfs_iomap_write_direct(
                bmapi_flags = XFS_BMAPI_CONVERT | XFS_BMAPI_ZERO;
                if (imap->br_state == XFS_EXT_UNWRITTEN) {
                        force = true;
+                       nr_exts = XFS_IEXT_WRITE_UNWRITTEN_CNT;
                        dblocks = XFS_DIOSTRAT_SPACE_RES(mp, 0) << 1;
                }
        }
@@ -241,8 +243,7 @@ xfs_iomap_write_direct(
        if (error)
                return error;
 
-       error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK,
-                       XFS_IEXT_ADD_NOSPLIT_CNT);
+       error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK, nr_exts);
        if (error)
                goto out_trans_cancel;
 
@@ -572,7 +573,7 @@ xfs_iomap_write_unwritten(
                        i_size_write(inode, i_size);
                i_size = xfs_new_eof(ip, i_size);
                if (i_size) {
-                       ip->i_d.di_size = i_size;
+                       ip->i_disk_size = i_size;
                        xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
                }
 
@@ -666,7 +667,7 @@ xfs_ilock_for_iomap(
         * is an opencoded xfs_ilock_data_map_shared() call but with
         * non-blocking behaviour.
         */
-       if (!(ip->i_df.if_flags & XFS_IFEXTENTS)) {
+       if (xfs_need_iread_extents(&ip->i_df)) {
                if (flags & IOMAP_NOWAIT)
                        return -EAGAIN;
                mode = XFS_ILOCK_EXCL;
@@ -893,11 +894,9 @@ xfs_buffered_write_iomap_begin(
 
        XFS_STATS_INC(mp, xs_blk_mapw);
 
-       if (!(ip->i_df.if_flags & XFS_IFEXTENTS)) {
-               error = xfs_iread_extents(NULL, ip, XFS_DATA_FORK);
-               if (error)
-                       goto out_unlock;
-       }
+       error = xfs_iread_extents(NULL, ip, XFS_DATA_FORK);
+       if (error)
+               goto out_unlock;
 
        /*
         * Search the data fork first to look up our source mapping.  We
@@ -1208,11 +1207,9 @@ xfs_seek_iomap_begin(
                return -EIO;
 
        lockmode = xfs_ilock_data_map_shared(ip);
-       if (!(ip->i_df.if_flags & XFS_IFEXTENTS)) {
-               error = xfs_iread_extents(NULL, ip, XFS_DATA_FORK);
-               if (error)
-                       goto out_unlock;
-       }
+       error = xfs_iread_extents(NULL, ip, XFS_DATA_FORK);
+       if (error)
+               goto out_unlock;
 
        if (xfs_iext_lookup_extent(ip, &ip->i_df, offset_fsb, &icur, &imap)) {
                /*