summaryrefslogtreecommitdiffstats
path: root/extras
diff options
context:
space:
mode:
authorRavishankar N <ravishankar@redhat.com>2016-05-18 14:37:46 +0530
committerPranith Kumar Karampuri <pkarampu@redhat.com>2016-05-24 01:23:46 -0700
commit86a87a2ec0984f450b36ae6414c2d6d66870af73 (patch)
treed70f8dc5f37f252c9f28eba63ac58646e34ca1fe /extras
parentb01fb8d3bb9772d94073aaa52b2d8210ac4fabb8 (diff)
cluster/afr: Check for required number of entrylks
Problem: Parallel rmdir operations on the same directory results in ENOTCONN messages eventhough there was no network disconnect. In blocking entry lock during rmdir, AFR takes 2 set of locks on all its children-One (parentdir,name of dir to be deleted), the other (full lock on the dir being deleted). We proceed to pre-op stage even if only a single lock (but not all the needed locks) was obtained, only to fail it with ENOTCONN because afr_locked_nodes_get() returns zero nodes in afr_changelog_pre_op(). Fix: After we get replies for all blocking lock requests, if we don't have the minimum number of locks to carry out the FOP, unlock and fail the FOP. The op_errno will be that of the last failed reply we got, i.e. whatever is set in afr_lock_cbk(). Change-Id: Ibef25e65b468ebb5ea6ae1f5121a5f1201072293 BUG: 1336381 Signed-off-by: Ravishankar N <ravishankar@redhat.com> Reviewed-on: http://review.gluster.org/14358 Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com> Tested-by: Pranith Kumar Karampuri <pkarampu@redhat.com> Smoke: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'extras')
0 files changed, 0 insertions, 0 deletions