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

Reply via email to