diff options
author | Josef Bacik <josef@redhat.com> | 2011-01-28 13:44:44 -0500 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2011-01-28 16:42:34 -0500 |
commit | ad0397a7a97f55fd7f70998ec208c5d8b90310ff (patch) | |
tree | dbebfe94a571155d4f376e265026c9a1ca1e2f2f /fs | |
parent | 68a82277b8619e6d0f2738b1d9b160b627e81e92 (diff) |
Btrfs: do error checking in btrfs_del_csums
Got a report of a box panicing because we got a NULL eb in read_extent_buffer.
His fs was borked and btrfs_search_path returned EIO, but we don't check for
errors so the box paniced. Yes I know this will just make something higher up
the stack panic, but that's a problem for future Josef. Thanks,
Signed-off-by: Josef Bacik <josef@redhat.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/file-item.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c index d0bc72657cd7..4f19a3e1bf32 100644 --- a/fs/btrfs/file-item.c +++ b/fs/btrfs/file-item.c | |||
@@ -550,7 +550,10 @@ int btrfs_del_csums(struct btrfs_trans_handle *trans, | |||
550 | if (path->slots[0] == 0) | 550 | if (path->slots[0] == 0) |
551 | goto out; | 551 | goto out; |
552 | path->slots[0]--; | 552 | path->slots[0]--; |
553 | } else if (ret < 0) { | ||
554 | goto out; | ||
553 | } | 555 | } |
556 | |||
554 | leaf = path->nodes[0]; | 557 | leaf = path->nodes[0]; |
555 | btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); | 558 | btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); |
556 | 559 | ||