My vos parti takes for ages sometimes. My guess is that it waits
for some lock, probably VOL_LOCK.
partition.c:
void
VSetPartitionDiskUsage(register struct DiskPartition *dp)
{
VOL_LOCK;
VSetPartitionDiskUsage_r(dp);
VOL_UNLOCK;
}
Do we really need VOL_LOCK to read the disk usage values? The only
thing I can think of is the linked list DiskPartitionList which is
updated at startup. Either we'd need a seperate r/w lock around
DiskPartitionList or split the VOL_LOCK into readlock and writelock
(mmm, deadlock).
Another cheapter way may be to abort all
VResetDiskUsage/VSetPartitionDiskUsage until we know that we don't
fiddle with DiskPartitionList any more and then skip the lock.
Thoughts?
Harald.
_______________________________________________
OpenAFS-devel mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-devel