From b4a01412c8ecaa114c872df3938edba67eb5b517 Mon Sep 17 00:00:00 2001
From: Fredrik Noring <noring@nocrew.org>
Date: Wed, 25 Mar 1998 16:25:23 +0100
Subject: [PATCH] Disk full problem fixed.

Rev: lib/modules/PDB.pmod:1.2
---
 lib/modules/PDB.pmod | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/lib/modules/PDB.pmod b/lib/modules/PDB.pmod
index 2910bd1861..1757ee582a 100644
--- a/lib/modules/PDB.pmod
+++ b/lib/modules/PDB.pmod
@@ -1,5 +1,5 @@
 /*
- * $Id: PDB.pmod,v 1.1 1998/03/23 17:45:29 noring Exp $
+ * $Id: PDB.pmod,v 1.2 1998/03/25 15:25:23 noring Exp $
  */
 
 #if constant(thread_create)
@@ -37,15 +37,20 @@ class FileIO {
     int n;
     for(;;) {
       n = o->write(d);
-      if(!sov || n == sizeof(d) || n<0)
+      if(!sov || n == sizeof(d) || (n<0 && !(<11,12,16,24,28,49>)[o->errno()]))
 	break;
       d = d[n..];
       if(!warned_already) {
-	PDB_WARN(ctx+": Disk seems to be full.");
+	if(n<0)
+	  PDB_WARN(ctx+": "+strerror(o->errno())+" (sleeping)");
+	else
+	  PDB_WARN(ctx+": Disk seems to be full. (sleeping)");
 	warned_already=1;
       }
       sleep(1);
     }
+    if(warned_already)
+      PDB_WARN(ctx+": I'm OK now.");
     return (n<0? n : (n==strlen(d)? 1 : 0));
   }
 
-- 
GitLab