]> xenbits.xensource.com Git - arm/linux.git/commitdiff
xfs: remove XFS_BMAP_MAX_SHIFT_EXTENTS
authorChristoph Hellwig <hch@lst.de>
Thu, 19 Oct 2017 18:07:10 +0000 (11:07 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 26 Oct 2017 22:38:27 +0000 (15:38 -0700)
The define was always set to 1, which means looping until we reach is
was dead code from the start.

Also remove an initialization of next_fsb for the done case that doesn't
fit the new code flow - it was never checked by the caller in the done
case to start with.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/libxfs/xfs_bmap.c
fs/xfs/libxfs/xfs_bmap.h
fs/xfs/xfs_bmap_util.c

index defe70a54ffcefeeaca660ceff074dbd2d7eeafe..d0118a2e51d3ea81452d2ba3a0401a352e5be6e9 100644 (file)
@@ -5703,8 +5703,7 @@ update_current_ext:
 /*
  * Shift extent records to the left/right to cover/create a hole.
  *
- * The maximum number of extents to be shifted in a single operation is
- * @num_exts. @stop_fsb specifies the file offset at which to stop shift and the
+ * @stop_fsb specifies the file offset at which to stop shift and the
  * file offset where we've left off is returned in @next_fsb. @offset_shift_fsb
  * is the length by which each extent is shifted. If there is no hole to shift
  * the extents into, this will be considered invalid operation and we abort
@@ -5720,14 +5719,12 @@ xfs_bmap_shift_extents(
        xfs_fileoff_t           stop_fsb,
        xfs_fsblock_t           *firstblock,
        struct xfs_defer_ops    *dfops,
-       enum shift_direction    direction,
-       int                     num_exts)
+       enum shift_direction    direction)
 {
        struct xfs_btree_cur            *cur = NULL;
        struct xfs_bmbt_irec            got;
        struct xfs_mount                *mp = ip->i_mount;
        struct xfs_ifork                *ifp;
-       xfs_extnum_t                    nexts = 0;
        xfs_extnum_t                    current_ext;
        xfs_extnum_t                    total_extents;
        xfs_extnum_t                    stop_extent;
@@ -5825,31 +5822,27 @@ xfs_bmap_shift_extents(
                }
        }
 
-       while (nexts++ < num_exts) {
-               error = xfs_bmse_shift_one(ip, whichfork, offset_shift_fsb,
-                                          &current_ext, &got, cur, &logflags,
-                                          direction, dfops);
-               if (error)
-                       goto del_cursor;
-               /*
-                * If there was an extent merge during the shift, the extent
-                * count can change. Update the total and grade the next record.
-                */
-               if (direction == SHIFT_LEFT) {
-                       total_extents = xfs_iext_count(ifp);
-                       stop_extent = total_extents;
-               }
+       error = xfs_bmse_shift_one(ip, whichfork, offset_shift_fsb,
+                                  &current_ext, &got, cur, &logflags,
+                                  direction, dfops);
+       if (error)
+               goto del_cursor;
+       /*
+        * If there was an extent merge during the shift, the extent
+        * count can change. Update the total and grade the next record.
+        */
+       if (direction == SHIFT_LEFT) {
+               total_extents = xfs_iext_count(ifp);
+               stop_extent = total_extents;
+       }
 
-               if (current_ext == stop_extent) {
-                       *done = 1;
-                       *next_fsb = NULLFSBLOCK;
-                       break;
-               }
-               xfs_iext_get_extent(ifp, current_ext, &got);
+       if (current_ext == stop_extent) {
+               *done = 1;
+               goto del_cursor;
        }
+       xfs_iext_get_extent(ifp, current_ext, &got);
 
-       if (!*done)
-               *next_fsb = got.br_startoff;
+       *next_fsb = got.br_startoff;
 
 del_cursor:
        if (cur)
index 50b8977163ecf100228f77f41eb68331b86a5ca8..ba5a4835bb1366616dd5da5243cd847bcd14bbc2 100644 (file)
@@ -183,15 +183,6 @@ static inline bool xfs_bmap_is_real_extent(struct xfs_bmbt_irec *irec)
                !isnullstartblock(irec->br_startblock);
 }
 
-/*
- * This macro is used to determine how many extents will be shifted
- * in one write transaction. We could require two splits,
- * an extent move on the first and an extent merge on the second,
- * So it is proper that one extent is shifted inside write transaction
- * at a time.
- */
-#define XFS_BMAP_MAX_SHIFT_EXTENTS     1
-
 enum shift_direction {
        SHIFT_LEFT = 0,
        SHIFT_RIGHT,
@@ -240,8 +231,7 @@ uint        xfs_default_attroffset(struct xfs_inode *ip);
 int    xfs_bmap_shift_extents(struct xfs_trans *tp, struct xfs_inode *ip,
                xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb,
                int *done, xfs_fileoff_t stop_fsb, xfs_fsblock_t *firstblock,
-               struct xfs_defer_ops *dfops, enum shift_direction direction,
-               int num_exts);
+               struct xfs_defer_ops *dfops, enum shift_direction direction);
 int    xfs_bmap_split_extent(struct xfs_inode *ip, xfs_fileoff_t split_offset);
 int    xfs_bmapi_reserve_delalloc(struct xfs_inode *ip, int whichfork,
                xfs_fileoff_t off, xfs_filblks_t len, xfs_filblks_t prealloc,
index 47b53c88de7cc47958ab14d50831b3d87c003246..3273f083c49685171c0bee1d21693fe8272800e5 100644 (file)
@@ -1359,14 +1359,9 @@ xfs_collapse_file_space(
                xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
 
                xfs_defer_init(&dfops, &first_block);
-
-               /*
-                * We are using the write transaction in which max 2 bmbt
-                * updates are allowed
-                */
                error = xfs_bmap_shift_extents(tp, ip, &next_fsb, shift_fsb,
                                &done, stop_fsb, &first_block, &dfops,
-                               SHIFT_LEFT, XFS_BMAP_MAX_SHIFT_EXTENTS);
+                               SHIFT_LEFT);
                if (error)
                        goto out_bmap_cancel;
 
@@ -1438,14 +1433,9 @@ xfs_insert_file_space(
                xfs_ilock(ip, XFS_ILOCK_EXCL);
                xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
                xfs_defer_init(&dfops, &first_block);
-
-               /*
-                * We are using the write transaction in which max 2 bmbt
-                * updates are allowed
-                */
                error = xfs_bmap_shift_extents(tp, ip, &next_fsb, shift_fsb,
                                &done, stop_fsb, &first_block, &dfops,
-                               SHIFT_RIGHT, XFS_BMAP_MAX_SHIFT_EXTENTS);
+                               SHIFT_RIGHT);
                if (error)
                        goto out_bmap_cancel;