diff options
author | Pranith Kumar K <pranithk@gluster.com> | 2012-07-28 12:18:50 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2012-08-13 10:25:41 +0530 |
commit | be8f742b92155fb001c4f3d262ad6f4af22cabd1 (patch) | |
tree | cfa54b661679fd679d91dc001bf16dfec8280f6b /xlators/features/locks/src/common.h | |
parent | 8701b14a7ceb877486ee0761492bc043fd071e33 (diff) |
features/locks: Fix statedump code
RCA:
Taking blocking mutex/spin locks lead to dead locks
because of the locking order in statedumps. Also we
were asked to remove gf_logs if possible to avoid extra
cost in signal handlers.
Fix:
changed blocking mutes/spin locks to their non-blocking variants.
Removed gf_logs in locks xlator statedump code-path.
Tests:
State-dump success cases are working fine.
Triggered try-lock failures by putting statedumps in a while loop.
In parallel did chown of the same file in a while loop.
BUG: 843781
Change-Id: Iac9b75d79cd5e036cd3eafc1e106074e2c6b5c47
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/3752
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators/features/locks/src/common.h')
-rw-r--r-- | xlators/features/locks/src/common.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/xlators/features/locks/src/common.h b/xlators/features/locks/src/common.h index 2cf9aa38093..97faa5b92be 100644 --- a/xlators/features/locks/src/common.h +++ b/xlators/features/locks/src/common.h @@ -88,9 +88,13 @@ grant_blocked_entry_locks (xlator_t *this, pl_inode_t *pl_inode, void pl_update_refkeeper (xlator_t *this, inode_t *inode); int32_t +__get_inodelk_count (xlator_t *this, pl_inode_t *pl_inode); +int32_t get_inodelk_count (xlator_t *this, inode_t *inode); int32_t +__get_entrylk_count (xlator_t *this, pl_inode_t *pl_inode); +int32_t get_entrylk_count (xlator_t *this, inode_t *inode); void pl_trace_in (xlator_t *this, call_frame_t *frame, fd_t *fd, loc_t *loc, |