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 majord...@vger.kernel.org
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 majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html