]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: don't show full path of bind mounts in subvol=
authorJosef Bacik <josef@toxicpanda.com>
Wed, 22 Jul 2020 15:12:46 +0000 (11:12 -0400)
committerDavid Sterba <dsterba@suse.com>
Mon, 10 Aug 2020 16:58:26 +0000 (18:58 +0200)
commitdeda544273c18aea8d96d9016f63b0449daebefc
tree9029264b323c22653b445607bd27b01aa2fbeab3
parent76bc76bba988e62b4d376ab9fcc3c65b75c0a8b1
btrfs: don't show full path of bind mounts in subvol=

Chris Murphy reported a problem where rpm ostree will bind mount a bunch
of things for whatever voodoo it's doing.  But when it does this
/proc/mounts shows something like

  /dev/sda /mnt/test btrfs rw,relatime,subvolid=256,subvol=/foo 0 0
  /dev/sda /mnt/test/baz btrfs rw,relatime,subvolid=256,subvol=/foo/bar 0 0

Despite subvolid=256 being subvol=/foo.  This is because we're just
spitting out the dentry of the mount point, which in the case of bind
mounts is the source path for the mountpoint.  Instead we should spit
out the path to the actual subvol.  Fix this by looking up the name for
the subvolid we have mounted.  With this fix the same test looks like
this

  /dev/sda /mnt/test btrfs rw,relatime,subvolid=256,subvol=/foo 0 0
  /dev/sda /mnt/test/baz btrfs rw,relatime,subvolid=256,subvol=/foo 0 0

Reported-by: Chris Murphy <chris@colorremedies.com>
CC: stable@vger.kernel.org # 4.4+
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/super.c