diff options
author | Josef Bacik <josef@redhat.com> | 2011-07-02 21:24:41 +0000 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2011-07-06 18:46:43 -0400 |
commit | 508794eb5ec2a2b832742e78c6766844b10c0c94 (patch) | |
tree | 3ee4f10297e5e99aa1092c3f82d68ea8543a9dba /fs | |
parent | 0942caa373c676dca614ea8352ac77e0270aba73 (diff) | |
download | linux-508794eb5ec2a2b832742e78c6766844b10c0c94.tar.gz linux-508794eb5ec2a2b832742e78c6766844b10c0c94.tar.bz2 linux-508794eb5ec2a2b832742e78c6766844b10c0c94.zip |
Btrfs: don't panic if we get an error while balancing V2
A user reported an error where if we try to balance an fs after a device has
been removed it will blow up. This is because we get an EIO back and this is
where BUG_ON(ret) bites us in the ass. To fix we just exit. Thanks,
Reported-by: Anand Jain <Anand.Jain@oracle.com>
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/volumes.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 1efa56e18f9b..19450bc53632 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -2098,7 +2098,8 @@ int btrfs_balance(struct btrfs_root *dev_root) chunk_root->root_key.objectid, found_key.objectid, found_key.offset); - BUG_ON(ret && ret != -ENOSPC); + if (ret && ret != -ENOSPC) + goto error; key.offset = found_key.offset - 1; } ret = 0; |