version 1.138.6.2, 2009/06/20 07:20:34 |
version 1.138.6.3, 2010/03/11 15:04:31 |
Line 279 nfsrv_setattr(struct nfsrv_descript *nfs |
|
Line 279 nfsrv_setattr(struct nfsrv_descript *nfs |
|
memset(&guard, 0, sizeof guard); /* XXX gcc */ |
memset(&guard, 0, sizeof guard); /* XXX gcc */ |
|
|
nfsm_srvmtofh(&nsfh); |
nfsm_srvmtofh(&nsfh); |
VATTR_NULL(&va); |
vattr_null(&va); |
if (v3) { |
if (v3) { |
nfsm_srvsattr(&va); |
nfsm_srvsattr(&va); |
nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); |
nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); |
Line 428 nfsrv_lookup(struct nfsrv_descript *nfsd |
|
Line 428 nfsrv_lookup(struct nfsrv_descript *nfsd |
|
ind.ni_cnd.cn_nameptr = ind.ni_cnd.cn_pnbuf = |
ind.ni_cnd.cn_nameptr = ind.ni_cnd.cn_pnbuf = |
nfs_pub.np_index; |
nfs_pub.np_index; |
ind.ni_startdir = nd.ni_vp; |
ind.ni_startdir = nd.ni_vp; |
VREF(ind.ni_startdir); |
vref(ind.ni_startdir); |
error = lookup(&ind); |
error = lookup_for_nfsd_index(&ind); |
if (!error) { |
if (!error) { |
/* |
/* |
* Found an index file. Get rid of |
* Found an index file. Get rid of |
Line 714 nfsrv_read(struct nfsrv_descript *nfsd, |
|
Line 714 nfsrv_read(struct nfsrv_descript *nfsd, |
|
/* map pages */ |
/* map pages */ |
for (i = 0; i < npages; i++) { |
for (i = 0; i < npages; i++) { |
pmap_kenter_pa(lva, VM_PAGE_TO_PHYS(pgpp[i]), |
pmap_kenter_pa(lva, VM_PAGE_TO_PHYS(pgpp[i]), |
VM_PROT_READ); |
VM_PROT_READ, 0); |
lva += PAGE_SIZE; |
lva += PAGE_SIZE; |
} |
} |
|
|
Line 1427 nfsrv_create(struct nfsrv_descript *nfsd |
|
Line 1427 nfsrv_create(struct nfsrv_descript *nfsd |
|
return (0); |
return (0); |
} |
} |
abort = 1; |
abort = 1; |
VATTR_NULL(&va); |
vattr_null(&va); |
if (v3) { |
if (v3) { |
va.va_mode = 0; |
va.va_mode = 0; |
nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); |
nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); |
Line 1482 nfsrv_create(struct nfsrv_descript *nfsd |
|
Line 1482 nfsrv_create(struct nfsrv_descript *nfsd |
|
if (!error) { |
if (!error) { |
if (exclusive_flag) { |
if (exclusive_flag) { |
exclusive_flag = 0; |
exclusive_flag = 0; |
VATTR_NULL(&va); |
vattr_null(&va); |
/* |
/* |
* XXX |
* XXX |
* assuming NFSX_V3CREATEVERF |
* assuming NFSX_V3CREATEVERF |
Line 1542 nfsrv_create(struct nfsrv_descript *nfsd |
|
Line 1542 nfsrv_create(struct nfsrv_descript *nfsd |
|
if (!error) { |
if (!error) { |
nqsrv_getl(vp, ND_WRITE); |
nqsrv_getl(vp, ND_WRITE); |
tempsize = va.va_size; |
tempsize = va.va_size; |
VATTR_NULL(&va); |
vattr_null(&va); |
va.va_size = tempsize; |
va.va_size = tempsize; |
error = VOP_SETATTR(vp, &va, cred); |
error = VOP_SETATTR(vp, &va, cred); |
} |
} |
Line 1653 nfsrv_mknod(struct nfsrv_descript *nfsd, |
|
Line 1653 nfsrv_mknod(struct nfsrv_descript *nfsd, |
|
error = NFSERR_BADTYPE; |
error = NFSERR_BADTYPE; |
goto abort; |
goto abort; |
} |
} |
VATTR_NULL(&va); |
vattr_null(&va); |
va.va_mode = 0; |
va.va_mode = 0; |
nfsm_srvsattr(&va); |
nfsm_srvsattr(&va); |
if (vtyp == VCHR || vtyp == VBLK) { |
if (vtyp == VCHR || vtyp == VBLK) { |
Line 1863 nfsrv_rename(struct nfsrv_descript *nfsd |
|
Line 1863 nfsrv_rename(struct nfsrv_descript *nfsd |
|
saved_uid = kauth_cred_geteuid(cred); |
saved_uid = kauth_cred_geteuid(cred); |
fromnd.ni_cnd.cn_cred = cred; |
fromnd.ni_cnd.cn_cred = cred; |
fromnd.ni_cnd.cn_nameiop = DELETE; |
fromnd.ni_cnd.cn_nameiop = DELETE; |
fromnd.ni_cnd.cn_flags = LOCKPARENT | SAVESTART; |
fromnd.ni_cnd.cn_flags = LOCKPARENT | SAVESTART | INRENAME; |
error = nfs_namei(&fromnd, &fnsfh, len, slp, nam, &md, |
error = nfs_namei(&fromnd, &fnsfh, len, slp, nam, &md, |
&dpos, &fdirp, lwp, (nfsd->nd_flag & ND_KERBAUTH), false); |
&dpos, &fdirp, lwp, (nfsd->nd_flag & ND_KERBAUTH), false); |
if (fdirp && v3) { |
if (fdirp && v3) { |
Line 1934 nfsrv_rename(struct nfsrv_descript *nfsd |
|
Line 1934 nfsrv_rename(struct nfsrv_descript *nfsd |
|
kauth_cred_seteuid(cred, saved_uid); |
kauth_cred_seteuid(cred, saved_uid); |
tond.ni_cnd.cn_cred = cred; |
tond.ni_cnd.cn_cred = cred; |
tond.ni_cnd.cn_nameiop = RENAME; |
tond.ni_cnd.cn_nameiop = RENAME; |
tond.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | NOCACHE | SAVESTART; |
tond.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | NOCACHE | |
|
SAVESTART | INRENAME; |
error = nfs_namei(&tond, &tnsfh, len2, slp, nam, &md, |
error = nfs_namei(&tond, &tnsfh, len2, slp, nam, &md, |
&dpos, &tdirp, lwp, (nfsd->nd_flag & ND_KERBAUTH), false); |
&dpos, &tdirp, lwp, (nfsd->nd_flag & ND_KERBAUTH), false); |
if (tdirp && v3) { |
if (tdirp && v3) { |
Line 2208 nfsrv_symlink(struct nfsrv_descript *nfs |
|
Line 2209 nfsrv_symlink(struct nfsrv_descript *nfs |
|
if (error) |
if (error) |
goto out; |
goto out; |
abort = 1; |
abort = 1; |
VATTR_NULL(&va); |
vattr_null(&va); |
va.va_type = VLNK; |
va.va_type = VLNK; |
if (v3) { |
if (v3) { |
va.va_mode = 0; |
va.va_mode = 0; |
Line 2346 nfsrv_mkdir(struct nfsrv_descript *nfsd, |
|
Line 2347 nfsrv_mkdir(struct nfsrv_descript *nfsd, |
|
return (0); |
return (0); |
} |
} |
abort = 1; |
abort = 1; |
VATTR_NULL(&va); |
vattr_null(&va); |
if (v3) { |
if (v3) { |
va.va_mode = 0; |
va.va_mode = 0; |
nfsm_srvsattr(&va); |
nfsm_srvsattr(&va); |