Add tail to address space Signed-off-by: Dave Kleikamp <shaggy@xxxxxxxxxxxxxxxxxx> --- fs/inode.c | 3 +++ include/linux/fs.h | 4 ++++ mm/Kconfig | 9 +++++++++ 3 files changed, 16 insertions(+) diff -Nurp linux000/fs/inode.c linux001/fs/inode.c --- linux000/fs/inode.c 2007-11-07 08:13:54.000000000 -0600 +++ linux001/fs/inode.c 2007-11-08 10:49:46.000000000 -0600 @@ -213,6 +213,9 @@ void inode_init_once(struct inode *inode spin_lock_init(&inode->i_data.i_mmap_lock); INIT_LIST_HEAD(&inode->i_data.private_list); spin_lock_init(&inode->i_data.private_lock); +#ifdef CONFIG_VM_FILE_TAILS + spin_lock_init(&inode->i_data.tail_lock); +#endif INIT_RAW_PRIO_TREE_ROOT(&inode->i_data.i_mmap); INIT_LIST_HEAD(&inode->i_data.i_mmap_nonlinear); i_size_ordered_init(inode); diff -Nurp linux000/include/linux/fs.h linux001/include/linux/fs.h --- linux000/include/linux/fs.h 2007-11-07 08:13:59.000000000 -0600 +++ linux001/include/linux/fs.h 2007-11-08 10:49:46.000000000 -0600 @@ -511,6 +511,10 @@ struct address_space { spinlock_t private_lock; /* for use by the address_space */ struct list_head private_list; /* ditto */ struct address_space *assoc_mapping; /* ditto */ +#ifdef CONFIG_VM_FILE_TAILS + void *tail; /* file tail */ + spinlock_t tail_lock; /* protect tail */ +#endif } __attribute__((aligned(sizeof(long)))); /* * On most architectures that alignment is already the case; but diff -Nurp linux000/mm/Kconfig linux001/mm/Kconfig --- linux000/mm/Kconfig 2007-11-07 08:14:01.000000000 -0600 +++ linux001/mm/Kconfig 2007-11-08 10:49:46.000000000 -0600 @@ -194,3 +194,12 @@ config NR_QUICK config VIRT_TO_BUS def_bool y depends on !ARCH_NO_VIRT_TO_BUS + +config VM_FILE_TAILS + bool "Store file tails in slab cache" + def_bool n + help + If the data at the end of a file, or the entire file, is small, + the kernel will attempt to store that data in the slab cache, + rather than allocate an entire page in the page cache. + If unsure, say N here. - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html