diff options
author | Jeff Layton <jlayton@kernel.org> | 2019-11-07 09:39:32 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-12-04 22:33:58 +0100 |
commit | 54183e1bd28df076b9561d03633dc6b240be0c5c (patch) | |
tree | d52f44f2d78cd1bfaf57049d454491c48cb19929 /fs | |
parent | f206265997b729b5a78eb53007d127a540f3a482 (diff) | |
download | linux-stable-54183e1bd28df076b9561d03633dc6b240be0c5c.tar.gz linux-stable-54183e1bd28df076b9561d03633dc6b240be0c5c.tar.bz2 linux-stable-54183e1bd28df076b9561d03633dc6b240be0c5c.zip |
ceph: return -EINVAL if given fsc mount option on kernel w/o support
[ Upstream commit ff29fde84d1fc82f233c7da0daa3574a3942bec7 ]
If someone requests fscache on the mount, and the kernel doesn't
support it, it should fail the mount.
[ Drop ceph prefix -- it's provided by pr_err. ]
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ceph/super.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/fs/ceph/super.c b/fs/ceph/super.c index ab4868c7308e..b565c55ed064 100644 --- a/fs/ceph/super.c +++ b/fs/ceph/super.c @@ -255,6 +255,7 @@ static int parse_fsopt_token(char *c, void *private) return -ENOMEM; break; case Opt_fscache_uniq: +#ifdef CONFIG_CEPH_FSCACHE kfree(fsopt->fscache_uniq); fsopt->fscache_uniq = kstrndup(argstr[0].from, argstr[0].to-argstr[0].from, @@ -263,7 +264,10 @@ static int parse_fsopt_token(char *c, void *private) return -ENOMEM; fsopt->flags |= CEPH_MOUNT_OPT_FSCACHE; break; - /* misc */ +#else + pr_err("fscache support is disabled\n"); + return -EINVAL; +#endif case Opt_wsize: if (intval < (int)PAGE_SIZE || intval > CEPH_MAX_WRITE_SIZE) return -EINVAL; @@ -340,10 +344,15 @@ static int parse_fsopt_token(char *c, void *private) fsopt->flags &= ~CEPH_MOUNT_OPT_INO32; break; case Opt_fscache: +#ifdef CONFIG_CEPH_FSCACHE fsopt->flags |= CEPH_MOUNT_OPT_FSCACHE; kfree(fsopt->fscache_uniq); fsopt->fscache_uniq = NULL; break; +#else + pr_err("fscache support is disabled\n"); + return -EINVAL; +#endif case Opt_nofscache: fsopt->flags &= ~CEPH_MOUNT_OPT_FSCACHE; kfree(fsopt->fscache_uniq); |