All slabs which can be reclaimed via VM presure are marked as being shrinkable, so the core slab code will keep count of their pages. Except for the one in XFS. It has strange wrapper stuff. fs/adfs/super.c | 2 +- fs/affs/super.c | 2 +- fs/afs/super.c | 2 +- fs/befs/linuxvfs.c | 2 +- fs/bfs/inode.c | 2 +- fs/cifs/cifsfs.c | 2 +- fs/coda/inode.c | 2 +- fs/dcache.c | 2 +- fs/dquot.c | 2 +- fs/efs/super.c | 2 +- fs/ext2/super.c | 2 +- fs/ext3/super.c | 2 +- fs/fat/inode.c | 2 +- fs/freevxfs/vxfs_super.c | 3 ++- fs/hfs/super.c | 2 +- fs/hpfs/super.c | 2 +- fs/isofs/inode.c | 2 +- fs/jffs/inode-v23.c | 6 ++++-- fs/jffs2/malloc.c | 3 ++- fs/jffs2/super.c | 2 +- fs/jfs/super.c | 4 ++-- fs/mbcache.c | 2 +- fs/minix/inode.c | 2 +- fs/ncpfs/inode.c | 2 +- fs/nfs/inode.c | 2 +- fs/ntfs/super.c | 6 ++++-- fs/proc/inode.c | 2 +- fs/qnx4/inode.c | 2 +- fs/reiserfs/super.c | 2 +- fs/romfs/inode.c | 2 +- fs/smbfs/inode.c | 2 +- fs/sysv/inode.c | 3 ++- fs/udf/super.c | 2 +- fs/ufs/super.c | 2 +- fs/xfs/linux/xfs_super.c | 3 ++- fs/xfs/quota/xfs_qm.c | 0 mm/shmem.c | 2 +- net/socket.c | 2 +- net/sunrpc/rpc_pipe.c | 2 +- 39 files changed, 49 insertions(+), 41 deletions(-) diff -puN fs/adfs/super.c~slab-reclaimable-accounting-fs fs/adfs/super.c --- 25/fs/adfs/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/adfs/super.c 2003-05-22 01:17:24.000000000 -0700 @@ -234,7 +234,7 @@ static int init_inodecache(void) { adfs_inode_cachep = kmem_cache_create("adfs_inode_cache", sizeof(struct adfs_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (adfs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/affs/super.c~slab-reclaimable-accounting-fs fs/affs/super.c --- 25/fs/affs/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/affs/super.c 2003-05-22 01:17:24.000000000 -0700 @@ -115,7 +115,7 @@ static int init_inodecache(void) { affs_inode_cachep = kmem_cache_create("affs_inode_cache", sizeof(struct affs_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (affs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/afs/super.c~slab-reclaimable-accounting-fs fs/afs/super.c --- 25/fs/afs/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/afs/super.c 2003-05-22 01:17:24.000000000 -0700 @@ -81,7 +81,7 @@ int __init afs_fs_init(void) afs_inode_cachep = kmem_cache_create("afs_inode_cache", sizeof(afs_vnode_t), 0, - SLAB_HWCACHE_ALIGN, + SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, afs_i_init_once, NULL); if (!afs_inode_cachep) { diff -puN fs/befs/linuxvfs.c~slab-reclaimable-accounting-fs fs/befs/linuxvfs.c --- 25/fs/befs/linuxvfs.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/befs/linuxvfs.c 2003-05-22 01:17:25.000000000 -0700 @@ -430,7 +430,7 @@ befs_init_inodecache(void) { befs_inode_cachep = kmem_cache_create("befs_inode_cache", sizeof (struct befs_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (befs_inode_cachep == NULL) { printk(KERN_ERR "befs_init_inodecache: " diff -puN fs/bfs/inode.c~slab-reclaimable-accounting-fs fs/bfs/inode.c --- 25/fs/bfs/inode.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/bfs/inode.c 2003-05-22 01:17:25.000000000 -0700 @@ -243,7 +243,7 @@ static int init_inodecache(void) { bfs_inode_cachep = kmem_cache_create("bfs_inode_cache", sizeof(struct bfs_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (bfs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/cifs/cifsfs.c~slab-reclaimable-accounting-fs fs/cifs/cifsfs.c --- 25/fs/cifs/cifsfs.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/cifs/cifsfs.c 2003-05-22 01:17:25.000000000 -0700 @@ -359,7 +359,7 @@ cifs_init_inodecache(void) { cifs_inode_cachep = kmem_cache_create("cifs_inode_cache", sizeof (struct cifsInodeInfo), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, cifs_init_once, NULL); if (cifs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/coda/inode.c~slab-reclaimable-accounting-fs fs/coda/inode.c --- 25/fs/coda/inode.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/coda/inode.c 2003-05-22 01:17:25.000000000 -0700 @@ -70,7 +70,7 @@ int coda_init_inodecache(void) { coda_inode_cachep = kmem_cache_create("coda_inode_cache", sizeof(struct coda_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN||SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (coda_inode_cachep == NULL) return -ENOMEM; diff -puN fs/dcache.c~slab-reclaimable-accounting-fs fs/dcache.c --- 25/fs/dcache.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/dcache.c 2003-05-22 01:17:25.000000000 -0700 @@ -1552,7 +1552,7 @@ static void __init dcache_init(unsigned dentry_cache = kmem_cache_create("dentry_cache", sizeof(struct dentry), 0, - SLAB_HWCACHE_ALIGN, + SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, NULL, NULL); if (!dentry_cache) panic("Cannot create dentry cache"); diff -puN fs/efs/super.c~slab-reclaimable-accounting-fs fs/efs/super.c --- 25/fs/efs/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/efs/super.c 2003-05-22 01:17:25.000000000 -0700 @@ -58,7 +58,7 @@ static int init_inodecache(void) { efs_inode_cachep = kmem_cache_create("efs_inode_cache", sizeof(struct efs_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN||SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (efs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/ext2/super.c~slab-reclaimable-accounting-fs fs/ext2/super.c --- 25/fs/ext2/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/ext2/super.c 2003-05-22 01:17:25.000000000 -0700 @@ -185,7 +185,7 @@ static int init_inodecache(void) { ext2_inode_cachep = kmem_cache_create("ext2_inode_cache", sizeof(struct ext2_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (ext2_inode_cachep == NULL) return -ENOMEM; diff -puN fs/ext3/super.c~slab-reclaimable-accounting-fs fs/ext3/super.c --- 25/fs/ext3/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/ext3/super.c 2003-05-22 01:17:25.000000000 -0700 @@ -529,7 +529,7 @@ static int init_inodecache(void) { ext3_inode_cachep = kmem_cache_create("ext3_inode_cache", sizeof(struct ext3_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (ext3_inode_cachep == NULL) return -ENOMEM; diff -puN fs/fat/inode.c~slab-reclaimable-accounting-fs fs/fat/inode.c --- 25/fs/fat/inode.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/fat/inode.c 2003-05-22 01:17:25.000000000 -0700 @@ -697,7 +697,7 @@ int __init fat_init_inodecache(void) { fat_inode_cachep = kmem_cache_create("fat_inode_cache", sizeof(struct msdos_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (fat_inode_cachep == NULL) return -ENOMEM; diff -puN fs/freevxfs/vxfs_super.c~slab-reclaimable-accounting-fs fs/freevxfs/vxfs_super.c --- 25/fs/freevxfs/vxfs_super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/freevxfs/vxfs_super.c 2003-05-22 01:17:25.000000000 -0700 @@ -247,7 +247,8 @@ static int __init vxfs_init(void) { vxfs_inode_cachep = kmem_cache_create("vxfs_inode", - sizeof(struct vxfs_inode_info), 0, 0, NULL, NULL); + sizeof(struct vxfs_inode_info), 0, + SLAB_RECLAIM_ACCOUNT, NULL, NULL); if (vxfs_inode_cachep) return (register_filesystem(&vxfs_fs_type)); return -ENOMEM; diff -puN fs/hfs/super.c~slab-reclaimable-accounting-fs fs/hfs/super.c --- 25/fs/hfs/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/hfs/super.c 2003-05-22 01:17:25.000000000 -0700 @@ -72,7 +72,7 @@ static int init_inodecache(void) { hfs_inode_cachep = kmem_cache_create("hfs_inode_cache", sizeof(struct hfs_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (hfs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/hpfs/super.c~slab-reclaimable-accounting-fs fs/hpfs/super.c --- 25/fs/hpfs/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/hpfs/super.c 2003-05-22 01:17:25.000000000 -0700 @@ -191,7 +191,7 @@ static int init_inodecache(void) { hpfs_inode_cachep = kmem_cache_create("hpfs_inode_cache", sizeof(struct hpfs_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (hpfs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/isofs/inode.c~slab-reclaimable-accounting-fs fs/isofs/inode.c --- 25/fs/isofs/inode.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/isofs/inode.c 2003-05-22 01:17:25.000000000 -0700 @@ -105,7 +105,7 @@ static int init_inodecache(void) { isofs_inode_cachep = kmem_cache_create("isofs_inode_cache", sizeof(struct iso_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (isofs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/jffs2/malloc.c~slab-reclaimable-accounting-fs fs/jffs2/malloc.c --- 25/fs/jffs2/malloc.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/jffs2/malloc.c 2003-05-22 01:17:25.000000000 -0700 @@ -73,7 +73,8 @@ int __init jffs2_create_slab_caches(void inode_cache_slab = kmem_cache_create("jffs2_inode_cache", sizeof(struct jffs2_inode_cache), - 0, JFFS2_SLAB_POISON, NULL, NULL); + 0, JFFS2_SLAB_POISON|SLAB_RECLAIM_ACCOUNT, + NULL, NULL); if (inode_cache_slab) return 0; err: diff -puN fs/jffs2/super.c~slab-reclaimable-accounting-fs fs/jffs2/super.c --- 25/fs/jffs2/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/jffs2/super.c 2003-05-22 01:17:25.000000000 -0700 @@ -299,7 +299,7 @@ static int __init init_jffs2_fs(void) jffs2_inode_cachep = kmem_cache_create("jffs2_i", sizeof(struct jffs2_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, jffs2_i_init_once, NULL); if (!jffs2_inode_cachep) { printk(KERN_ERR "JFFS2 error: Failed to initialise inode cache\n"); diff -puN fs/jffs/inode-v23.c~slab-reclaimable-accounting-fs fs/jffs/inode-v23.c --- 25/fs/jffs/inode-v23.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/jffs/inode-v23.c 2003-05-22 01:17:25.000000000 -0700 @@ -1806,9 +1806,11 @@ init_jffs_fs(void) jffs_proc_root = proc_mkdir("jffs", proc_root_fs); #endif fm_cache = kmem_cache_create("jffs_fm", sizeof(struct jffs_fm), - 0, SLAB_HWCACHE_ALIGN, NULL, NULL); + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, + NULL, NULL); node_cache = kmem_cache_create("jffs_node",sizeof(struct jffs_node), - 0, SLAB_HWCACHE_ALIGN, NULL, NULL); + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, + NULL, NULL); return register_filesystem(&jffs_fs_type); } diff -puN fs/jfs/super.c~slab-reclaimable-accounting-fs fs/jfs/super.c --- 25/fs/jfs/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/jfs/super.c 2003-05-22 01:17:25.000000000 -0700 @@ -444,8 +444,8 @@ static int __init init_jfs_fs(void) int rc; jfs_inode_cachep = - kmem_cache_create("jfs_ip", sizeof(struct jfs_inode_info), 0, 0, - init_once, NULL); + kmem_cache_create("jfs_ip", sizeof(struct jfs_inode_info), 0, + SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (jfs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/minix/inode.c~slab-reclaimable-accounting-fs fs/minix/inode.c --- 25/fs/minix/inode.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/minix/inode.c 2003-05-22 01:17:25.000000000 -0700 @@ -79,7 +79,7 @@ static int init_inodecache(void) { minix_inode_cachep = kmem_cache_create("minix_inode_cache", sizeof(struct minix_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (minix_inode_cachep == NULL) return -ENOMEM; diff -puN fs/ncpfs/inode.c~slab-reclaimable-accounting-fs fs/ncpfs/inode.c --- 25/fs/ncpfs/inode.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/ncpfs/inode.c 2003-05-22 01:17:25.000000000 -0700 @@ -72,7 +72,7 @@ static int init_inodecache(void) { ncp_inode_cachep = kmem_cache_create("ncp_inode_cache", sizeof(struct ncp_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (ncp_inode_cachep == NULL) return -ENOMEM; diff -puN fs/nfs/inode.c~slab-reclaimable-accounting-fs fs/nfs/inode.c --- 25/fs/nfs/inode.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/nfs/inode.c 2003-05-22 01:17:25.000000000 -0700 @@ -1571,7 +1571,7 @@ int nfs_init_inodecache(void) { nfs_inode_cachep = kmem_cache_create("nfs_inode_cache", sizeof(struct nfs_inode), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (nfs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/ntfs/super.c~slab-reclaimable-accounting-fs fs/ntfs/super.c --- 25/fs/ntfs/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/ntfs/super.c 2003-05-22 01:17:25.000000000 -0700 @@ -1715,7 +1715,8 @@ static int __init init_ntfs_fs(void) } ntfs_inode_cache = kmem_cache_create(ntfs_inode_cache_name, - sizeof(ntfs_inode), 0, SLAB_HWCACHE_ALIGN, NULL, NULL); + sizeof(ntfs_inode), 0, + SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, NULL, NULL); if (!ntfs_inode_cache) { printk(KERN_CRIT "NTFS: Failed to create %s!\n", ntfs_inode_cache_name); @@ -1723,7 +1724,8 @@ static int __init init_ntfs_fs(void) } ntfs_big_inode_cache = kmem_cache_create(ntfs_big_inode_cache_name, - sizeof(big_ntfs_inode), 0, SLAB_HWCACHE_ALIGN, + sizeof(big_ntfs_inode), 0, + SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, ntfs_big_inode_init_once, NULL); if (!ntfs_big_inode_cache) { printk(KERN_CRIT "NTFS: Failed to create %s!\n", diff -puN fs/proc/inode.c~slab-reclaimable-accounting-fs fs/proc/inode.c --- 25/fs/proc/inode.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/proc/inode.c 2003-05-22 01:17:25.000000000 -0700 @@ -121,7 +121,7 @@ int __init proc_init_inodecache(void) { proc_inode_cachep = kmem_cache_create("proc_inode_cache", sizeof(struct proc_inode), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (proc_inode_cachep == NULL) return -ENOMEM; diff -puN fs/qnx4/inode.c~slab-reclaimable-accounting-fs fs/qnx4/inode.c --- 25/fs/qnx4/inode.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/qnx4/inode.c 2003-05-22 01:17:25.000000000 -0700 @@ -540,7 +540,7 @@ static int init_inodecache(void) { qnx4_inode_cachep = kmem_cache_create("qnx4_inode_cache", sizeof(struct qnx4_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (qnx4_inode_cachep == NULL) return -ENOMEM; diff -puN fs/reiserfs/super.c~slab-reclaimable-accounting-fs fs/reiserfs/super.c --- 25/fs/reiserfs/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/reiserfs/super.c 2003-05-22 01:17:25.000000000 -0700 @@ -440,7 +440,7 @@ static int init_inodecache(void) { reiserfs_inode_cachep = kmem_cache_create("reiser_inode_cache", sizeof(struct reiserfs_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (reiserfs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/romfs/inode.c~slab-reclaimable-accounting-fs fs/romfs/inode.c --- 25/fs/romfs/inode.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/romfs/inode.c 2003-05-22 01:17:25.000000000 -0700 @@ -578,7 +578,7 @@ static int init_inodecache(void) { romfs_inode_cachep = kmem_cache_create("romfs_inode_cache", sizeof(struct romfs_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (romfs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/smbfs/inode.c~slab-reclaimable-accounting-fs fs/smbfs/inode.c --- 25/fs/smbfs/inode.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/smbfs/inode.c 2003-05-22 01:17:25.000000000 -0700 @@ -79,7 +79,7 @@ static int init_inodecache(void) { smb_inode_cachep = kmem_cache_create("smb_inode_cache", sizeof(struct smb_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (smb_inode_cachep == NULL) return -ENOMEM; diff -puN fs/sysv/inode.c~slab-reclaimable-accounting-fs fs/sysv/inode.c --- 25/fs/sysv/inode.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/sysv/inode.c 2003-05-22 01:17:25.000000000 -0700 @@ -328,7 +328,8 @@ int __init sysv_init_icache(void) { sysv_inode_cachep = kmem_cache_create("sysv_inode_cache", sizeof(struct sysv_inode_info), 0, - SLAB_HWCACHE_ALIGN, init_once, NULL); + SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, + init_once, NULL); if (!sysv_inode_cachep) return -ENOMEM; return 0; diff -puN fs/udf/super.c~slab-reclaimable-accounting-fs fs/udf/super.c --- 25/fs/udf/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/udf/super.c 2003-05-22 01:17:25.000000000 -0700 @@ -141,7 +141,7 @@ static int init_inodecache(void) { udf_inode_cachep = kmem_cache_create("udf_inode_cache", sizeof(struct udf_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (udf_inode_cachep == NULL) return -ENOMEM; diff -puN fs/ufs/super.c~slab-reclaimable-accounting-fs fs/ufs/super.c --- 25/fs/ufs/super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/ufs/super.c 2003-05-22 01:17:25.000000000 -0700 @@ -1029,7 +1029,7 @@ static int init_inodecache(void) { ufs_inode_cachep = kmem_cache_create("ufs_inode_cache", sizeof(struct ufs_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (ufs_inode_cachep == NULL) return -ENOMEM; diff -puN fs/xfs/linux/xfs_super.c~slab-reclaimable-accounting-fs fs/xfs/linux/xfs_super.c --- 25/fs/xfs/linux/xfs_super.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/xfs/linux/xfs_super.c 2003-05-22 01:17:25.000000000 -0700 @@ -329,7 +329,8 @@ STATIC int init_inodecache( void ) { linvfs_inode_cachep = kmem_cache_create("linvfs_icache", - sizeof(vnode_t), 0, SLAB_HWCACHE_ALIGN, + sizeof(vnode_t), 0, + SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (linvfs_inode_cachep == NULL) diff -puN mm/shmem.c~slab-reclaimable-accounting-fs mm/shmem.c --- 25/mm/shmem.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/mm/shmem.c 2003-05-22 01:17:25.000000000 -0700 @@ -1744,7 +1744,7 @@ static int init_inodecache(void) { shmem_inode_cachep = kmem_cache_create("shmem_inode_cache", sizeof(struct shmem_inode_info), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (shmem_inode_cachep == NULL) return -ENOMEM; diff -puN net/socket.c~slab-reclaimable-accounting-fs net/socket.c --- 25/net/socket.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/net/socket.c 2003-05-22 01:17:25.000000000 -0700 @@ -311,7 +311,7 @@ static int init_inodecache(void) { sock_inode_cachep = kmem_cache_create("sock_inode_cache", sizeof(struct socket_alloc), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (sock_inode_cachep == NULL) return -ENOMEM; diff -puN net/sunrpc/rpc_pipe.c~slab-reclaimable-accounting-fs net/sunrpc/rpc_pipe.c --- 25/net/sunrpc/rpc_pipe.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/net/sunrpc/rpc_pipe.c 2003-05-22 01:17:25.000000000 -0700 @@ -782,7 +782,7 @@ int register_rpc_pipefs(void) { rpc_inode_cachep = kmem_cache_create("rpc_inode_cache", sizeof(struct rpc_inode), - 0, SLAB_HWCACHE_ALIGN, + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once, NULL); if (!rpc_inode_cachep) return -ENOMEM; diff -puN fs/dquot.c~slab-reclaimable-accounting-fs fs/dquot.c --- 25/fs/dquot.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/dquot.c 2003-05-22 01:17:25.000000000 -0700 @@ -1383,7 +1383,7 @@ static int __init dquot_init(void) dquot_cachep = kmem_cache_create("dquot", sizeof(struct dquot), sizeof(unsigned long) * 4, - SLAB_HWCACHE_ALIGN, NULL, NULL); + SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, NULL, NULL); if (!dquot_cachep) panic("Cannot create dquot SLAB cache"); diff -puN fs/mbcache.c~slab-reclaimable-accounting-fs fs/mbcache.c --- 25/fs/mbcache.c~slab-reclaimable-accounting-fs 2003-05-22 01:17:24.000000000 -0700 +++ 25-akpm/fs/mbcache.c 2003-05-22 01:17:25.000000000 -0700 @@ -265,7 +265,7 @@ mb_cache_create(const char *name, struct INIT_LIST_HEAD(&cache->c_indexes_hash[m][n]); } cache->c_entry_cache = kmem_cache_create(name, entry_size, 0, - 0 /*SLAB_POISON | SLAB_RED_ZONE*/, NULL, NULL); + SLAB_RECLAIM_ACCOUNT, NULL, NULL); if (!cache->c_entry_cache) goto fail; diff -puN fs/xfs/quota/xfs_qm.c~slab-reclaimable-accounting-fs fs/xfs/quota/xfs_qm.c _