The following commit has been merged in the openafs-stable-1_6_x branch:
commit 4b6f0efba23d855cc79b8d503242589be9ac7ce2
Author: Michael Meffie <[email protected]>
Date: Mon Dec 23 11:42:19 2013 -0500
vol: fix nextVnodeUnique roll over
Fixes for the per volume nextVnodeUnique counter roll over. Uniquifier
number 1
is reserved for the root vnode, so reset the unique count to 2 when the
nextVnodeUnique counter rolls over.
Update the disk backed V_uniquifier count when the in-memory nextVnodeUnique
counter rolls over during the creation of a new vnode. If the
nextVnodeUnique
rolls over when V_uniquifier is UINT32_MAX, then the V_uniquifier is not
updated
and remains at UINT32_MAX until the next VUpdateVolume_r() call for the
volume.
This bug is usually masked by the VBumpVolumeUsage(), which on every 128
volume
accesses, bumps the V_uniquifier to be 200 more than the current
nextVnodeUnique counter. This causes the V_uniquifier to roll over before
reaching UINT32_MAX. (The number of access before updating the headers is
set
in the usage_threshold volume package option, which is currently set to 128
by
default.)
The following shows the unique counters for a series of vnode
creation/deletions before this commit. The nextVnodeUnique rolls over to 1,
and the uniquifier is not reset. The `usage_threshold' was set to a value
greater than 200 to avoid the VBumpVolumeUsage() calls during this test run.
fid = 536870918.4.4294967294, nextVnodeUnique = 4294967295, uniquifier =
4294967295
fid = 536870918.4.4294967295, nextVnodeUnique = 0, uniquifier = 4294967295
fid = 536870918.4.1, nextVnodeUnique = 2, uniquifier = 4294967295
fid = 536870918.4.2, nextVnodeUnique = 3, uniquifier = 4294967295
The following shows the unique counters after this commit:
fid = 536870918.4.4294967294, nextVnodeUnique = 4294967295, uniquifier =
4294967295
fid = 536870918.4.4294967295, nextVnodeUnique = 0, uniquifier = 4294967295
fid = 536870918.4.2, nextVnodeUnique = 3, uniquifier = 203
fid = 536870918.4.3, nextVnodeUnique = 4, uniquifier = 203
Reviewed-on: http://gerrit.openafs.org/10616
Tested-by: BuildBot <[email protected]>
Reviewed-by: Benjamin Kaduk <[email protected]>
Reviewed-by: Jeffrey Altman <[email protected]>
Reviewed-by: Derrick Brashear <[email protected]>
(cherry picked from commit 1a287c631ead0221828ae70e10c3cfd5563fdfb7)
Change-Id: I4d2bca2f3f1763f00e12de98f9dc4534c2ae51de
Reviewed-on: http://gerrit.openafs.org/10846
Tested-by: BuildBot <[email protected]>
Reviewed-by: Benjamin Kaduk <[email protected]>
Reviewed-by: Andrew Deason <[email protected]>
Reviewed-by: Stephan Wiesand <[email protected]>
src/vol/vnode.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
--
OpenAFS Master Repository
_______________________________________________
OpenAFS-cvs mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-cvs