mirror of
https://github.com/kdave/btrfs-progs
synced 2025-04-11 03:31:17 +00:00
btrfs-progs: check btrfs_scan_one_device in btrfs_scan_lblkid()
Even if it's "definitely" btrfs at this point, btrfs_scan_one_device could fail for other reasons. Check the return value, warn if it fails, and skip the device register. Resolves-Coverity-CID: 1125925 Signed-off-by: Eric Sandeen <sandeen@redhat.com> reviewed-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
This commit is contained in:
parent
18800f4a31
commit
e11712a146
9
utils.c
9
utils.c
@ -1960,6 +1960,7 @@ int test_skip_this_disk(char *path)
|
|||||||
int btrfs_scan_lblkid(int update_kernel)
|
int btrfs_scan_lblkid(int update_kernel)
|
||||||
{
|
{
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
|
int ret;
|
||||||
u64 num_devices;
|
u64 num_devices;
|
||||||
struct btrfs_fs_devices *tmp_devices;
|
struct btrfs_fs_devices *tmp_devices;
|
||||||
blkid_dev_iterate iter = NULL;
|
blkid_dev_iterate iter = NULL;
|
||||||
@ -1988,8 +1989,14 @@ int btrfs_scan_lblkid(int update_kernel)
|
|||||||
printf("ERROR: could not open %s\n", path);
|
printf("ERROR: could not open %s\n", path);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
btrfs_scan_one_device(fd, path, &tmp_devices,
|
ret = btrfs_scan_one_device(fd, path, &tmp_devices,
|
||||||
&num_devices, BTRFS_SUPER_INFO_OFFSET);
|
&num_devices, BTRFS_SUPER_INFO_OFFSET);
|
||||||
|
if (ret) {
|
||||||
|
printf("ERROR: could not scan %s\n", path);
|
||||||
|
close (fd);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
close(fd);
|
close(fd);
|
||||||
if (update_kernel)
|
if (update_kernel)
|
||||||
btrfs_register_one_device(path);
|
btrfs_register_one_device(path);
|
||||||
|
Loading…
Reference in New Issue
Block a user