| To: | xfs@xxxxxxxxxxx |
|---|---|
| Subject: | [PATCH] xfs: Check error during inode btree iteration in xfs_bulkstat() |
| From: | Jan Kara <jack@xxxxxxx> |
| Date: | Tue, 21 Oct 2014 16:31:32 +0200 |
| Cc: | Dave Chinner <david@xxxxxxxxxxxxx>, Jan Kara <jack@xxxxxxx> |
| Delivered-to: | xfs@xxxxxxxxxxx |
xfs_bulkstat() doesn't check error return from xfs_btree_increment(). In
case of specific fs corruption that could result in xfs_bulkstat()
entering an infinite loop because we would be looping over the same
chunk over and over again. Fix the problem by checking the return value
and terminating the loop properly.
Coverity-id: 1231338
Signed-off-by: Jan Kara <jack@xxxxxxx>
---
fs/xfs/xfs_itable.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
index f1deb961a296..66d5c619517d 100644
--- a/fs/xfs/xfs_itable.c
+++ b/fs/xfs/xfs_itable.c
@@ -474,6 +474,10 @@ xfs_bulkstat(
*/
agino = r.ir_startino + XFS_INODES_PER_CHUNK;
error = xfs_btree_increment(cur, 0, &tmp);
+ if (error) {
+ end_of_ag = 1;
+ break;
+ }
cond_resched();
}
/*
--
1.8.1.4
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [PATCH 2/2] Add support to RENAME_EXCHANGE flag, Carlos Maiolino |
|---|---|
| Next by Date: | [PATCH 0/12 v3] Moving i_dquot out of struct inode, Jan Kara |
| Previous by Thread: | High I/O waits, Stefan Bottelier | Ocius.nl |
| Next by Thread: | Re: [PATCH] xfs: Check error during inode btree iteration in xfs_bulkstat(), jie liu |
| Indexes: | [Date] [Thread] [Top] [All Lists] |