aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/volumes.h
diff options
context:
space:
mode:
authorNikolay Borisov <nborisov@suse.com>2019-03-27 14:24:11 +0200
committerDavid Sterba <dsterba@suse.com>2019-04-29 19:02:37 +0200
commit8e75fd893b0608aa3a45f8654b71960423df5f3e (patch)
tree1b4985f7563cc2a6a1877e03e3178d202342a7a0 /fs/btrfs/volumes.h
parentbtrfs: Implement set_extent_bits_nowait (diff)
downloadlinux-dev-8e75fd893b0608aa3a45f8654b71960423df5f3e.tar.xz
linux-dev-8e75fd893b0608aa3a45f8654b71960423df5f3e.zip
btrfs: Stop using call_rcu for device freeing
btrfs_device structs are freed from RCU context since device iteration is protected by RCU. Currently this is achieved by using call_rcu since no blocking functions are called within btrfs_free_device. Future refactoring of pending/pinned chunks will require calling sleeping functions. This patch is in preparation for these changes by simply switching from RCU callbacks to explicit calls of synchronize_rcu and calling btrfs_free_device directly. This is functionally equivalent, making sure that there are no readers at that time. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/volumes.h')
-rw-r--r--fs/btrfs/volumes.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/btrfs/volumes.h b/fs/btrfs/volumes.h
index b9912b910d6d..d3658a4e65db 100644
--- a/fs/btrfs/volumes.h
+++ b/fs/btrfs/volumes.h
@@ -118,7 +118,6 @@ struct btrfs_device {
struct scrub_ctx *scrub_ctx;
struct btrfs_work work;
- struct rcu_head rcu;
/* readahead state */
atomic_t reada_in_flight;