diff options
Diffstat (limited to 'xlators/features')
-rw-r--r-- | xlators/features/locks/src/common.c | 7 | ||||
-rw-r--r-- | xlators/features/quota/src/quota.c | 3 |
2 files changed, 8 insertions, 2 deletions
diff --git a/xlators/features/locks/src/common.c b/xlators/features/locks/src/common.c index facb078612f..4a9b138cb80 100644 --- a/xlators/features/locks/src/common.c +++ b/xlators/features/locks/src/common.c @@ -434,7 +434,12 @@ pl_inode_get (xlator_t *this, inode_t *inode) INIT_LIST_HEAD (&pl_inode->blocked_calls); gf_uuid_copy (pl_inode->gfid, inode->gfid); - __inode_ctx_put (inode, this, (uint64_t)(long)(pl_inode)); + ret = __inode_ctx_put (inode, this, (uint64_t)(long)(pl_inode)); + if (ret) { + GF_FREE (pl_inode); + pl_inode = NULL; + goto unlock; + } } unlock: UNLOCK (&inode->lock); diff --git a/xlators/features/quota/src/quota.c b/xlators/features/quota/src/quota.c index e67a4325fc7..22d1bb9f30f 100644 --- a/xlators/features/quota/src/quota.c +++ b/xlators/features/quota/src/quota.c @@ -40,10 +40,11 @@ __quota_init_inode_ctx (inode_t *inode, xlator_t *this, INIT_LIST_HEAD (&ctx->parents); ret = __inode_ctx_put (inode, this, (uint64_t )(long)ctx); - if (ret == -1) { + if (ret) { gf_msg (this->name, GF_LOG_WARNING, 0, Q_MSG_INODE_CTX_SET_FAILED, "cannot set quota context " "in inode (gfid:%s)", uuid_utoa (inode->gfid)); + GF_FREE (ctx); } out: return ret; |