diff options
author | Anand Avati <avati@gluster.com> | 2011-10-22 09:48:17 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2011-10-30 22:43:29 -0700 |
commit | 0aa270282f0f0a7649d5e07f7d128cef5996cf70 (patch) | |
tree | 01d6f633d52dab0aa075b24c807b89bf5a80c8a2 /glusterfs.spec.in | |
parent | 262c665845753fa870465eb62a3a9f927a071034 (diff) |
locks: perform inode_ref of pl_update_refkeeper outside locked region
Performing inode_ref inside the critical section of pl_update_refkeeper
(around pl_inode_t->mutex) causes a deadlock with inode_table_t->lock.
The other thread (process state dump) holds the inode_table_t->lock first
to loop over inodes and then while dumping an inode's lock context, tries
to acquire pl_inode_t->mutex thereby completing the deadlock.
The fix is to perform inode_ref outside the critical section in
pl_update_refkeeper
Change-Id: I689ab4a9b46b36287740279fdec6159182c86119
BUG: 3753
Reviewed-on: http://review.gluster.com/630
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'glusterfs.spec.in')
0 files changed, 0 insertions, 0 deletions