void vfs_insertbhv( struct vfs *vfsp, struct bhv_desc *bdp, struct vfsops *vfsops, void *mount) { bhv_desc_init(bdp, mount, vfsp, vfsops); bhv_insert_initial(&vfsp->vfs_bh, bdp); }
void osi_PostPopulateVCache(struct vcache *avc) { memset(&(avc->vc_bhv_desc), 0, sizeof(avc->vc_bhv_desc)); bhv_desc_init(&(avc->vc_bhv_desc), avc, avc, &Afs_vnodeops); #if defined(AFS_SGI65_ENV) vn_bhv_head_init(&(avc->v.v_bh), "afsvp"); vn_bhv_insert_initial(&(avc->v.v_bh), &(avc->vc_bhv_desc)); avc->v.v_mreg = avc->v.v_mregb = (struct pregion *)avc; # if defined(VNODE_TRACING) avc->v.v_trace = ktrace_alloc(VNODE_TRACE_SIZE, 0); # endif init_bitlock(&avc->v.v_pcacheflag, VNODE_PCACHE_LOCKBIT, "afs_pcache", avc->v.v_number); init_mutex(&avc->v.v_filocksem, MUTEX_DEFAULT, "afsvfl", (long)avc); init_mutex(&avc->v.v_buf_lock, MUTEX_DEFAULT, "afsvnbuf", (long)avc); #else bhv_head_init(&(avc->v.v_bh)); bhv_insert_initial(&(avc->v.v_bh), &(avc->vc_bhv_desc)); #endif vnode_pcache_init(&avc->v); #if defined(DEBUG) && defined(VNODE_INIT_BITLOCK) /* Above define is never true execpt in SGI test kernels. */ init_bitlock(&avc->v.v_flag, VLOCK, "vnode", avc->v.v_number); #endif #ifdef INTR_KTHREADS AFS_VN_INIT_BUF_LOCK(&(avc->v)); #endif vSetVfsp(avc, afs_globalVFS); vSetType(avc, VREG); VN_SET_DPAGES(&(avc->v), NULL); osi_Assert((avc->v.v_flag & VINACT) == 0); avc->v.v_flag = 0; osi_Assert(VN_GET_PGCNT(&(avc->v)) == 0); osi_Assert(avc->mapcnt == 0 && avc->vc_locktrips == 0); osi_Assert(avc->vc_rwlockid == OSI_NO_LOCKID); osi_Assert(avc->v.v_filocks == NULL); # if !defined(AFS_SGI65_ENV) osi_Assert(avc->v.v_filocksem == NULL); # endif osi_Assert(avc->cred == NULL); # if defined(AFS_SGI64_ENV) vnode_pcache_reinit(&avc->v); avc->v.v_rdev = NODEV; # endif vn_initlist((struct vnlist *)&avc->v); avc->lastr = 0; }