summaryrefslogtreecommitdiff
path: root/fs/btrfs/volumes.c
diff options
context:
space:
mode:
authorJosef Bacik <josef@redhat.com>2010-01-27 02:09:00 +0000
committerChris Mason <chris.mason@oracle.com>2010-01-28 16:20:39 -0500
commit7f59203abeaf18bf3497b308891f95a4489810ad (patch)
treeaa10db576f08b2acf4b1f01ac86997311a936727 /fs/btrfs/volumes.c
parentf48b90756bd834dda852ff514f2690d3175b1f44 (diff)
downloadkernel-common-7f59203abeaf18bf3497b308891f95a4489810ad.tar.gz
kernel-common-7f59203abeaf18bf3497b308891f95a4489810ad.tar.bz2
kernel-common-7f59203abeaf18bf3497b308891f95a4489810ad.zip
Btrfs: check return value of open_bdev_exclusive properly
Hit this problem while testing RAID1 failure stuff. open_bdev_exclusive returns ERR_PTR(), not NULL. So change the return value properly. This is important if you accidently specify a device that doesn't exist when trying to add a new device to an array, you will panic the box dereferencing bdev. Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/volumes.c')
-rw-r--r--fs/btrfs/volumes.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 66122bdf8bbf..5eb7459e3782 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -1434,8 +1434,8 @@ int btrfs_init_new_device(struct btrfs_root *root, char *device_path)
return -EINVAL;
bdev = open_bdev_exclusive(device_path, 0, root->fs_info->bdev_holder);
- if (!bdev)
- return -EIO;
+ if (IS_ERR(bdev))
+ return PTR_ERR(bdev);
if (root->fs_info->fs_devices->seeding) {
seeding_dev = 1;