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 fd = -1;
|
||||
int ret;
|
||||
u64 num_devices;
|
||||
struct btrfs_fs_devices *tmp_devices;
|
||||
blkid_dev_iterate iter = NULL;
|
||||
@ -1988,8 +1989,14 @@ int btrfs_scan_lblkid(int update_kernel)
|
||||
printf("ERROR: could not open %s\n", path);
|
||||
continue;
|
||||
}
|
||||
btrfs_scan_one_device(fd, path, &tmp_devices,
|
||||
ret = btrfs_scan_one_device(fd, path, &tmp_devices,
|
||||
&num_devices, BTRFS_SUPER_INFO_OFFSET);
|
||||
if (ret) {
|
||||
printf("ERROR: could not scan %s\n", path);
|
||||
close (fd);
|
||||
continue;
|
||||
}
|
||||
|
||||
close(fd);
|
||||
if (update_kernel)
|
||||
btrfs_register_one_device(path);
|
||||
|
Loading…
Reference in New Issue
Block a user