]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
volser: Break callbacks to the target of VolClone
authorMarc Dionne <marc.dionne@your-file-system.com>
Thu, 27 Nov 2014 21:23:12 +0000 (16:23 -0500)
committerJeffrey Altman <jaltman@your-file-system.com>
Sun, 7 Dec 2014 00:54:09 +0000 (19:54 -0500)
With the "-stayup" release mechanism, clients may have callbacks
to the target of VolClone rather than the target of VolRestore,
so also break callbacks there.

This could cause clients to not be notified of a volume release
done with -stayup and have stale contents.

Change-Id: I94009f4b9382471a3615d2a729e4ee3955a14d44
Reviewed-on: http://gerrit.openafs.org/11619
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
src/volser/volprocs.c

index 941342a5230f91a106db46a44d877186d29b04b4..a1383a703617435effc8d8ce09fae4d287f366c6 100644 (file)
@@ -849,6 +849,10 @@ VolClone(struct rx_call *acid, afs_int32 atrans, VolumeId purgeId,
 #ifdef AFS_DEMAND_ATTACH_FS
     salv_vp = NULL;
 #endif
+
+    /* Clients could have callbacks to the clone ID */
+    FSYNC_VolOp(newId, NULL, FSYNC_VOL_BREAKCBKS, 0l, NULL);
+
     if (TRELE(tt)) {
        tt = (struct volser_trans *)0;
        error = VOLSERTRELE_ERROR;