aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4
diff options
context:
space:
mode:
authorAlexander V. Lukyanov <lav@netis.ru>2011-02-21 21:33:21 -0500
committerTheodore Ts'o <tytso@mit.edu>2011-02-21 21:33:21 -0500
commit5dbd571d875d73e087c1eeb3d840cfc653a97422 (patch)
treedfad6885fad57fb45f3e1d37d3d2d56fd6c320b0 /fs/ext4
parent7dc576158d7e5cdff3349f78598fdb4080536342 (diff)
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>
Diffstat (limited to 'fs/ext4')
-rw-r--r--fs/ext4/super.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index ef83457fd4ea..a1ac24b6a758 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1771,7 +1771,7 @@ set_qf_format:
1771 return 0; 1771 return 0;
1772 if (option < 0 || option > (1 << 30)) 1772 if (option < 0 || option > (1 << 30))
1773 return 0; 1773 return 0;
1774 if (!is_power_of_2(option)) { 1774 if (option && !is_power_of_2(option)) {
1775 ext4_msg(sb, KERN_ERR, 1775 ext4_msg(sb, KERN_ERR,
1776 "EXT4-fs: inode_readahead_blks" 1776 "EXT4-fs: inode_readahead_blks"
1777 " must be a power of 2"); 1777 " must be a power of 2");
@@ -2412,7 +2412,7 @@ static ssize_t inode_readahead_blks_store(struct ext4_attr *a,
2412 if (parse_strtoul(buf, 0x40000000, &t)) 2412 if (parse_strtoul(buf, 0x40000000, &t))
2413 return -EINVAL; 2413 return -EINVAL;
2414 2414
2415 if (!is_power_of_2(t)) 2415 if (t && !is_power_of_2(t))
2416 return -EINVAL; 2416 return -EINVAL;
2417 2417
2418 sbi->s_inode_readahead_blks = t; 2418 sbi->s_inode_readahead_blks = t;