X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=fs%2Fecryptfs%2Fsuper.c;h=85411ceb0508bbd2af9286a300377fc243efd994;hb=736b87213b5d832b8b51d2350d9510c67cc02409;hp=77a486d3a51b600265a0fc1a1a0134ae74ff5ab9;hpb=8c57a5e7b2820f349c95b8c8393fec1e0f4070d2;p=deliverable%2Flinux.git diff --git a/fs/ecryptfs/super.c b/fs/ecryptfs/super.c index 77a486d3a51b..85411ceb0508 100644 --- a/fs/ecryptfs/super.c +++ b/fs/ecryptfs/super.c @@ -55,7 +55,10 @@ static struct inode *ecryptfs_alloc_inode(struct super_block *sb) inode_info = kmem_cache_alloc(ecryptfs_inode_info_cache, GFP_KERNEL); if (unlikely(!inode_info)) goto out; - ecryptfs_init_crypt_stat(&inode_info->crypt_stat); + if (ecryptfs_init_crypt_stat(&inode_info->crypt_stat)) { + kmem_cache_free(ecryptfs_inode_info_cache, inode_info); + goto out; + } mutex_init(&inode_info->lower_file_mutex); atomic_set(&inode_info->lower_file_count, 0); inode_info->lower_file = NULL;