On 05/16/2018 12:26 AM, David Sterba wrote:
On Thu, Apr 12, 2018 at 10:29:33AM +0800, Anand Jain wrote:
btrfs_free_extra_devids() frees the orphan fsid::devid but its search is
limited to btrfs_fs_devices::devices, so we dont need uuid_mutex.

 From that it's not clear why there's no locking at all now:

@@ -897,7 +897,6 @@ void btrfs_free_extra_devids(struct btrfs_fs_devices 
*fs_devices, int step)
        struct btrfs_device *device, *next;
        struct btrfs_device *latest_dev = NULL;
- mutex_lock(&uuid_mutex);

ie. why is this not replaced by the device_list_lock. Please resend this
patch and explain in the changelog.

 My apologies for the delay.

 btrfs_free_extra_devids() needs device_list_mutex, will send a v2 for
 this.

 Thanks.

  again:
        /* This is the initialized path, it is safe to release the devices. */
        list_for_each_entry_safe(device, next, &fs_devices->devices, dev_list) {
@@ -951,8 +950,6 @@ void btrfs_free_extra_devids(struct btrfs_fs_devices 
*fs_devices, int step)
        }
fs_devices->latest_bdev = latest_dev->bdev;
-
-       mutex_unlock(&uuid_mutex);
  }
static void free_device_rcu(struct rcu_head *head)
--
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

Reply via email to