btrfs: annotate device name rcu_string with __rcu
authorMadhuparna Bhowmik <madhuparnabhowmik04@gmail.com>
Wed, 4 Dec 2019 20:19:01 +0000 (01:49 +0530)
committerDavid Sterba <dsterba@suse.com>
Wed, 7 Oct 2020 10:17:59 +0000 (12:17 +0200)
This patch fixes the following sparse errors in
fs/btrfs/super.c in function btrfs_show_devname()

  fs/btrfs/super.c: error: incompatible types in comparison expression (different address spaces):
  fs/btrfs/super.c:    struct rcu_string [noderef] <asn:4> *
  fs/btrfs/super.c:    struct rcu_string *

The error was because of the following line in function btrfs_show_devname():

  if (first_dev)
 seq_escape(m, rcu_str_deref(first_dev->name), " \t\n\\");

Annotating the btrfs_device::name member with __rcu fixes the sparse
error.

Acked-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik04@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/volumes.h

index 48bdca0..bf27ac0 100644 (file)
@@ -58,7 +58,7 @@ struct btrfs_device {
        struct btrfs_fs_devices *fs_devices;
        struct btrfs_fs_info *fs_info;
 
-       struct rcu_string *name;
+       struct rcu_string __rcu *name;
 
        u64 generation;