summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/afr/src/afr-common.c
diff options
context:
space:
mode:
authorRaghavendra Gowdappa <rgowdapp@redhat.com>2019-03-07 16:35:33 +0530
committerRaghavendra G <rgowdapp@redhat.com>2019-03-07 15:10:48 +0000
commit91f98e03ab654f212323d385bfc6fa3c0f2e4110 (patch)
tree4a0fd9371a2be4e883b061b9fa0cd99fb4cb0ff3 /xlators/cluster/afr/src/afr-common.c
parentab9b928873024bbc44c941d2ded1b7371f443dd6 (diff)
performance/readdir-ahead: fix deadlock
This deadlock happens while processing dentry corresponding to current directory (.) in rda_fill_readdirp. In this case following order is followed: LOCK(directory_fd_ctx->lock); rda_inode_ctx_get_iatt -> LOCK(directory_inode->lock); However, in rda_mark_inode_dirty following lock order is followed: LOCK(directory_inode->lock); LOCK(directory_fd_ctx->lock); these two codepaths when executed concurrently resulted in a deadlock. Current patch fixes this by removing locking directory inode and fd-ctx in rda_fill_readdirp. This is fine as directory inode's stat won't change due to writes to files within directory. Change-Id: Ic93a67a0dac8229bb0d79582e526a512e6f2569c fixes: bz#1674412 Signed-off-by: Raghavendra Gowdappa <rgowdapp@redhat.com> Fixes:bz#1674412
Diffstat (limited to 'xlators/cluster/afr/src/afr-common.c')
0 files changed, 0 insertions, 0 deletions