afs: Refactor DoLockWarning
authorAndrew Deason <adeason@sinenomine.net>
Fri, 31 Jan 2014 22:36:44 +0000 (16:36 -0600)
committerD Brashear <shadow@your-file-system.com>
Wed, 5 Feb 2014 14:43:58 +0000 (06:43 -0800)
Change DoLockWarning around a little bit, so subsequent changes are
easier to follow. Move lastWarnTime/lastWarnPid so they are only
usable within this function.

This commit should incur no functional change.

Change-Id: I5d25f64e9c088aecee0f0c46b6c401b2caa71ccb
Reviewed-on: http://gerrit.openafs.org/10794
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: D Brashear <shadow@your-file-system.com>

src/afs/VNOPS/afs_vnop_flock.c
src/afs/afs_init.c
src/afs/afs_prototypes.h

index de5b12b..0e810b4 100644 (file)
@@ -36,7 +36,6 @@ static int GetFlockCount(struct vcache *avc, struct vrequest *areq);
 static int lockIdcmp2(struct AFS_FLOCK *flock1, struct vcache *vp,
                      struct SimpleLocks *alp, int onlymine,
                      int clid);
-static void DoLockWarning(afs_ucred_t * acred);
 
 /* int clid;  * non-zero on SGI, OSF, SunOS, Darwin, xBSD ** XXX ptr type */
 
@@ -507,42 +506,48 @@ HandleFlock(struct vcache *avc, int acom, struct vrequest *areq,
 
 
 /* warn a user that a lock has been ignored */
-afs_int32 lastWarnTime = 0;    /* this is used elsewhere */
-static afs_int32 lastWarnPid = 0;
 static void
 DoLockWarning(afs_ucred_t * acred)
 {
-    afs_int32 now;
+    static afs_uint32 lastWarnTime;
+    static pid_t lastWarnPid;
+
+    afs_uint32 now;
     pid_t pid = MyPidxx2Pid(MyPidxx);
     char *procname;
+    const char *message;
 
     now = osi_Time();
 
     AFS_STATCNT(DoLockWarning);
+
     /* check if we've already warned this user recently */
-    if (!((now < lastWarnTime + 120) && (lastWarnPid == pid))) {
-       procname = afs_osi_Alloc(256);
+    if ((now < lastWarnTime + 120) && (lastWarnPid == pid)) {
+       return;
+    }
+
+    procname = afs_osi_Alloc(256);
 
-       if (!procname)
-           return;
+    if (!procname)
+       return;
 
-       /* Copies process name to allocated procname, see osi_machdeps for details of macro */
-       osi_procname(procname, 256);
-       procname[255] = '\0';
+    /* Copies process name to allocated procname, see osi_machdeps for details of macro */
+    osi_procname(procname, 256);
+    procname[255] = '\0';
+
+    lastWarnTime = now;
+    lastWarnPid = pid;
 
-       /* otherwise, it is time to nag the user */
-       lastWarnTime = now;
-       lastWarnPid = pid;
 #ifdef AFS_LINUX26_ENV
-       afs_warnuser
-           ("afs: byte-range locks only enforced for processes on this machine (pid %d (%s), user %ld).\n", pid, procname, (long)afs_cr_uid(acred));
+    message = "byte-range locks only enforced for processes on this machine";
 #else
-       afs_warnuser
-           ("afs: byte-range lock/unlock ignored; make sure no one else is running this program (pid %d (%s), user %ld).\n", pid, procname, (long)afs_cr_uid(acred));
+    message = "byte-range lock/unlock ignored; make sure no one else is running this program";
 #endif
-       afs_osi_Free(procname, 256);
-    }
-    return;
+
+    afs_warnuser("afs: %s (pid %d (%s), user %ld).\n",
+                 message, pid, procname, (long)afs_cr_uid(acred));
+
+    afs_osi_Free(procname, 256);
 }
 
 
index 3c33296..45d4b12 100644 (file)
@@ -728,9 +728,6 @@ shutdown_vnodeops(void)
 {
     AFS_STATCNT(shutdown_vnodeops);
     if (afs_cold_shutdown) {
-#ifndef        AFS_SUN5_ENV            /* XXX */
-       lastWarnTime = 0;
-#endif
 #ifndef AFS_LINUX20_ENV
        afs_rd_stash_i = 0;
 #endif
index ae8a3b1..9a8cce3 100644 (file)
@@ -1203,8 +1203,6 @@ int afs_fid(OSI_VC_DECL(avc), struct fid **fidpp);
 #endif                          /* AFS_AIX41_ENV */
 
 /* VNOPS/afs_vnop_flock.c */
-extern afs_int32 lastWarnTime;
-
 extern void lockIdSet(struct AFS_FLOCK *flock, struct SimpleLocks *slp,
                      int clid);
 extern int HandleFlock(struct vcache *avc, int acom,