Deleted Added
full compact
nfs_srvsubs.c (44101) nfs_srvsubs.c (47028)
1/*
2 * Copyright (c) 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Rick Macklem at The University of Guelph.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 20 unchanged lines hidden (view full) ---

29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * @(#)nfs_subs.c 8.8 (Berkeley) 5/22/95
1/*
2 * Copyright (c) 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Rick Macklem at The University of Guelph.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 20 unchanged lines hidden (view full) ---

29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * @(#)nfs_subs.c 8.8 (Berkeley) 5/22/95
37 * $Id: nfs_subs.c,v 1.72 1999/01/27 22:42:27 dillon Exp $
37 * $Id: nfs_subs.c,v 1.73 1999/02/17 13:59:29 bde Exp $
38 */
39
40/*
41 * These functions support the macros and help fiddle mbuf chains for
42 * the nfs op functions. They do things like create the rpc header and
43 * copy data between mbuf chains and uio lists.
44 */
45#include <sys/param.h>

--- 1209 unchanged lines hidden (view full) ---

1255 md = *mdp;
1256 t1 = (mtod(md, caddr_t) + md->m_len) - *dposp;
1257 if ((error = nfsm_disct(mdp, dposp, NFSX_FATTR(v3), t1, &cp2)) != 0)
1258 return (error);
1259 fp = (struct nfs_fattr *)cp2;
1260 if (v3) {
1261 vtyp = nfsv3tov_type(fp->fa_type);
1262 vmode = fxdr_unsigned(u_short, fp->fa_mode);
38 */
39
40/*
41 * These functions support the macros and help fiddle mbuf chains for
42 * the nfs op functions. They do things like create the rpc header and
43 * copy data between mbuf chains and uio lists.
44 */
45#include <sys/param.h>

--- 1209 unchanged lines hidden (view full) ---

1255 md = *mdp;
1256 t1 = (mtod(md, caddr_t) + md->m_len) - *dposp;
1257 if ((error = nfsm_disct(mdp, dposp, NFSX_FATTR(v3), t1, &cp2)) != 0)
1258 return (error);
1259 fp = (struct nfs_fattr *)cp2;
1260 if (v3) {
1261 vtyp = nfsv3tov_type(fp->fa_type);
1262 vmode = fxdr_unsigned(u_short, fp->fa_mode);
1263 rdev = makedev(fxdr_unsigned(int, fp->fa3_rdev.specdata1),
1263 rdev = umakedev(fxdr_unsigned(int, fp->fa3_rdev.specdata1),
1264 fxdr_unsigned(int, fp->fa3_rdev.specdata2));
1265 fxdr_nfsv3time(&fp->fa3_mtime, &mtime);
1266 } else {
1267 vtyp = nfsv2tov_type(fp->fa_type);
1268 vmode = fxdr_unsigned(u_short, fp->fa_mode);
1269 /*
1270 * XXX
1271 *

--- 35 unchanged lines hidden (view full) ---

1307 np = VTONFS(vp);
1308 if (vp->v_type != vtyp) {
1309 vp->v_type = vtyp;
1310 if (vp->v_type == VFIFO) {
1311 vp->v_op = fifo_nfsv2nodeop_p;
1312 }
1313 if (vp->v_type == VCHR || vp->v_type == VBLK) {
1314 vp->v_op = spec_nfsv2nodeop_p;
1264 fxdr_unsigned(int, fp->fa3_rdev.specdata2));
1265 fxdr_nfsv3time(&fp->fa3_mtime, &mtime);
1266 } else {
1267 vtyp = nfsv2tov_type(fp->fa_type);
1268 vmode = fxdr_unsigned(u_short, fp->fa_mode);
1269 /*
1270 * XXX
1271 *

--- 35 unchanged lines hidden (view full) ---

1307 np = VTONFS(vp);
1308 if (vp->v_type != vtyp) {
1309 vp->v_type = vtyp;
1310 if (vp->v_type == VFIFO) {
1311 vp->v_op = fifo_nfsv2nodeop_p;
1312 }
1313 if (vp->v_type == VCHR || vp->v_type == VBLK) {
1314 vp->v_op = spec_nfsv2nodeop_p;
1315 nvp = checkalias(vp, (dev_t)rdev, vp->v_mount);
1315 nvp = checkalias(vp, rdev, vp->v_mount);
1316 if (nvp) {
1317 /*
1318 * Discard unneeded vnode, but save its nfsnode.
1319 * Since the nfsnode does not have a lock, its
1320 * vnode lock has to be carried over.
1321 */
1322 nvp->v_vnlock = vp->v_vnlock;
1323 vp->v_vnlock = NULL;

--- 9 unchanged lines hidden (view full) ---

1333 *vpp = vp = nvp;
1334 }
1335 }
1336 np->n_mtime = mtime.tv_sec;
1337 }
1338 vap = &np->n_vattr;
1339 vap->va_type = vtyp;
1340 vap->va_mode = (vmode & 07777);
1316 if (nvp) {
1317 /*
1318 * Discard unneeded vnode, but save its nfsnode.
1319 * Since the nfsnode does not have a lock, its
1320 * vnode lock has to be carried over.
1321 */
1322 nvp->v_vnlock = vp->v_vnlock;
1323 vp->v_vnlock = NULL;

--- 9 unchanged lines hidden (view full) ---

1333 *vpp = vp = nvp;
1334 }
1335 }
1336 np->n_mtime = mtime.tv_sec;
1337 }
1338 vap = &np->n_vattr;
1339 vap->va_type = vtyp;
1340 vap->va_mode = (vmode & 07777);
1341 vap->va_rdev = (dev_t)rdev;
1341 vap->va_rdev = rdev;
1342 vap->va_mtime = mtime;
1343 vap->va_fsid = vp->v_mount->mnt_stat.f_fsid.val[0];
1344 if (v3) {
1345 vap->va_nlink = fxdr_unsigned(u_short, fp->fa_nlink);
1346 vap->va_uid = fxdr_unsigned(uid_t, fp->fa_uid);
1347 vap->va_gid = fxdr_unsigned(gid_t, fp->fa_gid);
1348 fxdr_hyper(&fp->fa3_size, &vap->va_size);
1349 vap->va_blocksize = NFS_FABLKSIZE;

--- 507 unchanged lines hidden (view full) ---

1857 fp->fa_nlink = txdr_unsigned(vap->va_nlink);
1858 fp->fa_uid = txdr_unsigned(vap->va_uid);
1859 fp->fa_gid = txdr_unsigned(vap->va_gid);
1860 if (nfsd->nd_flag & ND_NFSV3) {
1861 fp->fa_type = vtonfsv3_type(vap->va_type);
1862 fp->fa_mode = vtonfsv3_mode(vap->va_mode);
1863 txdr_hyper(&vap->va_size, &fp->fa3_size);
1864 txdr_hyper(&vap->va_bytes, &fp->fa3_used);
1342 vap->va_mtime = mtime;
1343 vap->va_fsid = vp->v_mount->mnt_stat.f_fsid.val[0];
1344 if (v3) {
1345 vap->va_nlink = fxdr_unsigned(u_short, fp->fa_nlink);
1346 vap->va_uid = fxdr_unsigned(uid_t, fp->fa_uid);
1347 vap->va_gid = fxdr_unsigned(gid_t, fp->fa_gid);
1348 fxdr_hyper(&fp->fa3_size, &vap->va_size);
1349 vap->va_blocksize = NFS_FABLKSIZE;

--- 507 unchanged lines hidden (view full) ---

1857 fp->fa_nlink = txdr_unsigned(vap->va_nlink);
1858 fp->fa_uid = txdr_unsigned(vap->va_uid);
1859 fp->fa_gid = txdr_unsigned(vap->va_gid);
1860 if (nfsd->nd_flag & ND_NFSV3) {
1861 fp->fa_type = vtonfsv3_type(vap->va_type);
1862 fp->fa_mode = vtonfsv3_mode(vap->va_mode);
1863 txdr_hyper(&vap->va_size, &fp->fa3_size);
1864 txdr_hyper(&vap->va_bytes, &fp->fa3_used);
1865 fp->fa3_rdev.specdata1 = txdr_unsigned(major(vap->va_rdev));
1866 fp->fa3_rdev.specdata2 = txdr_unsigned(minor(vap->va_rdev));
1865 fp->fa3_rdev.specdata1 = txdr_unsigned(umajor(vap->va_rdev));
1866 fp->fa3_rdev.specdata2 = txdr_unsigned(uminor(vap->va_rdev));
1867 fp->fa3_fsid.nfsuquad[0] = 0;
1868 fp->fa3_fsid.nfsuquad[1] = txdr_unsigned(vap->va_fsid);
1869 fp->fa3_fileid.nfsuquad[0] = 0;
1870 fp->fa3_fileid.nfsuquad[1] = txdr_unsigned(vap->va_fileid);
1871 txdr_nfsv3time(&vap->va_atime, &fp->fa3_atime);
1872 txdr_nfsv3time(&vap->va_mtime, &fp->fa3_mtime);
1873 txdr_nfsv3time(&vap->va_ctime, &fp->fa3_ctime);
1874 } else {

--- 353 unchanged lines hidden ---
1867 fp->fa3_fsid.nfsuquad[0] = 0;
1868 fp->fa3_fsid.nfsuquad[1] = txdr_unsigned(vap->va_fsid);
1869 fp->fa3_fileid.nfsuquad[0] = 0;
1870 fp->fa3_fileid.nfsuquad[1] = txdr_unsigned(vap->va_fileid);
1871 txdr_nfsv3time(&vap->va_atime, &fp->fa3_atime);
1872 txdr_nfsv3time(&vap->va_mtime, &fp->fa3_mtime);
1873 txdr_nfsv3time(&vap->va_ctime, &fp->fa3_ctime);
1874 } else {

--- 353 unchanged lines hidden ---