ext4: allow inode_readahead_blks=0 (linux-2.6.37)
I cannot disable inode-read-ahead feature of ext4 (on 2.6.37): # echo 0 > /sys/fs/ext4/sda2/inode_readahead_blks bash: echo: write error: Invalid argument On a server with lots of small files and random access this read-ahead makes performance worse, and I'd like to disable it. I work around this problem by using value of 1, but it still reads an extra block. This patch fixes the problem by checking for zero explicitly. Signed-off-by: Alexander V. Lukyanov <lav@netis.ru> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
parent
7dc576158d
commit
5dbd571d87
|
@ -1771,7 +1771,7 @@ set_qf_format:
|
|||
return 0;
|
||||
if (option < 0 || option > (1 << 30))
|
||||
return 0;
|
||||
if (!is_power_of_2(option)) {
|
||||
if (option && !is_power_of_2(option)) {
|
||||
ext4_msg(sb, KERN_ERR,
|
||||
"EXT4-fs: inode_readahead_blks"
|
||||
" must be a power of 2");
|
||||
|
@ -2412,7 +2412,7 @@ static ssize_t inode_readahead_blks_store(struct ext4_attr *a,
|
|||
if (parse_strtoul(buf, 0x40000000, &t))
|
||||
return -EINVAL;
|
||||
|
||||
if (!is_power_of_2(t))
|
||||
if (t && !is_power_of_2(t))
|
||||
return -EINVAL;
|
||||
|
||||
sbi->s_inode_readahead_blks = t;
|
||||
|
|
Loading…
Reference in New Issue