volser-dumpstuff-log-errors-20081010
authorJeffrey Hutzelman <jhutz@cmu.edu>
Fri, 10 Oct 2008 15:42:10 +0000 (15:42 +0000)
committerDerrick Brashear <shadow@dementia.org>
Fri, 10 Oct 2008 15:42:10 +0000 (15:42 +0000)
LICENSE IPL10
FIXES 121040

return sensible (ENOSPC) errors when out of tags or vnodes. don't perror. log
instead.

src/vol/namei_ops.c
src/volser/dumpstuff.c

index b6e1c1c..4d37b78 100644 (file)
@@ -993,8 +993,10 @@ GetFreeTag(IHandle_t * ih, int vno)
        if ((row & coldata) == 0)
            break;
     }
-    if (col >= NAMEI_MAXVOLS)
+    if (col >= NAMEI_MAXVOLS) {
+       errno = ENOSPC;
        goto badGetFreeTag;
+    }
 
     coldata = 1 << (col * 3);
     row |= coldata;
index 10bce4c..5f824e4 100644 (file)
@@ -1225,8 +1225,8 @@ ReadVnodes(register struct iod *iodp, Volume * vp, int incremental,
                                  V_parentId(vp), vnodeNumber,
                                  vnode->uniquifier, vnode->dataVersion);
                    if (!VALID_INO(ino)) {
-                       perror("unable to allocate inode");
-                       Log("1 Volser: ReadVnodes: Restore aborted\n");
+                       Log("1 Volser: ReadVnodes: IH_CREATE: %s - restore aborted\n",
+                            afs_error_message(errno));
                        return VOLSERREAD_DUMPERROR;
                    }
                    nearInode = ino;
@@ -1234,6 +1234,8 @@ ReadVnodes(register struct iod *iodp, Volume * vp, int incremental,
                    IH_INIT(tmpH, vp->device, V_parentId(vp), ino);
                    fdP = IH_OPEN(tmpH);
                    if (fdP == NULL) {
+                       Log("1 Volser: ReadVnodes: IH_OPEN: %s - restore aborted\n",
+                            afs_error_message(errno));
                        IH_RELEASE(tmpH);
                        return VOLSERREAD_DUMPERROR;
                    }