Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 329025
b: refs/heads/master
c: 8c0a853
h: refs/heads/master
i:
  329023: fbe1fc4
v: v3
  • Loading branch information
Kirill A. Shutemov authored and Al Viro committed Oct 3, 2012
1 parent 86d5c38 commit 56db182
Show file tree
Hide file tree
Showing 48 changed files with 241 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 99621b44aa194eab594e1f17217231c02b519211
refs/heads/master: 8c0a85377048b64c880e76ec7368904fe46d0b94
5 changes: 5 additions & 0 deletions trunk/fs/9p/v9fs.c
Original file line number Diff line number Diff line change
Expand Up @@ -560,6 +560,11 @@ static int v9fs_init_inode_cache(void)
*/
static void v9fs_destroy_inode_cache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(v9fs_inode_cache);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/adfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,11 @@ static int init_inodecache(void)

static void destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(adfs_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/affs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,11 @@ static int init_inodecache(void)

static void destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(affs_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/afs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,11 @@ void __exit afs_fs_exit(void)
BUG();
}

/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(afs_inode_cachep);
_leave("");
}
Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/befs/linuxvfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,11 @@ befs_init_inodecache(void)
static void
befs_destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(befs_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/bfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,11 @@ static int init_inodecache(void)

static void destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(bfs_inode_cachep);
}

Expand Down
6 changes: 6 additions & 0 deletions trunk/fs/btrfs/extent_io.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@ void extent_io_exit(void)
list_del(&eb->leak_list);
kmem_cache_free(extent_buffer_cache, eb);
}

/*
* Make sure all delayed rcu free are flushed before we
* destroy caches.
*/
rcu_barrier();
if (extent_state_cache)
kmem_cache_destroy(extent_state_cache);
if (extent_buffer_cache)
Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/btrfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -7076,6 +7076,11 @@ static void init_once(void *foo)

void btrfs_destroy_cachep(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
if (btrfs_inode_cachep)
kmem_cache_destroy(btrfs_inode_cachep);
if (btrfs_trans_handle_cachep)
Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/ceph/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -603,6 +603,11 @@ static int __init init_caches(void)

static void destroy_caches(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(ceph_inode_cachep);
kmem_cache_destroy(ceph_cap_cachep);
kmem_cache_destroy(ceph_dentry_cachep);
Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/cifs/cifsfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -977,6 +977,11 @@ cifs_init_inodecache(void)
static void
cifs_destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(cifs_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/coda/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@ int coda_init_inodecache(void)

void coda_destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(coda_inode_cachep);
}

Expand Down
6 changes: 6 additions & 0 deletions trunk/fs/ecryptfs/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,12 @@ static void ecryptfs_free_kmem_caches(void)
{
int i;

/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();

for (i = 0; i < ARRAY_SIZE(ecryptfs_cache_infos); i++) {
struct ecryptfs_cache_info *info;

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/efs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,11 @@ static int init_inodecache(void)

static void destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(efs_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/exofs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,11 @@ static int init_inodecache(void)
*/
static void destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(exofs_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/ext2/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,11 @@ static int init_inodecache(void)

static void destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(ext2_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/ext3/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -532,6 +532,11 @@ static int init_inodecache(void)

static void destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(ext3_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/ext4/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -1019,6 +1019,11 @@ static int init_inodecache(void)

static void destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(ext4_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/fat/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -521,6 +521,11 @@ static int __init fat_init_inodecache(void)

static void __exit fat_destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(fat_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/freevxfs/vxfs_super.c
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,11 @@ static void __exit
vxfs_cleanup(void)
{
unregister_filesystem(&vxfs_fs_type);
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(vxfs_inode_cachep);
}

Expand Down
6 changes: 6 additions & 0 deletions trunk/fs/fuse/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -1197,6 +1197,12 @@ static void fuse_fs_cleanup(void)
{
unregister_filesystem(&fuse_fs_type);
unregister_fuseblk();

/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(fuse_inode_cachep);
}

Expand Down
6 changes: 6 additions & 0 deletions trunk/fs/hfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -482,6 +482,12 @@ static int __init init_hfs_fs(void)
static void __exit exit_hfs_fs(void)
{
unregister_filesystem(&hfs_fs_type);

/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(hfs_inode_cachep);
}

Expand Down
6 changes: 6 additions & 0 deletions trunk/fs/hfsplus/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -635,6 +635,12 @@ static int __init init_hfsplus_fs(void)
static void __exit exit_hfsplus_fs(void)
{
unregister_filesystem(&hfsplus_fs_type);

/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(hfsplus_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/hpfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,11 @@ static int init_inodecache(void)

static void destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(hpfs_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/hugetlbfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -1042,6 +1042,11 @@ static int __init init_hugetlbfs_fs(void)

static void __exit exit_hugetlbfs_fs(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(hugetlbfs_inode_cachep);
kern_unmount(hugetlbfs_vfsmount);
unregister_filesystem(&hugetlbfs_fs_type);
Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/isofs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,11 @@ static int init_inodecache(void)

static void destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(isofs_inode_cachep);
}

Expand Down
6 changes: 6 additions & 0 deletions trunk/fs/jffs2/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,12 @@ static void __exit exit_jffs2_fs(void)
unregister_filesystem(&jffs2_fs_type);
jffs2_destroy_slab_caches();
jffs2_compressors_exit();

/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(jffs2_inode_cachep);
}

Expand Down
6 changes: 6 additions & 0 deletions trunk/fs/jfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -903,6 +903,12 @@ static void __exit exit_jfs_fs(void)
jfs_proc_clean();
#endif
unregister_filesystem(&jfs_fs_type);

/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(jfs_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/logfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -417,5 +417,10 @@ int logfs_init_inode_cache(void)

void logfs_destroy_inode_cache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(logfs_inode_cache);
}
5 changes: 5 additions & 0 deletions trunk/fs/minix/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,11 @@ static int init_inodecache(void)

static void destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(minix_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/ncpfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,11 @@ static int init_inodecache(void)

static void destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(ncp_inode_cachep);
}

Expand Down
5 changes: 5 additions & 0 deletions trunk/fs/nfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -1571,6 +1571,11 @@ static int __init nfs_init_inodecache(void)

static void nfs_destroy_inodecache(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();
kmem_cache_destroy(nfs_inode_cachep);
}

Expand Down
6 changes: 6 additions & 0 deletions trunk/fs/nilfs2/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -1382,6 +1382,12 @@ static void nilfs_segbuf_init_once(void *obj)

static void nilfs_destroy_cachep(void)
{
/*
* Make sure all delayed rcu free inodes are flushed before we
* destroy cache.
*/
rcu_barrier();

if (nilfs_inode_cachep)
kmem_cache_destroy(nilfs_inode_cachep);
if (nilfs_transaction_cachep)
Expand Down
Loading

0 comments on commit 56db182

Please sign in to comment.