Btrfs: do error checking in btrfs_del_csums
authorJosef Bacik <josef@redhat.com>
Fri, 28 Jan 2011 18:44:44 +0000 (18:44 +0000)
committerChris Mason <chris.mason@oracle.com>
Fri, 28 Jan 2011 21:42:34 +0000 (16:42 -0500)
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>
fs/btrfs/file-item.c

index d0bc72657cd716ee4f4b3f1afea562d33b965c78..4f19a3e1bf328dc39ab763dc6f604095aa5d76c7 100644 (file)
@@ -550,7 +550,10 @@ int btrfs_del_csums(struct btrfs_trans_handle *trans,
                        if (path->slots[0] == 0)
                                goto out;
                        path->slots[0]--;
+               } else if (ret < 0) {
+                       goto out;
                }
+
                leaf = path->nodes[0];
                btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);