[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110208063925.GA13619@lw.yar.ru>
Date: Tue, 8 Feb 2011 09:39:25 +0300
From: "Alexander V. Lukyanov" <lav@...is.ru>
To: linux-ext4@...r.kernel.org
Cc: "Theodore Ts'o" <tytso@....edu>, Andreas Dilger <adilger@....com>,
linux-kernel@...r.kernel.org
Subject: [PATCH] ext4: allow inode_readahead_blks=0 (linux-2.6.37)
Hello!
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.
--- a/fs/ext4/super.c.0 2010-11-16 10:48:33.418629215 +0300
+++ b/fs/ext4/super.c 2010-11-16 10:46:07.739753246 +0300
@@ -1657,7 +1657,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");
@@ -2274,7 +2274,7 @@ static ssize_t inode_readahead_blks_stor
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;
Signed-off-by: Alexander V. Lukyanov <lav@...is.ru>
--
Alexander.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists