From da1123b9d87db1642883336e990ff393ae0fcc50 Mon Sep 17 00:00:00 2001 From: Pavan Sondur Date: Mon, 28 Jun 2010 14:10:36 +0000 Subject: cluster/afr: Set lk-owner to pid when fuse does not supply it. Use the frame->root address as lk-owner when FUSE does not supply lk_owner. Raghu, I unit tested this patch with dbench and self heal tests. Did not observe lk-owner=0 in any server logs. Can you verify this patch with the other tests you had run today? Signed-off-by: Pavan Vilas Sondur Signed-off-by: Anand V. Avati BUG: 1032 (Set lock-owner with pid when fuse does not supply value) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1032 --- xlators/cluster/afr/src/afr.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'xlators/cluster/afr/src/afr.c') diff --git a/xlators/cluster/afr/src/afr.c b/xlators/cluster/afr/src/afr.c index 6afb2fb97..10f572925 100644 --- a/xlators/cluster/afr/src/afr.c +++ b/xlators/cluster/afr/src/afr.c @@ -60,6 +60,17 @@ #define AFR_ICTX_READ_CHILD_MASK 0x00000000FFFFFFFFULL +void +afr_set_lk_owner (call_frame_t *frame, xlator_t *this) +{ + if (!frame->root->lk_owner) { + gf_log (this->name, GF_LOG_TRACE, + "Setting lk-owner=%llu", + (unsigned long long) frame->root); + frame->root->lk_owner = (uint64_t) frame->root; + } +} + uint64_t afr_is_split_brain (xlator_t *this, inode_t *inode) { -- cgit