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"
|
mode=%s Control block allocation mode which supports "adaptive"
|
||||||
and "lfs". In "lfs" mode, there should be no random
|
and "lfs". In "lfs" mode, there should be no random
|
||||||
writes towards main area.
|
writes towards main area.
|
||||||
|
io_bits=%u Set the bit size of write IO requests. It should be set
|
||||||
|
with "mode=lfs".
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
DEBUGFS ENTRIES
|
DEBUGFS ENTRIES
|
||||||
|
|
|
@ -101,6 +101,7 @@ enum {
|
||||||
Opt_noinline_data,
|
Opt_noinline_data,
|
||||||
Opt_data_flush,
|
Opt_data_flush,
|
||||||
Opt_mode,
|
Opt_mode,
|
||||||
|
Opt_io_size_bits,
|
||||||
Opt_fault_injection,
|
Opt_fault_injection,
|
||||||
Opt_lazytime,
|
Opt_lazytime,
|
||||||
Opt_nolazytime,
|
Opt_nolazytime,
|
||||||
|
@ -133,6 +134,7 @@ static match_table_t f2fs_tokens = {
|
||||||
{Opt_noinline_data, "noinline_data"},
|
{Opt_noinline_data, "noinline_data"},
|
||||||
{Opt_data_flush, "data_flush"},
|
{Opt_data_flush, "data_flush"},
|
||||||
{Opt_mode, "mode=%s"},
|
{Opt_mode, "mode=%s"},
|
||||||
|
{Opt_io_size_bits, "io_bits=%u"},
|
||||||
{Opt_fault_injection, "fault_injection=%u"},
|
{Opt_fault_injection, "fault_injection=%u"},
|
||||||
{Opt_lazytime, "lazytime"},
|
{Opt_lazytime, "lazytime"},
|
||||||
{Opt_nolazytime, "nolazytime"},
|
{Opt_nolazytime, "nolazytime"},
|
||||||
|
@ -535,6 +537,17 @@ static int parse_options(struct super_block *sb, char *options)
|
||||||
}
|
}
|
||||||
kfree(name);
|
kfree(name);
|
||||||
break;
|
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:
|
case Opt_fault_injection:
|
||||||
if (args->from && match_int(args, &arg))
|
if (args->from && match_int(args, &arg))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@ -558,6 +571,13 @@ static int parse_options(struct super_block *sb, char *options)
|
||||||
return -EINVAL;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -918,6 +938,8 @@ static int f2fs_show_options(struct seq_file *seq, struct dentry *root)
|
||||||
else if (test_opt(sbi, LFS))
|
else if (test_opt(sbi, LFS))
|
||||||
seq_puts(seq, "lfs");
|
seq_puts(seq, "lfs");
|
||||||
seq_printf(seq, ",active_logs=%u", sbi->active_logs);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue