namei: Do not remove n_voldir1
authorAndrew Deason <adeason@sinenomine.net>
Thu, 9 Sep 2010 19:10:01 +0000 (14:10 -0500)
committerDerrick Brashear <shadow@dementia.org>
Thu, 9 Sep 2010 20:28:58 +0000 (13:28 -0700)
commitf2df207274c65b4fa8c24419150e9084a4d17fca
treea6516f9c43191d5ce97c71a7e454aa831312527f
parent92ff0028f2e6a2f24dd5369f9b31e9852bf92abc
namei: Do not remove n_voldir1

When removing data directories in namei_RemoveDataDirectories, do not
remove the n_voldir1 directory (directory X in /vicepa/AFSIDat/X).
Removing this directory can race against the creation of an entirely
unrelated volume, causing the create op to fail (since it tries to
create a directory in a directory that no longer exists).

We don't currently have the necessary locking to make this safe, and
since the overhead of n_voldir1 existing is pretty negligible, just
leave it there. Also add some comments briefly justifying this.

Note that other similar races probably exist for directories under
n_voldir1, but they would only be between volumes in the same VG, and
so are much less likely to occur.

Change-Id: I5eac894cdbdb3fd1d74d8a0fc226df03686ceeef
Reviewed-on: http://gerrit.openafs.org/2727
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
src/vol/namei_ops.c