afs: Reword "cache is full" messages 10/13410/3
authorAndrew Deason <adeason@sinenomine.net>
Thu, 13 Dec 2018 18:25:32 +0000 (12:25 -0600)
committerBenjamin Kaduk <kaduk@mit.edu>
Fri, 21 Dec 2018 02:59:29 +0000 (21:59 -0500)
Currently, there are multiple different areas in the code that log a
message that look like this, when we encounter an ENOSPC error when
writing to the cache:

    *** Cache partition is FULL - Decrease cachesize!!! ***

The message is a bit unclear, and doesn't even mention AFS at all.
Reword the message to try to explain a little more what's happening.

Also, since we log the same message in several different places, move
them all to a common function, called afs_WarnENOSPC, so we only need
to change the message in one place.

Change-Id: If1c259bd22a382ff56ed29326aa20c86389d06bc
Reviewed-on: https://gerrit.openafs.org/13410
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/afs/AIX/osi_file.c
src/afs/HPUX/osi_file.c
src/afs/IRIX/osi_file.c
src/afs/LINUX/osi_file.c
src/afs/VNOPS/afs_vnop_write.c
src/afs/afs_prototypes.h
src/afs/afs_warn.c

index 6df3b41..806baf7 100644 (file)
@@ -235,8 +235,7 @@ afs_osi_Write(struct osi_file *afile, afs_int32 offset, void *aptr,
        afs_Trace3(afs_iclSetp, CM_TRACE_WRITEFAILED, ICL_TYPE_INT32, asize,
                   ICL_TYPE_INT32, resid, ICL_TYPE_INT32, code);
        if (code == ENOSPC)
-           afs_warnuser
-               ("\n\n\n*** Cache partition is FULL - Decrease cachesize!!! ***\n\n");
+            afs_WarnENOSPC();
        setuerror(code);
        if (code > 0) {
            code = -code;
index bd52756..d8f8562 100644 (file)
@@ -202,8 +202,7 @@ afs_osi_Write(struct osi_file *afile, afs_int32 offset, void *aptr,
        afile->offset += code;
     } else {
        if (code == ENOSPC)
-           afs_warnuser
-               ("\n\n\n*** Cache partition is FULL - Decrease cachesize!!! ***\n\n");
+            afs_WarnENOSPC();
        setuerror(code);
        if (code > 0) {
            code = -code;
index b9e886b..773a4bd 100644 (file)
@@ -186,8 +186,7 @@ afs_osi_Write(struct osi_file *afile, afs_int32 offset, void *aptr,
        afile->offset += code;
     } else {
        if (code == ENOSPC)
-           afs_warnuser
-               ("\n\n\n*** Cache partition is FULL - Decrease cachesize!!! ***\n\n");
+            afs_WarnENOSPC();
        if (code > 0) {
            code = -code;
        }
index 8f12246..a920b81 100644 (file)
@@ -294,8 +294,7 @@ afs_osi_Write(struct osi_file *afile, afs_int32 offset, void *aptr,
        afile->offset += code;
     } else {
        if (code == ENOSPC)
-           afs_warnuser
-               ("\n\n\n*** Cache partition is FULL - Decrease cachesize!!! ***\n\n");
+            afs_WarnENOSPC();
        if (code > 0) {
            code = -code;
        }
index c7c56dc..5372af6 100644 (file)
@@ -130,8 +130,7 @@ afs_UFSWriteUIO(struct vcache *avc, afs_dcache_id_t *inode, struct uio *tuiop)
 # endif
     AFS_GLOCK();
     if (code == ENOSPC)
-       afs_warnuser
-           ("\n\n\n*** Cache partition is full - decrease cachesize!!! ***\n\n\n");
+        afs_WarnENOSPC();
 #elif defined(AFS_SGI_ENV)
     AFS_GUNLOCK();
     avc->f.states |= CWritingUFS;
index f2aa588..615b0bf 100644 (file)
@@ -1044,6 +1044,7 @@ extern void afs_warnuser(char *fmt, ...)
 extern void afs_warnall(char *fmt, ...)
        AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
 #endif
+extern void afs_WarnENOSPC(void);
 
 /* afs_vcache.c */
 extern int VCHash(struct VenusFid *fid);
index 17d3c89..ba0b757 100644 (file)
@@ -254,3 +254,18 @@ afs_warnall(char *fmt, ...)
 # endif /* AFS_LINUX20_ENV */
 }
 #endif /* AFS_AIX_ENV */
+
+/*
+ * Log a warning when we encounter an ENOSPC error when writing to the cache
+ * partition. We should not normally encounter ENOSPC errors, since we limit
+ * our space usage according to the client config, which should be configured
+ * such that we never run out of space.
+ */
+void
+afs_WarnENOSPC(void)
+{
+    afs_warnuser("afs: Cache partition is FULL! This should not happen, and "
+                 "can result in errors in userspace applications. To avoid "
+                 "this, reduce the configured cache size so we do not run out "
+                 "of space.\n");
+}