Messages in this thread Patch in this message | | | From | cgel.zte@gmail ... | Subject | [PATCH] drop caches: skip tmpfs and ramfs | Date | Fri, 24 Jun 2022 18:21:21 +0000 |
| |
From: Ran Xiaokai <ran.xiaokai@zte.com.cn>
All tmpfs and ramfs pages have PG_dirty bit set once they are allocated and added to the pagecache。So pages can not be freed from tmpfs or ramfs. So skip tmpfs and ramfs when drop caches.
Signed-off-by: Ran Xiaokai <ran.xiaokai@zte.com.cn> --- fs/drop_caches.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/fs/drop_caches.c b/fs/drop_caches.c index e619c31b6bd9..600c043c1eb7 100644 --- a/fs/drop_caches.c +++ b/fs/drop_caches.c @@ -10,6 +10,7 @@ #include <linux/writeback.h> #include <linux/sysctl.h> #include <linux/gfp.h> +#include <linux/magic.h> #include "internal.h" /* A global variable is a bit ugly, but it keeps the code simple */ @@ -19,6 +20,9 @@ static void drop_pagecache_sb(struct super_block *sb, void *unused) { struct inode *inode, *toput_inode = NULL; + if (sb->s_magic == TMPFS_MAGIC || sb->s_magic == RAMFS_MAGIC) + return; + spin_lock(&sb->s_inode_list_lock); list_for_each_entry(inode, &sb->s_inodes, i_sb_list) { spin_lock(&inode->i_lock); -- 2.15.2
| |