PATCH: allow inode_readahead_blks=0
Hello!
Currently the value 0 is disallowed, as it is not a power of 2.
This obvious patch fixes the problem.
Signature · 1 line
Alexander.
fs/ext4/super.c renamed from fs/ext4/super.c.0 +2 -2
@@ -1657,7 +1657,7 @@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 @@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;
Quoted 1 line · Alexander V. Lukyanov
Currently the value 0 is disallowed, as it is not a power of 2.
BTW, the default value inode_readahead_blks=32 gives me troubles: it raises load average and increases request latency on a busy squid server. I explain it by random access to large number of files which are present in the squid cache.
BTW2: the value of 0 should be allowed, it is explicitly used by the code:
/*
* If we need to do any I/O, try to pre-readahead extra
* blocks from the inode table.
*/
if (EXT4_SB(sb)->s_inode_readahead_blks) {
...
}Signature · 1 line
Alexander.