Deleted Added
full compact
nfs_vnops.c (108648) nfs_vnops.c (109623)
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

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

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_vnops.c 8.16 (Berkeley) 5/27/95
37 */
38
39#include <sys/cdefs.h>
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

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

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_vnops.c 8.16 (Berkeley) 5/27/95
37 */
38
39#include <sys/cdefs.h>
40__FBSDID("$FreeBSD: head/sys/nfsclient/nfs_vnops.c 108648 2003-01-04 08:47:19Z phk $");
40__FBSDID("$FreeBSD: head/sys/nfsclient/nfs_vnops.c 109623 2003-01-21 08:56:16Z alfred $");
41
42/*
43 * vnode op calls for Sun NFS version 2 and 3
44 */
45
46#include "opt_inet.h"
47
48#include <sys/param.h>

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

399 auio.uio_segflg = UIO_SYSSPACE;
400 auio.uio_rw = UIO_READ;
401 auio.uio_td = ap->a_td;
402
403 if (vp->v_type == VREG)
404 error = nfs_readrpc(vp, &auio, ap->a_cred);
405 else if (vp->v_type == VDIR) {
406 char* bp;
41
42/*
43 * vnode op calls for Sun NFS version 2 and 3
44 */
45
46#include "opt_inet.h"
47
48#include <sys/param.h>

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

399 auio.uio_segflg = UIO_SYSSPACE;
400 auio.uio_rw = UIO_READ;
401 auio.uio_td = ap->a_td;
402
403 if (vp->v_type == VREG)
404 error = nfs_readrpc(vp, &auio, ap->a_cred);
405 else if (vp->v_type == VDIR) {
406 char* bp;
407 bp = malloc(NFS_DIRBLKSIZ, M_TEMP, M_WAITOK);
407 bp = malloc(NFS_DIRBLKSIZ, M_TEMP, 0);
408 aiov.iov_base = bp;
409 aiov.iov_len = auio.uio_resid = NFS_DIRBLKSIZ;
410 error = nfs_readdirrpc(vp, &auio, ap->a_cred);
411 free(bp, M_TEMP);
412 } else if (vp->v_type == VLNK)
413 error = nfs_readlinkrpc(vp, &auio, ap->a_cred);
414 else
415 error = EACCES;

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

2365
2366 cache_purge(dvp);
2367 np = VTONFS(vp);
2368#ifndef DIAGNOSTIC
2369 if (vp->v_type == VDIR)
2370 panic("nfs: sillyrename dir");
2371#endif
2372 MALLOC(sp, struct sillyrename *, sizeof (struct sillyrename),
408 aiov.iov_base = bp;
409 aiov.iov_len = auio.uio_resid = NFS_DIRBLKSIZ;
410 error = nfs_readdirrpc(vp, &auio, ap->a_cred);
411 free(bp, M_TEMP);
412 } else if (vp->v_type == VLNK)
413 error = nfs_readlinkrpc(vp, &auio, ap->a_cred);
414 else
415 error = EACCES;

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

2365
2366 cache_purge(dvp);
2367 np = VTONFS(vp);
2368#ifndef DIAGNOSTIC
2369 if (vp->v_type == VDIR)
2370 panic("nfs: sillyrename dir");
2371#endif
2372 MALLOC(sp, struct sillyrename *, sizeof (struct sillyrename),
2373 M_NFSREQ, M_WAITOK);
2373 M_NFSREQ, 0);
2374 sp->s_cred = crhold(cnp->cn_cred);
2375 sp->s_dvp = dvp;
2376 VREF(dvp);
2377
2378 /* Fudge together a funny name */
2379 pid = cnp->cn_thread->td_proc->p_pid;
2380 sp->s_namlen = sprintf(sp->s_name, ".nfsA%04x4.4", pid);
2381

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

2433 if (npp && !error) {
2434 nfsm_getfh(nfhp, fhlen, v3);
2435 if (*npp) {
2436 np = *npp;
2437 if (np->n_fhsize > NFS_SMALLFH && fhlen <= NFS_SMALLFH) {
2438 free((caddr_t)np->n_fhp, M_NFSBIGFH);
2439 np->n_fhp = &np->n_fh;
2440 } else if (np->n_fhsize <= NFS_SMALLFH && fhlen>NFS_SMALLFH)
2374 sp->s_cred = crhold(cnp->cn_cred);
2375 sp->s_dvp = dvp;
2376 VREF(dvp);
2377
2378 /* Fudge together a funny name */
2379 pid = cnp->cn_thread->td_proc->p_pid;
2380 sp->s_namlen = sprintf(sp->s_name, ".nfsA%04x4.4", pid);
2381

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

2433 if (npp && !error) {
2434 nfsm_getfh(nfhp, fhlen, v3);
2435 if (*npp) {
2436 np = *npp;
2437 if (np->n_fhsize > NFS_SMALLFH && fhlen <= NFS_SMALLFH) {
2438 free((caddr_t)np->n_fhp, M_NFSBIGFH);
2439 np->n_fhp = &np->n_fh;
2440 } else if (np->n_fhsize <= NFS_SMALLFH && fhlen>NFS_SMALLFH)
2441 np->n_fhp =(nfsfh_t *)malloc(fhlen, M_NFSBIGFH, M_WAITOK);
2441 np->n_fhp =(nfsfh_t *)malloc(fhlen, M_NFSBIGFH, 0);
2442 bcopy((caddr_t)nfhp, (caddr_t)np->n_fhp, fhlen);
2443 np->n_fhsize = fhlen;
2444 newvp = NFSTOV(np);
2445 } else if (NFS_CMPFH(dnp, nfhp, fhlen)) {
2446 VREF(dvp);
2447 newvp = dvp;
2448 } else {
2449 error = nfs_nget(dvp->v_mount, nfhp, fhlen, &np);

--- 702 unchanged lines hidden ---
2442 bcopy((caddr_t)nfhp, (caddr_t)np->n_fhp, fhlen);
2443 np->n_fhsize = fhlen;
2444 newvp = NFSTOV(np);
2445 } else if (NFS_CMPFH(dnp, nfhp, fhlen)) {
2446 VREF(dvp);
2447 newvp = dvp;
2448 } else {
2449 error = nfs_nget(dvp->v_mount, nfhp, fhlen, &np);

--- 702 unchanged lines hidden ---