From: Jeffrey Hutzelman Date: Wed, 25 Jan 2006 03:49:25 +0000 (+0000) Subject: release-avoid-negative-time-20060124 X-Git-Tag: openafs-devel-1_5_0~75 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=179b4c31d93b511a5762c818a47cddc0e364c9d3 release-avoid-negative-time-20060124 avoid any possibility of time going negative when releasing incrementally --- diff --git a/src/volser/vsprocs.c b/src/volser/vsprocs.c index d669e4e..331c90b 100644 --- a/src/volser/vsprocs.c +++ b/src/volser/vsprocs.c @@ -56,6 +56,7 @@ RCSID #include #define ERRCODE_RANGE 8 /* from error_table.h */ #define CLOCKSKEW 2 /* not really skew, but resolution */ +#define CLOCKADJ(x) (((x) < CLOCKSKEW) ? 0 : (x) - CLOCKSKEW) /* for UV_MoveVolume() recovery */ @@ -1329,7 +1330,7 @@ UV_MoveVolume2(afs_int32 afromvol, afs_int32 afromserver, afs_int32 afrompart, newVol); VDONE; - fromDate = tstatus.creationDate - CLOCKSKEW; + fromDate = CLOCKADJ(tstatus.creationDate); } else { /* With RV_NOCLONE, just do a full copy from the source */ fromDate = 0; @@ -2162,7 +2163,7 @@ UV_CopyVolume2(afs_int32 afromvol, afs_int32 afromserver, afs_int32 afrompart, cloneVol); VDONE; - fromDate = tstatus.creationDate - CLOCKSKEW; + fromDate = CLOCKADJ(tstatus.creationDate); } else { fromDate = 0; } @@ -2180,7 +2181,7 @@ UV_CopyVolume2(afs_int32 afromvol, afs_int32 afromserver, afs_int32 afrompart, VDONE; /* Using the update date should be OK here, but add some fudge */ - cloneFromDate = tstatus.updateDate - CLOCKSKEW; + cloneFromDate = CLOCKADJ(tstatus.updateDate); if ((flags & RV_NOCLONE)) fromDate = cloneFromDate; @@ -3087,8 +3088,8 @@ GetTrans(struct nvldbentry *vldbEntryPtr, afs_int32 index, code); goto fail; } - *crtimePtr = tstatus.creationDate - CLOCKSKEW; - *uptimePtr = tstatus.updateDate - CLOCKSKEW; + *crtimePtr = CLOCKADJ(tstatus.creationDate); + *uptimePtr = CLOCKADJ(tstatus.updateDate); } return 0;