diff options
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/features/locks/src/common.c | 2 | ||||
-rw-r--r-- | xlators/features/locks/src/posix.c | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/xlators/features/locks/src/common.c b/xlators/features/locks/src/common.c index a953e0d1a4a..5ad5415ed79 100644 --- a/xlators/features/locks/src/common.c +++ b/xlators/features/locks/src/common.c @@ -363,6 +363,8 @@ pl_update_refkeeper(xlator_t *this, inode_t *inode) int need_ref = 0; pl_inode = pl_inode_get(this, inode); + if (!pl_inode) + return; pthread_mutex_lock(&pl_inode->mutex); { diff --git a/xlators/features/locks/src/posix.c b/xlators/features/locks/src/posix.c index 49ff36f0135..3528e686a96 100644 --- a/xlators/features/locks/src/posix.c +++ b/xlators/features/locks/src/posix.c @@ -1703,6 +1703,12 @@ pl_open(call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, op_ret = 0, op_errno = 0; pl_inode = pl_inode_get(this, fd->inode); + if (!pl_inode) { + gf_msg(this->name, GF_LOG_ERROR, 0, ENOMEM, "Could not get inode"); + op_ret = -1; + op_errno = ENOMEM; + goto unwind; + } /* As per design, under forced and file-based mandatory locking modes * it doesn't matter whether inodes's lock list contain advisory or |