From 079f1aeb3ba24ad3ed7feb5ae18c0b5adb40451d Mon Sep 17 00:00:00 2001 From: Jeffrey Hutzelman Date: Wed, 25 Jan 2006 03:49:53 +0000 Subject: [PATCH] STABLE14-release-avoid-negative-time-20060124 avoid any possibility of time going negative when releasing incrementally (cherry picked from commit 179b4c31d93b511a5762c818a47cddc0e364c9d3) --- src/volser/vsprocs.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/volser/vsprocs.c b/src/volser/vsprocs.c index d669e4e53..331c90baa 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; -- 2.39.5