]> Zhao Yanbai Git Server - minix.git/commitdiff
mostly harmless sanity checks.
authorBen Gras <ben@minix3.org>
Tue, 20 Jan 2009 13:43:00 +0000 (13:43 +0000)
committerBen Gras <ben@minix3.org>
Tue, 20 Jan 2009 13:43:00 +0000 (13:43 +0000)
servers/vfs/mount.c
servers/vfs/proto.h

index 7448fa3cd1ff4249b0029b83978e1234038847e7..b36df80f17d4b4bb19bc6dda2b2aeb7809a8ecf6 100644 (file)
@@ -71,6 +71,8 @@ PUBLIC int do_mount()
 {
   endpoint_t fs_e; 
 
+  CHECK_VREFS;
+
   /* Only the super-user may do MOUNT. */
   if (!super_user) return(EPERM);
        
@@ -104,6 +106,8 @@ PRIVATE int mount_fs(endpoint_t fs_e)
   struct vmnt *vmp, *vmp2;
   char *label;
   struct node_details res;
+
+  CHECK_VREFS;
   
   /* Only the super-user may do MOUNT. */
   if (!super_user) return(EPERM);
@@ -339,6 +343,7 @@ PRIVATE int mount_fs(endpoint_t fs_e)
           tfp->fp_wd = root_node;
       }
 
+       CHECK_VREFS;
 
       return(OK);
   }
@@ -372,6 +377,7 @@ PRIVATE int mount_fs(endpoint_t fs_e)
       printf("VFSmount: moving opened block spec to new FS_e: %d...\n", fs_e);
       bspec->v_bfs_e = fs_e; 
   }
+       CHECK_VREFS;
   return(OK);
 }
 
@@ -405,6 +411,8 @@ Dev_t dev;
   struct dmap *dp;
   int count, r;
   int fs_e;
+  
+       CHECK_VREFS;
 
   /* Find vmnt */
   for (vmp_i = &vmnt[0]; vmp_i < &vmnt[NR_MNTS]; ++vmp_i) {
@@ -504,6 +512,7 @@ Dev_t dev;
   vmp->m_dev = NO_DEV;
   vmp->m_fs_e = NONE;
   vmp->m_driver_e = NONE;
+       CHECK_VREFS;
 
   return(OK);
 }
index abd92dd550b2b3ca9085ab186cb6c5509bce131e..70454dd4fbca91e13d530d6f9b08d5ff15907ec3 100644 (file)
@@ -254,11 +254,10 @@ _PROTOTYPE( void vnode_clean_refs, (struct vnode *vp)                   );
 #if 0
 _PROTOTYPE( struct vnode *get_vnode, (int fs_e, int inode_nr)           );
 _PROTOTYPE( struct vnode *get_vnode_x, (int fs_e, int inode_nr)                );
-#endif
-#if 0
 _PROTOTYPE( void mark_vn, (struct vnode *vp, char *file, int line)     );
-_PROTOTYPE( int check_vrefs, (void)                                    );
 #endif
+#define CHECK_VREFS do { if(!check_vrefs()) panic("VFS", "check_vrefs failed", NO_NUM);} while(0)
+_PROTOTYPE( int check_vrefs, (void)                    );
 
 /* write.c */
 _PROTOTYPE( int do_write, (void)                                       );