summaryrefslogtreecommitdiffstats
path: root/xlators/performance/write-behind/src/write-behind.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/performance/write-behind/src/write-behind.c')
-rw-r--r--xlators/performance/write-behind/src/write-behind.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/xlators/performance/write-behind/src/write-behind.c b/xlators/performance/write-behind/src/write-behind.c
index c47b537c4fc..98b448be332 100644
--- a/xlators/performance/write-behind/src/write-behind.c
+++ b/xlators/performance/write-behind/src/write-behind.c
@@ -592,6 +592,7 @@ __wb_inode_create (xlator_t *this, inode_t *inode)
{
wb_inode_t *wb_inode = NULL;
wb_conf_t *conf = NULL;
+ int ret = 0;
GF_VALIDATE_OR_GOTO (this->name, inode, out);
@@ -613,7 +614,11 @@ __wb_inode_create (xlator_t *this, inode_t *inode)
LOCK_INIT (&wb_inode->lock);
- __inode_ctx_put (inode, this, (uint64_t)(unsigned long)wb_inode);
+ ret = __inode_ctx_put (inode, this, (uint64_t)(unsigned long)wb_inode);
+ if (ret) {
+ GF_FREE (wb_inode);
+ wb_inode = NULL;
+ }
out:
return wb_inode;