diff options
Diffstat (limited to 'fs/xfs/xfs_mru_cache.c')
| -rw-r--r-- | fs/xfs/xfs_mru_cache.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/fs/xfs/xfs_mru_cache.c b/fs/xfs/xfs_mru_cache.c index 26d14a1e0e1..afee7eb2432 100644 --- a/fs/xfs/xfs_mru_cache.c +++ b/fs/xfs/xfs_mru_cache.c @@ -307,15 +307,18 @@ xfs_mru_cache_init(void)  	xfs_mru_elem_zone = kmem_zone_init(sizeof(xfs_mru_cache_elem_t),  	                                 "xfs_mru_cache_elem");  	if (!xfs_mru_elem_zone) -		return ENOMEM; +		goto out;  	xfs_mru_reap_wq = create_singlethread_workqueue("xfs_mru_cache"); -	if (!xfs_mru_reap_wq) { -		kmem_zone_destroy(xfs_mru_elem_zone); -		return ENOMEM; -	} +	if (!xfs_mru_reap_wq) +		goto out_destroy_mru_elem_zone;  	return 0; + + out_destroy_mru_elem_zone: +	kmem_zone_destroy(xfs_mru_elem_zone); + out: +	return -ENOMEM;  }  void  |