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

Reply via email to