Add tail to address space
Signed-off-by: Dave Kleikamp <[EMAIL PROTECTED]>
---
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 [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html