Deleted Added
full compact
nfs_nfsdserv.c (224080) nfs_nfsdserv.c (224081)
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

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

27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * SUCH DAMAGE.
31 *
32 */
33
34#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

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

27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * SUCH DAMAGE.
31 *
32 */
33
34#include <sys/cdefs.h>
35__FBSDID("$FreeBSD: head/sys/fs/nfsserver/nfs_nfsdserv.c 224080 2011-07-16 08:05:26Z zack $");
35__FBSDID("$FreeBSD: head/sys/fs/nfsserver/nfs_nfsdserv.c 224081 2011-07-16 08:05:31Z zack $");
36
37/*
38 * nfs version 2, 3 and 4 server calls to vnode ops
39 * - these routines generally have 3 phases
40 * 1 - break down and validate rpc request in mbuf list
41 * 2 - do the vnode ops for the request, usually by calling a nfsvno_XXX()
42 * function in nfsd_port.c
43 * 3 - build the rpc reply in an mbuf list

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

233 VREF(tvp);
234 at_root = 1;
235 } else
236 at_root = 0;
237 vfs_ref(mp);
238 VOP_UNLOCK(vp, 0);
239 if (at_root != 0) {
240 if ((nd->nd_repstat =
36
37/*
38 * nfs version 2, 3 and 4 server calls to vnode ops
39 * - these routines generally have 3 phases
40 * 1 - break down and validate rpc request in mbuf list
41 * 2 - do the vnode ops for the request, usually by calling a nfsvno_XXX()
42 * function in nfsd_port.c
43 * 3 - build the rpc reply in an mbuf list

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

233 VREF(tvp);
234 at_root = 1;
235 } else
236 at_root = 0;
237 vfs_ref(mp);
238 VOP_UNLOCK(vp, 0);
239 if (at_root != 0) {
240 if ((nd->nd_repstat =
241 vn_lock(tvp, LK_SHARED)) == 0) {
241 NFSVOPLOCK(tvp, LK_SHARED)) == 0) {
242 nd->nd_repstat = VOP_GETATTR(
243 tvp, &va, nd->nd_cred);
244 vput(tvp);
245 } else
246 vrele(tvp);
247 if (nd->nd_repstat == 0)
248 mounted_on_fileno = (uint64_t)
249 va.va_fileid;

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

2698#ifdef NFS4_ACL_EXTATTR_NAME
2699 acl_free(aclp);
2700#endif
2701 FREE((caddr_t)stp, M_NFSDSTATE);
2702 return (0);
2703 };
2704 stp->ls_flags |= NFSLCK_RECLAIM;
2705 vp = dp;
242 nd->nd_repstat = VOP_GETATTR(
243 tvp, &va, nd->nd_cred);
244 vput(tvp);
245 } else
246 vrele(tvp);
247 if (nd->nd_repstat == 0)
248 mounted_on_fileno = (uint64_t)
249 va.va_fileid;

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

2698#ifdef NFS4_ACL_EXTATTR_NAME
2699 acl_free(aclp);
2700#endif
2701 FREE((caddr_t)stp, M_NFSDSTATE);
2702 return (0);
2703 };
2704 stp->ls_flags |= NFSLCK_RECLAIM;
2705 vp = dp;
2706 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
2706 NFSVOPLOCK(vp, LK_EXCLUSIVE | LK_RETRY);
2707 if ((vp->v_iflag & VI_DOOMED) == 0)
2708 nd->nd_repstat = nfsrv_opencheck(clientid, &stateid,
2709 stp, vp, nd, p, nd->nd_repstat);
2710 else
2711 nd->nd_repstat = NFSERR_PERM;
2712 } else {
2713 nd->nd_repstat = NFSERR_BADXDR;
2714 vrele(dp);

--- 753 unchanged lines hidden ---
2707 if ((vp->v_iflag & VI_DOOMED) == 0)
2708 nd->nd_repstat = nfsrv_opencheck(clientid, &stateid,
2709 stp, vp, nd, p, nd->nd_repstat);
2710 else
2711 nd->nd_repstat = NFSERR_PERM;
2712 } else {
2713 nd->nd_repstat = NFSERR_BADXDR;
2714 vrele(dp);

--- 753 unchanged lines hidden ---