summaryrefslogtreecommitdiffstats
path: root/glusterfsd
diff options
context:
space:
mode:
authorAnand Avati <avati@redhat.com>2013-08-29 23:35:23 -0700
committerAnand Avati <avati@redhat.com>2013-09-09 14:58:09 -0700
commitebcf1c8ddb76ca1234282e5189f6800d89db4b98 (patch)
tree9b8cb85d117220b2c07f401da5dc6a84d0f75ed4 /glusterfsd
parentd3e533fe333449a782b925414d856469987ee00a (diff)
cluster/dht: assign layout onto missing directories too
The current self-healing algorithm is ignoring missing directories for assigning new layout. When lookup() is racing against mkdir() or when self-healing a half-done mkdir(), the layout assignment split must happen based on the final number of directories, and not the currently existing number of directories (because we finish mkdir() of missing directories before hash layout assignment). Without this fix, concurrent mkdir() and lookup() will step on each others feet, create a messed up layout on disk, and end up with different in-memory layouts. Once two clients have different in-memory layouts, creation of subdirectory will not arbitrate on the same hashed subvolume and will result in GFID mismatch of the sub-directory. Change-Id: Ia47acad67c265060405984c822b4d37512b9dbb3 BUG: 907072 Signed-off-by: Anand Avati <avati@redhat.com> Reviewed-on: http://review.gluster.org/5849 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amarts@redhat.com> Reviewed-by: Peter Portante <pportant@redhat.com> Tested-by: Peter Portante <pportant@redhat.com>
Diffstat (limited to 'glusterfsd')
0 files changed, 0 insertions, 0 deletions