Hi Chris,
------- diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index e9676a4..1224b61 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -533,7 +533,7 @@ static noinline int device_list_add(const char *path, * the btrfs dev scan cli, after FS has been mounted. */ if (fs_devices->opened) { - return -EBUSY; + goto out; } else { /* * That is if the FS is _not_ mounted and if you @@ -566,6 +566,7 @@ static noinline int device_list_add(const char *path, if (!fs_devices->opened) device->generation = found_transid; +out: *fs_devices_ret = fs_devices; return ret;Anand, are you planning on sending a full patch out for this? One concern I have is that after the device_list_add call: if (!ret && fs_devices_ret) (*fs_devices_ret)->total_devices = total_devices; We should only be doing this from the newest super, not blindly overwriting. But that's a merge window fix. For now I just want to deal with the regression, and your patch above looks good. Thanks for jumping on this one.
Sorry for the trouble. yes, I will be sending a full patch. I am finding too difficult to revive the function btrfs_scan_one_device() which is predominately to handle device scan and list_update _before_ any mount. Further to the concern which you mention above, there is Ioctl BTRFS_IOC_DEV_READY also using this function, which absolutely should not have any intention to update the device list, but it does .. theoretically. And I note that this ioctl is used by systemd as well. So the fix is getting a bit complicated. I am attempting. Thanks, Anand
-chris -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
-- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
