diff options
author | Martin Kaistra <martin.kaistra@linutronix.de> | 2020-07-07 12:31:59 +0200 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2020-08-02 22:23:46 +0200 |
commit | a7a8f4a1e6b309b5365be784a07bbda1ceab2d9e (patch) | |
tree | 6906568ee4d6f637030fb5cd8d3cc7d6eb6b64c6 /fs/ubifs/super.c | |
parent | 92ed301919932f777713b9172e525674157e983d (diff) | |
download | linux-a7a8f4a1e6b309b5365be784a07bbda1ceab2d9e.tar.gz linux-a7a8f4a1e6b309b5365be784a07bbda1ceab2d9e.tar.bz2 linux-a7a8f4a1e6b309b5365be784a07bbda1ceab2d9e.zip |
ubifs: add option to specify version for new file systems
Instead of creating ubifs file systems with UBIFS_FORMAT_VERSION
by default, add a module parameter ubifs.default_version to allow
the user to specify the desired version. Valid values are 4 to
UBIFS_FORMAT_VERSION (currently 5).
This way, one can for example create a file system with version 4
on kernel 4.19 which can still be mounted rw when downgrading to
kernel 4.9.
Signed-off-by: Martin Kaistra <martin.kaistra@linutronix.de>
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'fs/ubifs/super.c')
-rw-r--r-- | fs/ubifs/super.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index 7fc2f3f07c16..a2420c900275 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c @@ -26,6 +26,24 @@ #include <linux/writeback.h> #include "ubifs.h" +static int ubifs_default_version_set(const char *val, const struct kernel_param *kp) +{ + int n = 0, ret; + + ret = kstrtoint(val, 10, &n); + if (ret != 0 || n < 4 || n > UBIFS_FORMAT_VERSION) + return -EINVAL; + return param_set_int(val, kp); +} + +static const struct kernel_param_ops ubifs_default_version_ops = { + .set = ubifs_default_version_set, + .get = param_get_int, +}; + +int ubifs_default_version = UBIFS_FORMAT_VERSION; +module_param_cb(default_version, &ubifs_default_version_ops, &ubifs_default_version, 0600); + /* * Maximum amount of memory we may 'kmalloc()' without worrying that we are * allocating too much. |