fs: fuse: account fuse_inode slab memory as reclaimable
authorJohannes Weiner <hannes@cmpxchg.org>
Thu, 16 Nov 2017 01:38:34 +0000 (17:38 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 16 Nov 2017 02:21:07 +0000 (18:21 -0800)
Fuse inodes are currently included in the unreclaimable slab counts -
SUnreclaim in /proc/meminfo, slab_unreclaimable in /proc/vmstat and the
per-cgroup memory.stat.  But they are reclaimable just like other
filesystems' inodes, and /proc/sys/vm/drop_caches frees them easily.

Mark the slab cache reclaimable.

Link: http://lkml.kernel.org/r/20171102202727.12539-1-hannes@cmpxchg.org
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Cc: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/fuse/inode.c

index 94a745acaef842eed799e45731bd12dd2ac0f7f7..5c0f0d689fb2fd364be862283774236efbcc687d 100644 (file)
@@ -1273,9 +1273,9 @@ static int __init fuse_fs_init(void)
        int err;
 
        fuse_inode_cachep = kmem_cache_create("fuse_inode",
        int err;
 
        fuse_inode_cachep = kmem_cache_create("fuse_inode",
-                                             sizeof(struct fuse_inode), 0,
-                                             SLAB_HWCACHE_ALIGN|SLAB_ACCOUNT,
-                                             fuse_inode_init_once);
+                       sizeof(struct fuse_inode), 0,
+                       SLAB_HWCACHE_ALIGN|SLAB_ACCOUNT|SLAB_RECLAIM_ACCOUNT,
+                       fuse_inode_init_once);
        err = -ENOMEM;
        if (!fuse_inode_cachep)
                goto out;
        err = -ENOMEM;
        if (!fuse_inode_cachep)
                goto out;