From c73883e7846fa0421cfac29830c27c9b6aacf5ed Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Fri, 31 Jan 2014 16:36:44 -0600 Subject: [PATCH] afs: Refactor DoLockWarning 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 Reviewed-by: D Brashear --- src/afs/VNOPS/afs_vnop_flock.c | 47 +++++++++++++++++++++++------------------- src/afs/afs_init.c | 3 --- src/afs/afs_prototypes.h | 2 -- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/afs/VNOPS/afs_vnop_flock.c b/src/afs/VNOPS/afs_vnop_flock.c index de5b12b..0e810b4 100644 --- a/src/afs/VNOPS/afs_vnop_flock.c +++ b/src/afs/VNOPS/afs_vnop_flock.c @@ -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); } diff --git a/src/afs/afs_init.c b/src/afs/afs_init.c index 3c33296..45d4b12 100644 --- a/src/afs/afs_init.c +++ b/src/afs/afs_init.c @@ -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 diff --git a/src/afs/afs_prototypes.h b/src/afs/afs_prototypes.h index ae8a3b1..9a8cce3 100644 --- a/src/afs/afs_prototypes.h +++ b/src/afs/afs_prototypes.h @@ -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, -- 1.9.4