Message ID | 87mv60vxr7.wl-satoru.takeuchi@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2017年09月12日 21:42, Satoru Takeuchi wrote: > `btrfs sub set-default` succeeds to set an ID which isn't corresponding to any > fs/file tree. If such the bad ID is set to a filesystem, we can't mount this > filesystem without specifying `subvol` or `subvolid` mount options. > > Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com> Reviewed-by: Qu Wenruo <quwenruo.btrfs@gmx.com> I was a little worried about the handling of special treeid like RECLOC and DATA_RELOC, but is_fstree() called btrfs_qgroup_level() check so we don't need to worry about that. Nice catch. Thanks, Qu > - > fs/btrfs/ioctl.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c > index ae8fbf9..8e1bc19 100644 > --- a/fs/btrfs/ioctl.c > +++ b/fs/btrfs/ioctl.c > @@ -4057,6 +4057,10 @@ static long btrfs_ioctl_default_subvol(struct file *file, void __user *argp) > ret = PTR_ERR(new_root); > goto out; > } > + if (!is_fstree(new_root->objectid)) { > + ret = -ENOENT; > + goto out; > + } > > path = btrfs_alloc_path(); > if (!path) { > -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Sep 12, 2017 at 10:42:52PM +0900, Satoru Takeuchi wrote: > `btrfs sub set-default` succeeds to set an ID which isn't corresponding to any > fs/file tree. If such the bad ID is set to a filesystem, we can't mount this > filesystem without specifying `subvol` or `subvolid` mount options. > > Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com> Fixes: 6ef5ed0d386b Reviewed-by: David Sterba <dsterba@suse.com> -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index ae8fbf9..8e1bc19 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -4057,6 +4057,10 @@ static long btrfs_ioctl_default_subvol(struct file *file, void __user *argp) ret = PTR_ERR(new_root); goto out; } + if (!is_fstree(new_root->objectid)) { + ret = -ENOENT; + goto out; + } path = btrfs_alloc_path(); if (!path) {
`btrfs sub set-default` succeeds to set an ID which isn't corresponding to any fs/file tree. If such the bad ID is set to a filesystem, we can't mount this filesystem without specifying `subvol` or `subvolid` mount options. Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com> --- fs/btrfs/ioctl.c | 4 ++++ 1 file changed, 4 insertions(+)