mirror of https://gitee.com/openkylin/linux.git
nilfs2: add nodiscard mount option
Nilfs has "discard" mount option which issues discard/TRIM commands to underlying block device, but it lacks a complementary option and has no way to disable the feature through remount. This adds "nodiscard" option to resolve this imbalance. Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
This commit is contained in:
parent
773bc4f3b6
commit
802d317754
|
@ -77,9 +77,10 @@ norecovery Disable recovery of the filesystem on mount.
|
||||||
This disables every write access on the device for
|
This disables every write access on the device for
|
||||||
read-only mounts or snapshots. This option will fail
|
read-only mounts or snapshots. This option will fail
|
||||||
for r/w mounts on an unclean volume.
|
for r/w mounts on an unclean volume.
|
||||||
discard Issue discard/TRIM commands to the underlying block
|
discard This enables/disables the use of discard/TRIM commands.
|
||||||
device when blocks are freed. This is useful for SSD
|
nodiscard(*) The discard/TRIM commands are sent to the underlying
|
||||||
devices and sparse/thinly-provisioned LUNs.
|
block device when blocks are freed. This is useful
|
||||||
|
for SSD devices and sparse/thinly-provisioned LUNs.
|
||||||
|
|
||||||
NILFS2 usage
|
NILFS2 usage
|
||||||
============
|
============
|
||||||
|
|
|
@ -604,7 +604,7 @@ static const struct export_operations nilfs_export_ops = {
|
||||||
enum {
|
enum {
|
||||||
Opt_err_cont, Opt_err_panic, Opt_err_ro,
|
Opt_err_cont, Opt_err_panic, Opt_err_ro,
|
||||||
Opt_barrier, Opt_nobarrier, Opt_snapshot, Opt_order, Opt_norecovery,
|
Opt_barrier, Opt_nobarrier, Opt_snapshot, Opt_order, Opt_norecovery,
|
||||||
Opt_discard, Opt_err,
|
Opt_discard, Opt_nodiscard, Opt_err,
|
||||||
};
|
};
|
||||||
|
|
||||||
static match_table_t tokens = {
|
static match_table_t tokens = {
|
||||||
|
@ -617,6 +617,7 @@ static match_table_t tokens = {
|
||||||
{Opt_order, "order=%s"},
|
{Opt_order, "order=%s"},
|
||||||
{Opt_norecovery, "norecovery"},
|
{Opt_norecovery, "norecovery"},
|
||||||
{Opt_discard, "discard"},
|
{Opt_discard, "discard"},
|
||||||
|
{Opt_nodiscard, "nodiscard"},
|
||||||
{Opt_err, NULL}
|
{Opt_err, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -676,6 +677,9 @@ static int parse_options(char *options, struct super_block *sb)
|
||||||
case Opt_discard:
|
case Opt_discard:
|
||||||
nilfs_set_opt(sbi, DISCARD);
|
nilfs_set_opt(sbi, DISCARD);
|
||||||
break;
|
break;
|
||||||
|
case Opt_nodiscard:
|
||||||
|
nilfs_clear_opt(sbi, DISCARD);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
printk(KERN_ERR
|
printk(KERN_ERR
|
||||||
"NILFS: Unrecognized mount option \"%s\"\n", p);
|
"NILFS: Unrecognized mount option \"%s\"\n", p);
|
||||||
|
|
Loading…
Reference in New Issue