--- linux-2.6.32-131.6.1/fs/buffer.c +++ linux-2.6.32-131.6.1-pdo/fs/buffer.c @@ -1250,8 +1250,7 @@ * The LRUs themselves only need locking against invalidate_bh_lrus. We use * a local interrupt disable for that. */ - -#define BH_LRU_SIZE 8 +#define BH_LRU_SIZE CONFIG_BH_LRU_SIZE struct bh_lru { struct buffer_head *bhs[BH_LRU_SIZE]; --- linux-2.6.32-131.6.1/fs/Kconfig +++ linux-2.6.32-131.6.1-pdo/fs/Kconfig @@ -253,4 +253,13 @@ source "fs/nls/Kconfig" source "fs/dlm/Kconfig" +config BH_LRU_SIZE + int "buffer head per-CPU LRU size" + range 8 64 + default "8" + help + This sets the per-CPU LRU size for buffer heads in memory. + More complex filesystems may be modiyfing multiple blocks + within a single transaction, so keeping the buffer heads in + CPU-local cache speeds up modifations significantly. endmenu