Btrfs: remove rcu_barrier in btrfs_close_devices
It was introduced because btrfs used to do blkdev_put in a deferred work, now that btrfs has blkdev_put in place, this rcu_barrier can be removed. modprobe -r btrfs will do btrfs_cleanup_fs_uuids(), where it cleanup every %fs_devices on the list, but when we do btrfs_close_devices(), we have replaced the devices on the list with dummy ones which only have the same name and uuid, so modprobe -r btrfs will free those instead of what we were using, this change won't cause a problem for it. Signed-off-by: Liu Bo <bo.li.liu@oracle.com> Reviewed-by: Anand Jain <anand.jain@oracle.com> Reviewed-by: David Sterba <dsterba@suse.com> [ copied 2nd paragraph from mailinglist discussion ] Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
8577787fac
commit
47dba17171
@ -936,12 +936,6 @@ int btrfs_close_devices(struct btrfs_fs_devices *fs_devices)
|
|||||||
__btrfs_close_devices(fs_devices);
|
__btrfs_close_devices(fs_devices);
|
||||||
free_fs_devices(fs_devices);
|
free_fs_devices(fs_devices);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
* Wait for rcu kworkers under __btrfs_close_devices
|
|
||||||
* to finish all blkdev_puts so device is really
|
|
||||||
* free when umount is done.
|
|
||||||
*/
|
|
||||||
rcu_barrier();
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user