diff options
author | Harshavardhana <harsha@zresearch.com> | 2009-02-28 01:49:40 -0800 |
---|---|---|
committer | Anand V. Avati <avati@amp.gluster.com> | 2009-02-28 23:39:27 +0530 |
commit | fd524dda532a05cb2485935212d1a66f4130256c (patch) | |
tree | 5500177ef6dc3527a1de9c00bec5177b098a6afd /xlators/features/locks | |
parent | b6bf3b8d6efb995d4ca7b91ff41709c57753d632 (diff) |
Fix solaris server segfault in recent "rc3" release.
typecasting from uint64_t directly over pl_inode structure segfaults
are all the calls from posix-locks.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
Diffstat (limited to 'xlators/features/locks')
-rw-r--r-- | xlators/features/locks/src/common.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/xlators/features/locks/src/common.c b/xlators/features/locks/src/common.c index d87aec229..675fb0235 100644 --- a/xlators/features/locks/src/common.c +++ b/xlators/features/locks/src/common.c @@ -51,15 +51,16 @@ __insert_and_merge (pl_inode_t *pl_inode, posix_lock_t *lock, pl_inode_t * pl_inode_get (xlator_t *this, inode_t *inode) { + uint64_t tmp_pl_inode = 0; pl_inode_t *pl_inode = NULL; mode_t st_mode = 0; int ret = 0; - ret = inode_ctx_get (inode, this, - (uint64_t *)(&pl_inode)); - if (ret == 0) + ret = inode_ctx_get (inode, this,&tmp_pl_inode); + if (ret == 0) { + pl_inode = (pl_inode_t *)(long)tmp_pl_inode; goto out; - + } pl_inode = CALLOC (1, sizeof (*pl_inode)); if (!pl_inode) { gf_log (this->name, GF_LOG_ERROR, |