diff options
author | Nathan Scott <nathans@sgi.com> | 2006-03-17 17:26:04 +1100 |
---|---|---|
committer | Nathan Scott <nathans@sgi.com> | 2006-03-17 17:26:04 +1100 |
commit | b12dd34298cf0cff9f337f667045335140873039 (patch) | |
tree | 0f2ef353bc17f247e538a28137a0a3f8ad3b5e0e /fs/xfs/xfs_itable.c | |
parent | 2ddd5928d01ca8eb49f55166411b64a5844a8959 (diff) | |
download | blackbird-op-linux-b12dd34298cf0cff9f337f667045335140873039.tar.gz blackbird-op-linux-b12dd34298cf0cff9f337f667045335140873039.zip |
[XFS] Fix an infinite loop issue in bulkstat when a corrupt inode is
detected. Thanks to Roger Willcocks.
SGI-PV: 951054
SGI-Modid: xfs-linux-melb:xfs-kern:25477a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_itable.c')
-rw-r--r-- | fs/xfs/xfs_itable.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c index c59450e1be40..32247b6bfee7 100644 --- a/fs/xfs/xfs_itable.c +++ b/fs/xfs/xfs_itable.c @@ -562,7 +562,8 @@ xfs_bulkstat( if (bp) xfs_buf_relse(bp); error = xfs_itobp(mp, NULL, ip, - &dip, &bp, bno); + &dip, &bp, bno, + XFS_IMAP_BULKSTAT); if (!error) clustidx = ip->i_boffset / mp->m_sb.sb_inodesize; kmem_zone_free(xfs_inode_zone, ip); @@ -570,6 +571,8 @@ xfs_bulkstat( mp, XFS_ERRTAG_BULKSTAT_READ_CHUNK, XFS_RANDOM_BULKSTAT_READ_CHUNK)) { bp = NULL; + ubleft = 0; + rval = error; break; } } |