nfs_vnops.c (47028) | nfs_vnops.c (47751) |
---|---|
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_vnops.c 8.16 (Berkeley) 5/27/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_vnops.c 8.16 (Berkeley) 5/27/95 |
37 * $Id: nfs_vnops.c,v 1.128 1999/05/06 20:00:30 phk Exp $ | 37 * $Id: nfs_vnops.c,v 1.129 1999/05/11 19:54:47 phk Exp $ |
38 */ 39 40 41/* 42 * vnode op calls for Sun NFS version 2 and 3 43 */ 44 45#include "opt_inet.h" --- 997 unchanged lines hidden (view full) --- 1043 return (EFBIG); 1044 while (tsiz > 0) { 1045 nfsstats.rpccnt[NFSPROC_READ]++; 1046 len = (tsiz > nmp->nm_rsize) ? nmp->nm_rsize : tsiz; 1047 nfsm_reqhead(vp, NFSPROC_READ, NFSX_FH(v3) + NFSX_UNSIGNED * 3); 1048 nfsm_fhtom(vp, v3); 1049 nfsm_build(tl, u_int32_t *, NFSX_UNSIGNED * 3); 1050 if (v3) { | 38 */ 39 40 41/* 42 * vnode op calls for Sun NFS version 2 and 3 43 */ 44 45#include "opt_inet.h" --- 997 unchanged lines hidden (view full) --- 1043 return (EFBIG); 1044 while (tsiz > 0) { 1045 nfsstats.rpccnt[NFSPROC_READ]++; 1046 len = (tsiz > nmp->nm_rsize) ? nmp->nm_rsize : tsiz; 1047 nfsm_reqhead(vp, NFSPROC_READ, NFSX_FH(v3) + NFSX_UNSIGNED * 3); 1048 nfsm_fhtom(vp, v3); 1049 nfsm_build(tl, u_int32_t *, NFSX_UNSIGNED * 3); 1050 if (v3) { |
1051 txdr_hyper(&uiop->uio_offset, tl); | 1051 txdr_hyper(uiop->uio_offset, tl); |
1052 *(tl + 2) = txdr_unsigned(len); 1053 } else { 1054 *tl++ = txdr_unsigned(uiop->uio_offset); 1055 *tl++ = txdr_unsigned(len); 1056 *tl = 0; 1057 } 1058 nfsm_request(vp, NFSPROC_READ, uiop->uio_procp, cred); 1059 if (v3) { --- 50 unchanged lines hidden (view full) --- 1110 while (tsiz > 0) { 1111 nfsstats.rpccnt[NFSPROC_WRITE]++; 1112 len = (tsiz > nmp->nm_wsize) ? nmp->nm_wsize : tsiz; 1113 nfsm_reqhead(vp, NFSPROC_WRITE, 1114 NFSX_FH(v3) + 5 * NFSX_UNSIGNED + nfsm_rndup(len)); 1115 nfsm_fhtom(vp, v3); 1116 if (v3) { 1117 nfsm_build(tl, u_int32_t *, 5 * NFSX_UNSIGNED); | 1052 *(tl + 2) = txdr_unsigned(len); 1053 } else { 1054 *tl++ = txdr_unsigned(uiop->uio_offset); 1055 *tl++ = txdr_unsigned(len); 1056 *tl = 0; 1057 } 1058 nfsm_request(vp, NFSPROC_READ, uiop->uio_procp, cred); 1059 if (v3) { --- 50 unchanged lines hidden (view full) --- 1110 while (tsiz > 0) { 1111 nfsstats.rpccnt[NFSPROC_WRITE]++; 1112 len = (tsiz > nmp->nm_wsize) ? nmp->nm_wsize : tsiz; 1113 nfsm_reqhead(vp, NFSPROC_WRITE, 1114 NFSX_FH(v3) + 5 * NFSX_UNSIGNED + nfsm_rndup(len)); 1115 nfsm_fhtom(vp, v3); 1116 if (v3) { 1117 nfsm_build(tl, u_int32_t *, 5 * NFSX_UNSIGNED); |
1118 txdr_hyper(&uiop->uio_offset, tl); | 1118 txdr_hyper(uiop->uio_offset, tl); |
1119 tl += 2; 1120 *tl++ = txdr_unsigned(len); 1121 *tl++ = txdr_unsigned(*iomode); 1122 *tl = txdr_unsigned(len); 1123 } else { 1124 register u_int32_t x; 1125 1126 nfsm_build(tl, u_int32_t *, 4 * NFSX_UNSIGNED); --- 943 unchanged lines hidden (view full) --- 2070 nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); 2071 more_dirs = fxdr_unsigned(int, *tl); 2072 2073 /* loop thru the dir entries, doctoring them to 4bsd form */ 2074 while (more_dirs && bigenough) { 2075 if (v3) { 2076 nfsm_dissect(tl, u_int32_t *, 2077 3 * NFSX_UNSIGNED); | 1119 tl += 2; 1120 *tl++ = txdr_unsigned(len); 1121 *tl++ = txdr_unsigned(*iomode); 1122 *tl = txdr_unsigned(len); 1123 } else { 1124 register u_int32_t x; 1125 1126 nfsm_build(tl, u_int32_t *, 4 * NFSX_UNSIGNED); --- 943 unchanged lines hidden (view full) --- 2070 nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); 2071 more_dirs = fxdr_unsigned(int, *tl); 2072 2073 /* loop thru the dir entries, doctoring them to 4bsd form */ 2074 while (more_dirs && bigenough) { 2075 if (v3) { 2076 nfsm_dissect(tl, u_int32_t *, 2077 3 * NFSX_UNSIGNED); |
2078 fxdr_hyper(tl, &fileno); | 2078 fileno = fxdr_hyper(tl); |
2079 len = fxdr_unsigned(int, *(tl + 2)); 2080 } else { 2081 nfsm_dissect(tl, u_int32_t *, 2082 2 * NFSX_UNSIGNED); 2083 fileno = fxdr_unsigned(u_quad_t, *tl++); 2084 len = fxdr_unsigned(int, *tl); 2085 } 2086 if (len <= 0 || len > NFS_MAXNAMLEN) { --- 166 unchanged lines hidden (view full) --- 2253 nfsm_dissect(tl, u_int32_t *, 3 * NFSX_UNSIGNED); 2254 dnp->n_cookieverf.nfsuquad[0] = *tl++; 2255 dnp->n_cookieverf.nfsuquad[1] = *tl++; 2256 more_dirs = fxdr_unsigned(int, *tl); 2257 2258 /* loop thru the dir entries, doctoring them to 4bsd form */ 2259 while (more_dirs && bigenough) { 2260 nfsm_dissect(tl, u_int32_t *, 3 * NFSX_UNSIGNED); | 2079 len = fxdr_unsigned(int, *(tl + 2)); 2080 } else { 2081 nfsm_dissect(tl, u_int32_t *, 2082 2 * NFSX_UNSIGNED); 2083 fileno = fxdr_unsigned(u_quad_t, *tl++); 2084 len = fxdr_unsigned(int, *tl); 2085 } 2086 if (len <= 0 || len > NFS_MAXNAMLEN) { --- 166 unchanged lines hidden (view full) --- 2253 nfsm_dissect(tl, u_int32_t *, 3 * NFSX_UNSIGNED); 2254 dnp->n_cookieverf.nfsuquad[0] = *tl++; 2255 dnp->n_cookieverf.nfsuquad[1] = *tl++; 2256 more_dirs = fxdr_unsigned(int, *tl); 2257 2258 /* loop thru the dir entries, doctoring them to 4bsd form */ 2259 while (more_dirs && bigenough) { 2260 nfsm_dissect(tl, u_int32_t *, 3 * NFSX_UNSIGNED); |
2261 fxdr_hyper(tl, &fileno); | 2261 fileno = fxdr_hyper(tl); |
2262 len = fxdr_unsigned(int, *(tl + 2)); 2263 if (len <= 0 || len > NFS_MAXNAMLEN) { 2264 error = EBADRPC; 2265 m_freem(mrep); 2266 goto nfsmout; 2267 } 2268 tlen = nfsm_rndup(len); 2269 if (tlen == len) --- 305 unchanged lines hidden (view full) --- 2575 struct mbuf *mreq, *mrep, *md, *mb, *mb2; 2576 2577 if ((nmp->nm_state & NFSSTA_HASWRITEVERF) == 0) 2578 return (0); 2579 nfsstats.rpccnt[NFSPROC_COMMIT]++; 2580 nfsm_reqhead(vp, NFSPROC_COMMIT, NFSX_FH(1)); 2581 nfsm_fhtom(vp, 1); 2582 nfsm_build(tl, u_int32_t *, 3 * NFSX_UNSIGNED); | 2262 len = fxdr_unsigned(int, *(tl + 2)); 2263 if (len <= 0 || len > NFS_MAXNAMLEN) { 2264 error = EBADRPC; 2265 m_freem(mrep); 2266 goto nfsmout; 2267 } 2268 tlen = nfsm_rndup(len); 2269 if (tlen == len) --- 305 unchanged lines hidden (view full) --- 2575 struct mbuf *mreq, *mrep, *md, *mb, *mb2; 2576 2577 if ((nmp->nm_state & NFSSTA_HASWRITEVERF) == 0) 2578 return (0); 2579 nfsstats.rpccnt[NFSPROC_COMMIT]++; 2580 nfsm_reqhead(vp, NFSPROC_COMMIT, NFSX_FH(1)); 2581 nfsm_fhtom(vp, 1); 2582 nfsm_build(tl, u_int32_t *, 3 * NFSX_UNSIGNED); |
2583 txdr_hyper(&offset, tl); | 2583 txdr_hyper(offset, tl); |
2584 tl += 2; 2585 *tl = txdr_unsigned(cnt); 2586 nfsm_request(vp, NFSPROC_COMMIT, procp, cred); 2587 nfsm_wcc_data(vp, wccflag); 2588 if (!error) { 2589 nfsm_dissect(tl, u_int32_t *, NFSX_V3WRITEVERF); 2590 if (bcmp((caddr_t)nmp->nm_verf, (caddr_t)tl, 2591 NFSX_V3WRITEVERF)) { --- 746 unchanged lines hidden --- | 2584 tl += 2; 2585 *tl = txdr_unsigned(cnt); 2586 nfsm_request(vp, NFSPROC_COMMIT, procp, cred); 2587 nfsm_wcc_data(vp, wccflag); 2588 if (!error) { 2589 nfsm_dissect(tl, u_int32_t *, NFSX_V3WRITEVERF); 2590 if (bcmp((caddr_t)nmp->nm_verf, (caddr_t)tl, 2591 NFSX_V3WRITEVERF)) { --- 746 unchanged lines hidden --- |