Do not call afs_MarinerLog when afs_mariner is not set
authorHans-Werner Paulsen <hans@MPA-Garching.MPG.DE>
Mon, 26 Nov 2012 14:46:26 +0000 (14:46 +0059)
committerDerrick Brashear <shadow@your-file-system.com>
Mon, 26 Nov 2012 19:48:09 +0000 (11:48 -0800)
When mariner log is not set up (afs_mariner=0), do not call afs_MarinerLog,
otherwise a osi_NetSend() to hostaddress=0 is tried, which will give you
ICMP messages in the socket error queue.
Do not call afs_AddMarinerName, when afs_mariner is not set.

Change-Id: I1ed6369fb0eea130348f4f6fd37bb0d021c4c791
Reviewed-on: http://gerrit.openafs.org/8519
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>

src/afs/VNOPS/afs_vnop_create.c
src/afs/VNOPS/afs_vnop_lookup.c
src/afs/VNOPS/afs_vnop_remove.c
src/afs/afs_warn.c

index 5fe491a..a2aae52 100644 (file)
@@ -486,10 +486,12 @@ afs_create(OSI_VC_DECL(adp), char *aname, struct vattr *attrs,
        afs_PutVolume(volp, READ_LOCK);
 
     if (code == 0) {
-       afs_AddMarinerName(aname, *avcp);
+       if (afs_mariner)
+           afs_AddMarinerName(aname, *avcp);
        /* return the new status in vattr */
        afs_CopyOutAttrs(*avcp, attrs);
-       afs_MarinerLog("store$Creating", *avcp);
+       if (afs_mariner)
+           afs_MarinerLog("store$Creating", *avcp);
     }
 
     afs_PutFakeStat(&fakestate);
index 1a36056..7e16e3a 100644 (file)
@@ -1381,7 +1381,6 @@ afs_lookup(OSI_VC_DECL(adp), char *aname, struct vcache **avcp, afs_ucred_t *acr
     int pass = 0, hit = 0;
     int force_eval = afs_fakestat_enable ? 0 : 1;
     long dirCookie;
-    extern afs_int32 afs_mariner;      /*Writing activity to log? */
     afs_hyper_t versionNo;
     int no_read_access = 0;
     struct sysname_info sysState;      /* used only for @sys checking */
index cda6f8e..3d6c402 100644 (file)
@@ -124,7 +124,8 @@ afsremove(struct vcache *adp, struct dcache *tdc,
      * call FindVCache instead of GetVCache since if the file's really
      * gone, we won't be able to fetch the status info anyway.  */
     if (tvc) {
-       afs_MarinerLog("store$Removing", tvc);
+       if (afs_mariner)
+           afs_MarinerLog("store$Removing", tvc);
 #ifdef AFS_BOZONLOCK_ENV
        afs_BozonLock(&tvc->pvnLock, tvc);
        /* Since afs_TryToSmush will do a pvn_vptrunc */
index 58a5920..834a848 100644 (file)
@@ -148,7 +148,8 @@ afs_warnuser(char *fmt, ...)
        /* mariner log the warning */
        snprintf(buf, sizeof(buf), "warn$");
        vsnprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), fmt, ap);
-       afs_MarinerLog(buf, NULL);
+       if (afs_mariner)
+           afs_MarinerLog(buf, NULL);
        va_end(ap);
        va_start(ap, fmt);
        vprintf(fmt, ap);