mirror of
https://github.com/kdave/btrfs-progs
synced 2024-12-27 00:22:22 +00:00
revert btrfs-progs: do a separate probe for _transient_ replacing device
There is a compatibility issue with older kernel with the progs commit id as below.
d0588bfa47
btrfs-progs: do a separate probe for _transient_ replacing device
So as of now writing to revert the above commit id.
The brewing sysfs interface would help to fix the impending issue, which is
seed device would fail show in 'btrfs fi show' output of a sprout device.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
parent
ae8f7f687f
commit
cfdb818dda
19
utils.c
19
utils.c
@ -1867,29 +1867,12 @@ int get_fs_info(char *path, struct btrfs_ioctl_fs_info_args *fi_args,
|
|||||||
if (!fi_args->num_devices)
|
if (!fi_args->num_devices)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/*
|
di_args = *di_ret = malloc((fi_args->num_devices) * sizeof(*di_args));
|
||||||
* with kernel patch
|
|
||||||
* btrfs: ioctl BTRFS_IOC_FS_INFO and BTRFS_IOC_DEV_INFO miss-matched with slots
|
|
||||||
* the kernel now returns total_devices which does not include
|
|
||||||
* replacing device if running.
|
|
||||||
* As we need to get dev info of the replace device if it is running,
|
|
||||||
* so just add one to fi_args->num_devices.
|
|
||||||
*/
|
|
||||||
|
|
||||||
di_args = *di_ret = malloc((fi_args->num_devices + 1) * sizeof(*di_args));
|
|
||||||
if (!di_args) {
|
if (!di_args) {
|
||||||
ret = -errno;
|
ret = -errno;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* get the replace target device if it is there */
|
|
||||||
ret = get_device_info(fd, i, &di_args[ndevs]);
|
|
||||||
if (!ret) {
|
|
||||||
ndevs++;
|
|
||||||
fi_args->num_devices++;
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
|
|
||||||
for (; i <= fi_args->max_id; ++i) {
|
for (; i <= fi_args->max_id; ++i) {
|
||||||
BUG_ON(ndevs >= fi_args->num_devices);
|
BUG_ON(ndevs >= fi_args->num_devices);
|
||||||
ret = get_device_info(fd, i, &di_args[ndevs]);
|
ret = get_device_info(fd, i, &di_args[ndevs]);
|
||||||
|
Loading…
Reference in New Issue
Block a user