aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs')
-rw-r--r--fs/xfs/xfs_itable.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
index 1edd9afb664b..9972992fd3c3 100644
--- a/fs/xfs/xfs_itable.c
+++ b/fs/xfs/xfs_itable.c
@@ -619,21 +619,25 @@ xfs_bulkstat(
619 } 619 }
620 } 620 }
621 } 621 }
622 ino = XFS_AGINO_TO_INO(mp, agno, agino);
623 bno = XFS_AGB_TO_DADDR(mp, agno, agbno);
622 /* 624 /*
623 * Skip if this inode is free. 625 * Skip if this inode is free.
624 */ 626 */
625 if (XFS_INOBT_MASK(chunkidx) & irbp->ir_free) 627 if (XFS_INOBT_MASK(chunkidx) & irbp->ir_free) {
628 lastino = ino;
626 continue; 629 continue;
630 }
627 /* 631 /*
628 * Count used inodes as free so we can tell 632 * Count used inodes as free so we can tell
629 * when the chunk is used up. 633 * when the chunk is used up.
630 */ 634 */
631 irbp->ir_freecount++; 635 irbp->ir_freecount++;
632 ino = XFS_AGINO_TO_INO(mp, agno, agino);
633 bno = XFS_AGB_TO_DADDR(mp, agno, agbno);
634 if (!xfs_bulkstat_use_dinode(mp, flags, bp, 636 if (!xfs_bulkstat_use_dinode(mp, flags, bp,
635 clustidx, &dip)) 637 clustidx, &dip)) {
638 lastino = ino;
636 continue; 639 continue;
640 }
637 /* 641 /*
638 * If we need to do an iget, cannot hold bp. 642 * If we need to do an iget, cannot hold bp.
639 * Drop it, until starting the next cluster. 643 * Drop it, until starting the next cluster.
@@ -694,8 +698,7 @@ xfs_bulkstat(
694 if (end_of_ag) { 698 if (end_of_ag) {
695 agno++; 699 agno++;
696 agino = 0; 700 agino = 0;
697 } else 701 }
698 agino = XFS_INO_TO_AGINO(mp, lastino);
699 } else 702 } else
700 break; 703 break;
701 } 704 }