version 1.97, 2008/01/02 11:49:03 |
version 1.98, 2008/01/02 19:26:46 |
Line 68 POOL_INIT(nfs_node_pool, sizeof(struct n |
|
Line 68 POOL_INIT(nfs_node_pool, sizeof(struct n |
|
POOL_INIT(nfs_vattr_pool, sizeof(struct vattr), 0, 0, 0, "nfsvapl", |
POOL_INIT(nfs_vattr_pool, sizeof(struct vattr), 0, 0, 0, "nfsvapl", |
&pool_allocator_nointr, IPL_NONE); |
&pool_allocator_nointr, IPL_NONE); |
|
|
MALLOC_DEFINE(M_NFSBIGFH, "NFS bigfh", "NFS big filehandle"); |
|
MALLOC_DEFINE(M_NFSNODE, "NFS node", "NFS vnode private part"); |
MALLOC_DEFINE(M_NFSNODE, "NFS node", "NFS vnode private part"); |
|
|
extern int prtactive; |
extern int prtactive; |
|
|
|
|
LIST_INSERT_HEAD(nhpp, np, n_hash); |
LIST_INSERT_HEAD(nhpp, np, n_hash); |
if (fhsize > NFS_SMALLFH) { |
if (fhsize > NFS_SMALLFH) { |
np->n_fhp = malloc(fhsize, M_NFSBIGFH, M_WAITOK); |
np->n_fhp = kmem_alloc(fhsize, KM_SLEEP); |
} else |
} else |
np->n_fhp = &np->n_fh; |
np->n_fhp = &np->n_fh; |
memcpy(np->n_fhp, fhp, fhsize); |
memcpy(np->n_fhp, fhp, fhsize); |
|
|
} |
} |
kauth_cred_free(sp->s_cred); |
kauth_cred_free(sp->s_cred); |
vput(sp->s_dvp); |
vput(sp->s_dvp); |
FREE(sp, M_NFSREQ); |
kmem_free(sp, sizeof(*sp)); |
} |
} |
|
|
return (0); |
return (0); |
|
|
KASSERT(np->n_dirgens == NULL); |
KASSERT(np->n_dirgens == NULL); |
|
|
if (np->n_fhsize > NFS_SMALLFH) |
if (np->n_fhsize > NFS_SMALLFH) |
free(np->n_fhp, M_NFSBIGFH); |
kmem_free(np->n_fhp, np->n_fhsize); |
|
|
pool_put(&nfs_vattr_pool, np->n_vattr); |
pool_put(&nfs_vattr_pool, np->n_vattr); |
if (np->n_rcred) |
if (np->n_rcred) |