viced-allow-hinting-of-all-new-clients-for-vbusy-vrestarting-handling-20030215
authorDerrick Brashear <shadow@dementia.org>
Sat, 15 Feb 2003 14:17:15 +0000 (14:17 +0000)
committerDerrick Brashear <shadow@dementia.org>
Sat, 15 Feb 2003 14:17:15 +0000 (14:17 +0000)
For sites with only new (>3.4) clients (or who decide to not care
about older clients) and want to force VRESTARTING instead of VBUSY.

src/viced/afsfileprocs.c
src/viced/viced.c
src/viced/viced.h

index 5cc2e11..076cc75 100644 (file)
@@ -462,13 +462,13 @@ CheckVnode(AFSFid *fid, Volume **volptr, Vnode **vptr, int lock)
            /* I'm not really worried about when we restarted, I'm   */
            /* just worried about when the first VBUSY was returned. */
            TM_GetTimeOfDay(&restartedat, 0);
-           return(VBUSY);
+           return(busyonrst?VBUSY:VRESTARTING);
          }
          else {
            struct timeval now;
            TM_GetTimeOfDay(&now, 0);
            if ((now.tv_sec - restartedat.tv_sec) < (11*60)) {
-             return(VBUSY);
+             return(busyonrst?VBUSY:VRESTARTING);
            }
            else {
              return (VRESTARTING);
index b71e92c..3384a5a 100644 (file)
@@ -147,6 +147,7 @@ struct afs_PerfStats afs_perfstats;
 extern int     LogLevel;
 extern int     Statistics;
 
+int     busyonrst = 1;
 int     timeout = 30;
 int    SawSpare;
 int    SawPctSpare;
@@ -646,6 +647,7 @@ static void FlagMsg()
     strcat(buffer, "[-readonly (read-only file server)] ");
     strcat(buffer, "[-hr <number of hours between refreshing the host cps>] ");
     strcat(buffer, "[-busyat <redirect clients when queue > n>] ");
+    strcat(buffer, "[-nobusy <no VBUSY before a volume is attached>] ");
     strcat(buffer, "[-rxpck <number of rx extra packets>] ");
     strcat(buffer, "[-rxdbg (enable rx debugging)] ");
     strcat(buffer, "[-rxdbge (enable rxevent debugging)] ");
@@ -875,7 +877,10 @@ static int ParseArgs(int argc, char *argv[])
                           busy_threshold);
                    Sawbusy = 0;
                }
-           }
+             }
+           else
+             if (!strcmp(argv[i], "-nobusy")) 
+               busyonrst=0;
 #ifdef AFS_AIX32_ENV
        else
            if (!strcmp(argv[i], "-m")) {
index 570c6b5..d862314 100644 (file)
@@ -189,6 +189,8 @@ struct AFSStatistics
        struct AFSDisk  Disks[AFS_MSTATDISKS];
 };
 
+extern int busyonrst;
+
 #define RESTART_ORDINARY 1
 #define RESTART_FAST 2
 #define RESTART_SAFE 3