g/c some dead code

make smbfs_name_{alloc|free} inline
turn some checks for smbfs code errors to KASSERT()s
KNF some
also initialize n_size in smbfs_node_alloc()
g/c write-only variable in smbfs_nget()
This commit is contained in:
jdolecek 2003-02-23 21:33:06 +00:00
parent ccf56de797
commit a7bf0f25db
1 changed files with 20 additions and 27 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: smbfs_node.c,v 1.6 2003/02/20 15:39:58 jdolecek Exp $ */
/* $NetBSD: smbfs_node.c,v 1.7 2003/02/23 21:33:06 jdolecek Exp $ */
/*
* Copyright (c) 2000-2001 Boris Popov
@ -52,8 +52,6 @@
#include <uvm/uvm.h>
#include <uvm/uvm_extern.h>
/*#include <vm/vm_page.h>
#include <vm/vm_object.h>*/
#include <fs/smbfs/smbfs.h>
#include <fs/smbfs/smbfs_node.h>
@ -66,11 +64,7 @@
MALLOC_DEFINE(M_SMBNODE, "SMBFS node", "SMBFS vnode private part");
static MALLOC_DEFINE(M_SMBNODENAME, "SMBFS nname", "SMBFS node name");
#ifdef __NetBSD__
extern int (**smbfs_vnodeop_p) __P((void *));
#else
extern vop_t **smbfs_vnodeop_p;
#endif /* !NetBSD */
#if 0
static int smbfs_hashprint(struct mount *mp);
@ -115,7 +109,7 @@ smbfs_hashprint(struct mount *mp)
}
#endif
static char *
static inline char *
smbfs_name_alloc(const u_char *name, int nmlen)
{
u_char *cp;
@ -126,7 +120,7 @@ smbfs_name_alloc(const u_char *name, int nmlen)
return cp;
}
static void
static inline void
smbfs_name_free(u_char *name)
{
free(name, M_SMBNODENAME);
@ -143,23 +137,20 @@ smbfs_node_alloc(struct mount *mp, struct vnode *dvp,
u_long hashval;
int error;
*vpp = NULL;
if (smp->sm_root != NULL && dvp == NULL) {
SMBERROR("do not allocate root vnode twice!\n");
return EINVAL;
}
/* do not allow allocating root vnode twice */
KASSERT(dvp != NULL || smp->sm_root == NULL);
/* do not call with dot */
KASSERT(nmlen != 1 || name[0] != '.');
if (nmlen == 2 && memcmp(name, "..", 2) == 0) {
if (dvp == NULL)
return EINVAL;
vp = VTOSMB(dvp)->n_parent->n_vnode;
error = vget(vp, LK_EXCLUSIVE);
if (error == 0)
if ((error = vget(vp, LK_EXCLUSIVE)) == 0)
*vpp = vp;
return error;
} else if (nmlen == 1 && name[0] == '.') {
SMBERROR("do not call me with dot!\n");
return EINVAL;
return (error);
}
dnp = dvp ? VTOSMB(dvp) : NULL;
if (dnp == NULL && dvp != NULL) {
vprint("smbfs_node_alloc: dead parent vnode", dvp);
@ -180,7 +171,7 @@ loop:
if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK) != 0)
goto retry;
*vpp = vp;
return 0;
return (0);
}
smbfs_hash_unlock(smp);
/*
@ -206,6 +197,10 @@ loop:
np->n_nmlen = nmlen;
np->n_name = smbfs_name_alloc(name, nmlen);
np->n_ino = fap->fa_ino;
np->n_size = fap->fa_size;
/* new file vnode has to have a parent */
KASSERT(vp->v_type != VREG || dvp != NULL);
if (dvp) {
np->n_parent = dnp;
@ -213,9 +208,6 @@ loop:
vref(dvp);
np->n_flag |= NREFPARENT;
}
} else if (vp->v_type == VREG) {
SMBERROR("new vnode '%.*s' born without parent ?\n",
(int) nmlen, np->n_name);
}
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
@ -226,11 +218,14 @@ loop:
|| np2->n_nmlen != nmlen
|| memcmp(name, np2->n_name, nmlen) != 0)
continue;
vput(vp);
vput(vp); /* XXX ungetnewvnode/free! */
goto loop;
}
LIST_INSERT_HEAD(nhpp, np, n_hash);
smbfs_hash_unlock(smp);
uvm_vnp_setsize(vp, np->n_size);
*vpp = vp;
return 0;
}
@ -239,14 +234,12 @@ int
smbfs_nget(struct mount *mp, struct vnode *dvp, const char *name, int nmlen,
struct smbfattr *fap, struct vnode **vpp)
{
struct smbnode *np;
struct vnode *vp;
int error;
error = smbfs_node_alloc(mp, dvp, name, nmlen, fap, &vp);
if (error)
return error;
np = VTOSMB(vp);
if (fap)
smbfs_attr_cacheenter(vp, fap);
*vpp = vp;