SCCS-vsn: sys/nfs/nfs_bio.c 7.4
SCCS-vsn: sys/nfs/nfs_vnops.c 7.13
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * @(#)nfs_bio.c 7.3 (Berkeley) %G%
+ * @(#)nfs_bio.c 7.4 (Berkeley) %G%
struct buf *bp;
struct vattr vattr;
daddr_t lbn, bn, rablock;
struct buf *bp;
struct vattr vattr;
daddr_t lbn, bn, rablock;
- int error = 0;
- int diff;
if (!(ioflag & IO_NODELOCKED))
nfs_lock(vp);
if (!(ioflag & IO_NODELOCKED))
nfs_lock(vp);
return (error);
}
uio->uio_offset = *offp;
return (error);
}
uio->uio_offset = *offp;
- count = uio->uio_resid;
if (uio->uio_rw != UIO_READ)
panic("nfs_read mode");
if (vp->v_type != VREG)
if (uio->uio_rw != UIO_READ)
panic("nfs_read mode");
if (vp->v_type != VREG)
struct buf *bp;
struct nfsnode *np = VTONFS(vp);
daddr_t lbn, bn;
struct buf *bp;
struct nfsnode *np = VTONFS(vp);
daddr_t lbn, bn;
- int i, n, on;
- int flags, count, size;
- int error = 0;
- int cnt;
- u_long osize;
+ int i, n, on, cnt, count, error = 0;
if ((ioflag & IO_NODELOCKED) == 0)
nfs_lock(vp);
if ((ioflag & IO_NODELOCKED) == 0)
nfs_lock(vp);
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * @(#)nfs_vnops.c 7.12 (Berkeley) %G%
+ * @(#)nfs_vnops.c 7.13 (Berkeley) %G%
struct vnode *vp;
struct ucred *cred;
{
struct vnode *vp;
struct ucred *cred;
{
+ caddr_t bpos, dpos;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb;
nfsm_reqhead(nfs_procids[NFSPROC_NULL], cred, 0);
nfsm_request(vp);
nfsm_reqhead(nfs_procids[NFSPROC_NULL], cred, 0);
nfsm_request(vp);
* nfs open vnode op
* Just check to see if the type is ok
*/
* nfs open vnode op
* Just check to see if the type is ok
*/
nfs_open(vp, mode, cred)
struct vnode *vp;
int mode;
nfs_open(vp, mode, cred)
struct vnode *vp;
int mode;
* nfs close vnode op
* For reg files, invalidate any buffer cache entries.
*/
* nfs close vnode op
* For reg files, invalidate any buffer cache entries.
*/
nfs_close(vp, fflags, cred)
register struct vnode *vp;
int fflags;
struct ucred *cred;
{
nfs_close(vp, fflags, cred)
register struct vnode *vp;
int fflags;
struct ucred *cred;
{
- struct nfsnode *np = VTONFS(vp);
- dev_t dev;
+ register struct nfsnode *np = VTONFS(vp);
int error = 0;
if (vp->v_type == VREG && ((np->n_flag & NMODIFIED) ||
int error = 0;
if (vp->v_type == VREG && ((np->n_flag & NMODIFIED) ||
* nfs getattr call from vfs.
*/
nfs_getattr(vp, vap, cred)
* nfs getattr call from vfs.
*/
nfs_getattr(vp, vap, cred)
- struct vnode *vp;
- register struct vattr *vap;
+ register struct vnode *vp;
+ struct vattr *vap;
+ register caddr_t cp;
+ register long t1;
+ caddr_t bpos, dpos;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
/* First look in the cache.. */
if (nfs_getattrcache(vp, vap) == 0)
/* First look in the cache.. */
if (nfs_getattrcache(vp, vap) == 0)
* nfs setattr call.
*/
nfs_setattr(vp, vap, cred)
* nfs setattr call.
*/
nfs_setattr(vp, vap, cred)
+ register struct vnode *vp;
register struct vattr *vap;
struct ucred *cred;
{
register struct nfsv2_sattr *sp;
register struct vattr *vap;
struct ucred *cred;
{
register struct nfsv2_sattr *sp;
+ register caddr_t cp;
+ register long t1;
+ caddr_t bpos, dpos;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
struct nfsnode *np;
nfsstats.rpccnt[NFSPROC_SETATTR]++;
struct nfsnode *np;
nfsstats.rpccnt[NFSPROC_SETATTR]++;
register struct nameidata *ndp;
{
register struct vnode *vdp;
register struct nameidata *ndp;
{
register struct vnode *vdp;
+ register u_long *p;
+ register caddr_t cp;
+ register long t1, t2;
+ caddr_t bpos, dpos, cp2;
+ u_long xid;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
struct vnode *newvp;
long len;
nfsv2fh_t *fhp;
struct nfsnode *np;
struct vnode *newvp;
long len;
nfsv2fh_t *fhp;
struct nfsnode *np;
- int lockparent, wantparent, flag;
- dev_t rdev;
+ int lockparent, wantparent, flag, error = 0;
ndp->ni_dvp = vp;
ndp->ni_vp = NULL;
ndp->ni_dvp = vp;
ndp->ni_vp = NULL;
* nfs readlink call
*/
nfs_readlink(vp, uiop, cred)
* nfs readlink call
*/
nfs_readlink(vp, uiop, cred)
+ register struct vnode *vp;
struct uio *uiop;
struct ucred *cred;
{
struct uio *uiop;
struct ucred *cred;
{
+ register u_long *p;
+ register caddr_t cp;
+ register long t1;
+ caddr_t bpos, dpos, cp2;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
long len;
nfsstats.rpccnt[NFSPROC_READLINK]++;
long len;
nfsstats.rpccnt[NFSPROC_READLINK]++;
* nfs read call
*/
nfs_readrpc(vp, uiop, offp, cred)
* nfs read call
*/
nfs_readrpc(vp, uiop, offp, cred)
+ register struct vnode *vp;
struct uio *uiop;
off_t *offp;
struct ucred *cred;
{
struct uio *uiop;
off_t *offp;
struct ucred *cred;
{
+ register u_long *p;
+ register caddr_t cp;
+ register long t1;
+ caddr_t bpos, dpos, cp2;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
struct nfsmount *nmp;
long len, retlen, tsiz;
struct nfsmount *nmp;
long len, retlen, tsiz;
* nfs write call
*/
nfs_writerpc(vp, uiop, offp, cred)
* nfs write call
*/
nfs_writerpc(vp, uiop, offp, cred)
+ register struct vnode *vp;
struct uio *uiop;
off_t *offp;
struct ucred *cred;
{
struct uio *uiop;
off_t *offp;
struct ucred *cred;
{
+ register u_long *p;
+ register caddr_t cp;
+ register long t1;
+ caddr_t bpos, dpos;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
struct nfsmount *nmp;
long len, tsiz;
struct nfsmount *nmp;
long len, tsiz;
register struct vattr *vap;
{
register struct nfsv2_sattr *sp;
register struct vattr *vap;
{
register struct nfsv2_sattr *sp;
+ register u_long *p;
+ register caddr_t cp;
+ register long t1, t2;
+ caddr_t bpos, dpos, cp2;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
nfsstats.rpccnt[NFSPROC_CREATE]++;
nfsm_reqhead(nfs_procids[NFSPROC_CREATE], ndp->ni_cred,
nfsstats.rpccnt[NFSPROC_CREATE]++;
nfsm_reqhead(nfs_procids[NFSPROC_CREATE], ndp->ni_cred,
{
register struct vnode *vp = ndp->ni_vp;
register struct nfsnode *np = VTONFS(ndp->ni_vp);
{
register struct vnode *vp = ndp->ni_vp;
register struct nfsnode *np = VTONFS(ndp->ni_vp);
+ register u_long *p;
+ register caddr_t cp;
+ register long t1, t2;
+ caddr_t bpos, dpos;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
if (vp->v_type == VREG) {
if (np->n_flag & (NMODIFIED|NBUFFERED)) {
if (vp->v_type == VREG) {
if (np->n_flag & (NMODIFIED|NBUFFERED)) {
nfs_removeit(ndp)
register struct nameidata *ndp;
{
nfs_removeit(ndp)
register struct nameidata *ndp;
{
+ register u_long *p;
+ register caddr_t cp;
+ register long t1, t2;
+ caddr_t bpos, dpos;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
nfsstats.rpccnt[NFSPROC_REMOVE]++;
nfsm_reqhead(nfs_procids[NFSPROC_REMOVE], ndp->ni_cred,
nfsstats.rpccnt[NFSPROC_REMOVE]++;
nfsm_reqhead(nfs_procids[NFSPROC_REMOVE], ndp->ni_cred,
nfs_rename(sndp, tndp)
register struct nameidata *sndp, *tndp;
{
nfs_rename(sndp, tndp)
register struct nameidata *sndp, *tndp;
{
+ register u_long *p;
+ register caddr_t cp;
+ register long t1, t2;
+ caddr_t bpos, dpos;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
nfsstats.rpccnt[NFSPROC_RENAME]++;
nfsm_reqhead(nfs_procids[NFSPROC_RENAME], tndp->ni_cred,
nfsstats.rpccnt[NFSPROC_RENAME]++;
nfsm_reqhead(nfs_procids[NFSPROC_RENAME], tndp->ni_cred,
nfs_renameit(sndp, tndp)
register struct nameidata *sndp, *tndp;
{
nfs_renameit(sndp, tndp)
register struct nameidata *sndp, *tndp;
{
+ register u_long *p;
+ register caddr_t cp;
+ register long t1, t2;
+ caddr_t bpos, dpos;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
nfsstats.rpccnt[NFSPROC_RENAME]++;
nfsm_reqhead(nfs_procids[NFSPROC_RENAME], tndp->ni_cred,
nfsstats.rpccnt[NFSPROC_RENAME]++;
nfsm_reqhead(nfs_procids[NFSPROC_RENAME], tndp->ni_cred,
* nfs hard link create call
*/
nfs_link(vp, ndp)
* nfs hard link create call
*/
nfs_link(vp, ndp)
+ register struct vnode *vp;
register struct nameidata *ndp;
{
register struct nameidata *ndp;
{
+ register u_long *p;
+ register caddr_t cp;
+ register long t1, t2;
+ caddr_t bpos, dpos;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
if (ndp->ni_dvp != vp)
nfs_lock(vp);
if (ndp->ni_dvp != vp)
nfs_lock(vp);
char *nm; /* is this the path ?? */
{
register struct nfsv2_sattr *sp;
char *nm; /* is this the path ?? */
{
register struct nfsv2_sattr *sp;
+ register u_long *p;
+ register caddr_t cp;
+ register long t1, t2;
+ caddr_t bpos, dpos;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
nfsstats.rpccnt[NFSPROC_SYMLINK]++;
nfsm_reqhead(nfs_procids[NFSPROC_SYMLINK], ndp->ni_cred,
nfsstats.rpccnt[NFSPROC_SYMLINK]++;
nfsm_reqhead(nfs_procids[NFSPROC_SYMLINK], ndp->ni_cred,
* nfs make dir call
*/
nfs_mkdir(ndp, vap)
* nfs make dir call
*/
nfs_mkdir(ndp, vap)
+ register struct nameidata *ndp;
struct vattr *vap;
{
register struct nfsv2_sattr *sp;
struct vattr *vap;
{
register struct nfsv2_sattr *sp;
+ register u_long *p;
+ register caddr_t cp;
+ register long t1, t2;
+ caddr_t bpos, dpos, cp2;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
nfsstats.rpccnt[NFSPROC_MKDIR]++;
nfsm_reqhead(nfs_procids[NFSPROC_MKDIR], ndp->ni_cred,
nfsstats.rpccnt[NFSPROC_MKDIR]++;
nfsm_reqhead(nfs_procids[NFSPROC_MKDIR], ndp->ni_cred,
nfs_rmdir(ndp)
register struct nameidata *ndp;
{
nfs_rmdir(ndp)
register struct nameidata *ndp;
{
+ register u_long *p;
+ register caddr_t cp;
+ register long t1, t2;
+ caddr_t bpos, dpos;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
if (ndp->ni_dvp == ndp->ni_vp) {
vrele(ndp->ni_dvp);
if (ndp->ni_dvp == ndp->ni_vp) {
vrele(ndp->ni_dvp);
* Ultrix implementation of NFS.
*/
nfs_readdir(vp, uiop, offp, cred)
* Ultrix implementation of NFS.
*/
nfs_readdir(vp, uiop, offp, cred)
+ register struct vnode *vp;
struct uio *uiop;
off_t *offp;
struct ucred *cred;
{
register long len;
register struct direct *dp;
struct uio *uiop;
off_t *offp;
struct ucred *cred;
{
register long len;
register struct direct *dp;
+ register u_long *p;
+ register caddr_t cp;
+ register long t1;
+ caddr_t bpos, dpos, cp2;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
struct mbuf *md2;
caddr_t dpos2;
int siz;
struct mbuf *md2;
caddr_t dpos2;
int siz;
md2 = md;
/* loop thru the dir entries, doctoring them to 4bsd form */
md2 = md;
/* loop thru the dir entries, doctoring them to 4bsd form */
+ savoff = off = 0;
+ savdp = dp = NULL;
while (more_dirs && siz < uiop->uio_resid) {
savoff = off; /* Hold onto offset and dp */
savdp = dp;
while (more_dirs && siz < uiop->uio_resid) {
savoff = off; /* Hold onto offset and dp */
savdp = dp;
struct mount *mp;
register struct statfs *sbp;
{
struct mount *mp;
register struct statfs *sbp;
{
+ register struct vnode *vp;
register struct nfsv2_statfs *sfp;
register struct nfsv2_statfs *sfp;
+ register caddr_t cp;
+ register long t1;
+ caddr_t bpos, dpos, cp2;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
struct nfsmount *nmp;
struct ucred *cred;
struct nfsnode *np;
struct nfsmount *nmp;
struct ucred *cred;
struct nfsnode *np;
nmp = vfs_to_nfs(mp);
if (error = nfs_nget(mp, &nmp->nm_fh, &np))
nmp = vfs_to_nfs(mp);
if (error = nfs_nget(mp, &nmp->nm_fh, &np))
-#define HEXTOASC(x) "0123456789abcdef"[x]
+static char hextoasc[] = "0123456789abcdef";
/*
* Silly rename. To make the NFS filesystem that is stateless look a little
/*
* Silly rename. To make the NFS filesystem that is stateless look a little
* nfs_rename() completes, but...
*/
nfs_sillyrename(ndp, flag)
* nfs_rename() completes, but...
*/
nfs_sillyrename(ndp, flag)
+ register struct nameidata *ndp;
int flag;
{
register struct nfsnode *np;
int flag;
{
register struct nfsnode *np;
pid = u.u_procp->p_pid;
bcopy(".nfsAxxxx4.4", tndp->ni_dent.d_name, 13);
tndp->ni_dent.d_namlen = 12;
pid = u.u_procp->p_pid;
bcopy(".nfsAxxxx4.4", tndp->ni_dent.d_name, 13);
tndp->ni_dent.d_namlen = 12;
- tndp->ni_dent.d_name[8] = HEXTOASC(pid & 0xf);
- tndp->ni_dent.d_name[7] = HEXTOASC((pid >> 4) & 0xf);
- tndp->ni_dent.d_name[6] = HEXTOASC((pid >> 8) & 0xf);
- tndp->ni_dent.d_name[5] = HEXTOASC((pid >> 12) & 0xf);
+ tndp->ni_dent.d_name[8] = hextoasc[pid & 0xf];
+ tndp->ni_dent.d_name[7] = hextoasc[(pid >> 4) & 0xf];
+ tndp->ni_dent.d_name[6] = hextoasc[(pid >> 8) & 0xf];
+ tndp->ni_dent.d_name[5] = hextoasc[(pid >> 12) & 0xf];
/* Try lookitups until we get one that isn't there */
while (nfs_lookitup(ndp->ni_dvp, tndp, (nfsv2fh_t *)0) == 0) {
/* Try lookitups until we get one that isn't there */
while (nfs_lookitup(ndp->ni_dvp, tndp, (nfsv2fh_t *)0) == 0) {
register struct nameidata *ndp;
nfsv2fh_t *fhp;
{
register struct nameidata *ndp;
nfsv2fh_t *fhp;
{
+ register u_long *p;
+ register caddr_t cp;
+ register long t1, t2;
+ caddr_t bpos, dpos, cp2;
+ u_long xid;
+ int error = 0;
+ struct mbuf *mreq, *mrep, *md, *mb, *mb2;
long len;
nfsstats.rpccnt[NFSPROC_LOOKUP]++;
long len;
nfsstats.rpccnt[NFSPROC_LOOKUP]++;
* Walk through the buffer pool and push any dirty pages
* associated with the vnode.
*/
* Walk through the buffer pool and push any dirty pages
* associated with the vnode.
*/
nfs_fsync(vp, fflags, cred)
register struct vnode *vp;
int fflags;
nfs_fsync(vp, fflags, cred)
register struct vnode *vp;
int fflags;