{
endpoint_t fs_e;
+ CHECK_VREFS;
+
/* Only the super-user may do MOUNT. */
if (!super_user) return(EPERM);
struct vmnt *vmp, *vmp2;
char *label;
struct node_details res;
+
+ CHECK_VREFS;
/* Only the super-user may do MOUNT. */
if (!super_user) return(EPERM);
tfp->fp_wd = root_node;
}
+ CHECK_VREFS;
return(OK);
}
printf("VFSmount: moving opened block spec to new FS_e: %d...\n", fs_e);
bspec->v_bfs_e = fs_e;
}
+ CHECK_VREFS;
return(OK);
}
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) {
vmp->m_dev = NO_DEV;
vmp->m_fs_e = NONE;
vmp->m_driver_e = NONE;
+ CHECK_VREFS;
return(OK);
}
#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) );