Checking whether the "fd=", "rootmode=", "user_id=" and "group_id=" mount
options are present can be moved from fuse_get_tree() into
fuse_fill_super() where the value of the options are consumed.
This relaxes semantics of reusing a fuse blockdev mount using the device
name. Before this patch presence of these options were enforced but values
ignored, after this patch these options are completely ignored in this
case.
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
struct fuse_conn *fc;
struct fuse_mount *fm;
+ if (!ctx->fd_present || !ctx->rootmode_present ||
+ !ctx->user_id_present || !ctx->group_id_present)
+ return -EINVAL;
+
err = -EINVAL;
file = fget(ctx->fd);
if (!file)
{
struct fuse_fs_context *ctx = fsc->fs_private;
- if (!ctx->fd_present || !ctx->rootmode_present ||
- !ctx->user_id_present || !ctx->group_id_present)
- return -EINVAL;
-
-#ifdef CONFIG_BLOCK
- if (ctx->is_bdev)
+ if (IS_ENABLED(CONFIG_BLOCK) && ctx->is_bdev) {
return get_tree_bdev(fsc, fuse_fill_super);
-#endif
+ }
return get_tree_nodev(fsc, fuse_fill_super);
}