]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-vpurge-needs-no-lock-20060713
authorDerrick Brashear <shadow@dementia.org>
Thu, 13 Jul 2006 19:20:32 +0000 (19:20 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 13 Jul 2006 19:20:32 +0000 (19:20 +0000)
don't hold the VOL_LOCK during vpurgevolume
volserver's transaction stuff (NewTrans, actually) precludes any problem

(cherry picked from commit 6878e0b6348a649768274adbce77500fbd45caa4)

src/vol/purge.c

index 01bb22efa33780022a3d610ace9ea4a38323d327..b9057f71cc0a3851d81e70c730a6777ff32b6b9d 100644 (file)
@@ -58,8 +58,11 @@ RCSID
 void PurgeIndex_r(Volume * vp, VnodeClass class);
 void PurgeHeader_r(Volume * vp);
 
+/* No lock needed. Only the volserver will call this, and only one transaction
+ * can have a given volume (volid/partition pair) in use at a time 
+ */
 void
-VPurgeVolume_r(Error * ec, Volume * vp)
+VPurgeVolume(Error * ec, Volume * vp)
 {
     struct DiskPartition *tpartp = vp->partition;
     char purgePath[MAXPATHLEN];
@@ -81,14 +84,6 @@ VPurgeVolume_r(Error * ec, Volume * vp)
     FSYNC_askfs(V_id(vp), tpartp->name, FSYNC_RESTOREVOLUME, 0);
 }
 
-void
-VPurgeVolume(Error * ec, Volume * vp)
-{
-    VOL_LOCK;
-    VPurgeVolume_r(ec, vp);
-    VOL_UNLOCK;
-}
-
 #define MAXOBLITATONCE 200
 /* delete a portion of an index, adjusting offset appropriately.  Returns 0 if
    things work and we should be called again, 1 if success full and done, and -1