afs: Handle osi_NewVnode failures
[openafs.git] / src / afs / afs_vcache.c
index 407e5a6..465aa98 100644 (file)
@@ -917,6 +917,9 @@ afs_AllocVCache(void)
     struct vcache *tvc;
 
     tvc = osi_NewVnode();
+    if (tvc == NULL) {
+       return NULL;
+    }
 
     afs_vcount++;
 
@@ -1050,6 +1053,9 @@ afs_NewVCache_int(struct VenusFid *afid, struct server *serverp, int seq)
        }
     }
     tvc = afs_AllocVCache();
+    if (tvc == NULL) {
+       return NULL;
+    }
 #else /* AFS_LINUX22_ENV */
     /* pull out a free cache entry */
     if (!freeVCList) {
@@ -1058,6 +1064,9 @@ afs_NewVCache_int(struct VenusFid *afid, struct server *serverp, int seq)
 
     if (!freeVCList) {
        tvc = afs_AllocVCache();
+       if (tvc == NULL) {
+           return NULL;
+       }
     } else {
        tvc = freeVCList;       /* take from free list */
        freeVCList = tvc->nextfree;