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:
Anand Jain 2014-10-30 12:43:03 +08:00 committed by David Sterba
parent ae8f7f687f
commit cfdb818dda

19
utils.c
View File

@ -1867,29 +1867,12 @@ int get_fs_info(char *path, struct btrfs_ioctl_fs_info_args *fi_args,
if (!fi_args->num_devices)
goto out;
/*
* 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));
di_args = *di_ret = malloc((fi_args->num_devices) * sizeof(*di_args));
if (!di_args) {
ret = -errno;
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) {
BUG_ON(ndevs >= fi_args->num_devices);
ret = get_device_info(fd, i, &di_args[ndevs]);