Message ID | 20150402034954.GA25368@mew.Belkin (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Apr 01, 2015 at 08:49:54PM -0700, Omar Sandoval wrote: > Hm, yeah, that's unfortunate, thanks for pointing that out. It looks > like we can get the subvolume ID reliably: > > ---- > diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c > index 05fef19..a74ddb3 100644 > --- a/fs/btrfs/super.c > +++ b/fs/btrfs/super.c > @@ -1024,6 +1024,8 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry) > struct btrfs_root *root = info->tree_root; > char *compress_type; > > + seq_printf(seq, ",subvolid=%llu", > + BTRFS_I(d_inode(dentry))->root->root_key.objectid); yes, subvolid is reliable, but not very friendly from users' POV. I'd like to see subvol=/path there. Possibly we can have both. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Apr 02, 2015 at 05:02:25PM +0200, David Sterba wrote: > On Wed, Apr 01, 2015 at 08:49:54PM -0700, Omar Sandoval wrote: > > Hm, yeah, that's unfortunate, thanks for pointing that out. It looks > > like we can get the subvolume ID reliably: > > > > ---- > > diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c > > index 05fef19..a74ddb3 100644 > > --- a/fs/btrfs/super.c > > +++ b/fs/btrfs/super.c > > @@ -1024,6 +1024,8 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry) > > struct btrfs_root *root = info->tree_root; > > char *compress_type; > > > > + seq_printf(seq, ",subvolid=%llu", > > + BTRFS_I(d_inode(dentry))->root->root_key.objectid); > > yes, subvolid is reliable, but not very friendly from users' POV. I'd > like to see subvol=/path there. Possibly we can have both. So are you saying that we should try to fix the bug in userspace by first getting subvol/subvolid in /proc/mounts, or do you want to keep that a separate issue? Just asking because you didn't comment on the kernel-side fix. Here's a concrete implementation of what I'm talking about: https://github.com/osandov/linux/tree/btrfs-delete-mounted-subvol.
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 05fef19..a74ddb3 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -1024,6 +1024,8 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry) struct btrfs_root *root = info->tree_root; char *compress_type; + seq_printf(seq, ",subvolid=%llu", + BTRFS_I(d_inode(dentry))->root->root_key.objectid); if (btrfs_test_opt(root, DEGRADED)) seq_puts(seq, ",degraded"); if (btrfs_test_opt(root, NODATASUM))