mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 14:12:06 +00:00
f2fs: get io size bit from mount option
This patch adds to set io_size_bits from mount option. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
0a595ebaaa
commit
ec91538dcc
@ -157,6 +157,8 @@ data_flush Enable data flushing before checkpoint in order to
|
||||
mode=%s Control block allocation mode which supports "adaptive"
|
||||
and "lfs". In "lfs" mode, there should be no random
|
||||
writes towards main area.
|
||||
io_bits=%u Set the bit size of write IO requests. It should be set
|
||||
with "mode=lfs".
|
||||
|
||||
================================================================================
|
||||
DEBUGFS ENTRIES
|
||||
|
@ -101,6 +101,7 @@ enum {
|
||||
Opt_noinline_data,
|
||||
Opt_data_flush,
|
||||
Opt_mode,
|
||||
Opt_io_size_bits,
|
||||
Opt_fault_injection,
|
||||
Opt_lazytime,
|
||||
Opt_nolazytime,
|
||||
@ -133,6 +134,7 @@ static match_table_t f2fs_tokens = {
|
||||
{Opt_noinline_data, "noinline_data"},
|
||||
{Opt_data_flush, "data_flush"},
|
||||
{Opt_mode, "mode=%s"},
|
||||
{Opt_io_size_bits, "io_bits=%u"},
|
||||
{Opt_fault_injection, "fault_injection=%u"},
|
||||
{Opt_lazytime, "lazytime"},
|
||||
{Opt_nolazytime, "nolazytime"},
|
||||
@ -535,6 +537,17 @@ static int parse_options(struct super_block *sb, char *options)
|
||||
}
|
||||
kfree(name);
|
||||
break;
|
||||
case Opt_io_size_bits:
|
||||
if (args->from && match_int(args, &arg))
|
||||
return -EINVAL;
|
||||
if (arg > __ilog2_u32(BIO_MAX_PAGES)) {
|
||||
f2fs_msg(sb, KERN_WARNING,
|
||||
"Not support %d, larger than %d",
|
||||
1 << arg, BIO_MAX_PAGES);
|
||||
return -EINVAL;
|
||||
}
|
||||
sbi->write_io_size_bits = arg;
|
||||
break;
|
||||
case Opt_fault_injection:
|
||||
if (args->from && match_int(args, &arg))
|
||||
return -EINVAL;
|
||||
@ -558,6 +571,13 @@ static int parse_options(struct super_block *sb, char *options)
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
if (F2FS_IO_SIZE_BITS(sbi) && !test_opt(sbi, LFS)) {
|
||||
f2fs_msg(sb, KERN_ERR,
|
||||
"Should set mode=lfs with %uKB-sized IO",
|
||||
F2FS_IO_SIZE_KB(sbi));
|
||||
return -EINVAL;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -918,6 +938,8 @@ static int f2fs_show_options(struct seq_file *seq, struct dentry *root)
|
||||
else if (test_opt(sbi, LFS))
|
||||
seq_puts(seq, "lfs");
|
||||
seq_printf(seq, ",active_logs=%u", sbi->active_logs);
|
||||
if (F2FS_IO_SIZE_BITS(sbi))
|
||||
seq_printf(seq, ",io_size=%uKB", F2FS_IO_SIZE_KB(sbi));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user