nfs_vnops.c (29363) | nfs_vnops.c (29653) |
---|---|
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.59 1997/09/10 21:27:40 phk Exp $ | 37 * $Id: nfs_vnops.c,v 1.60 1997/09/14 03:00:44 peter Exp $ |
38 */ 39 40 41/* 42 * vnode op calls for Sun NFS version 2 and 3 43 */ 44 45#include <sys/param.h> --- 1251 unchanged lines hidden (view full) --- 1297 if (error) { 1298 if (newvp) 1299 vput(newvp); 1300 } else { 1301 if (cnp->cn_flags & MAKEENTRY) 1302 cache_enter(dvp, newvp, cnp); 1303 *vpp = newvp; 1304 } | 38 */ 39 40 41/* 42 * vnode op calls for Sun NFS version 2 and 3 43 */ 44 45#include <sys/param.h> --- 1251 unchanged lines hidden (view full) --- 1297 if (error) { 1298 if (newvp) 1299 vput(newvp); 1300 } else { 1301 if (cnp->cn_flags & MAKEENTRY) 1302 cache_enter(dvp, newvp, cnp); 1303 *vpp = newvp; 1304 } |
1305 FREE(cnp->cn_pnbuf, M_NAMEI); | 1305 zfree(namei_zone, cnp->cn_pnbuf); |
1306 VTONFS(dvp)->n_flag |= NMODIFIED; 1307 if (!wccflag) 1308 VTONFS(dvp)->n_attrstamp = 0; 1309 vput(dvp); 1310 return (error); 1311} 1312 1313/* --- 118 unchanged lines hidden (view full) --- 1432 vput(newvp); 1433 } else if (v3 && (fmode & O_EXCL)) 1434 error = nfs_setattrrpc(newvp, vap, cnp->cn_cred, cnp->cn_proc); 1435 if (!error) { 1436 if (cnp->cn_flags & MAKEENTRY) 1437 cache_enter(dvp, newvp, cnp); 1438 *ap->a_vpp = newvp; 1439 } | 1306 VTONFS(dvp)->n_flag |= NMODIFIED; 1307 if (!wccflag) 1308 VTONFS(dvp)->n_attrstamp = 0; 1309 vput(dvp); 1310 return (error); 1311} 1312 1313/* --- 118 unchanged lines hidden (view full) --- 1432 vput(newvp); 1433 } else if (v3 && (fmode & O_EXCL)) 1434 error = nfs_setattrrpc(newvp, vap, cnp->cn_cred, cnp->cn_proc); 1435 if (!error) { 1436 if (cnp->cn_flags & MAKEENTRY) 1437 cache_enter(dvp, newvp, cnp); 1438 *ap->a_vpp = newvp; 1439 } |
1440 FREE(cnp->cn_pnbuf, M_NAMEI); | 1440 zfree(namei_zone, cnp->cn_pnbuf); |
1441 VTONFS(dvp)->n_flag |= NMODIFIED; 1442 if (!wccflag) 1443 VTONFS(dvp)->n_attrstamp = 0; 1444 vput(dvp); 1445 return (error); 1446} 1447 1448/* --- 54 unchanged lines hidden (view full) --- 1503 * the reply to the retransmitted request will be ENOENT 1504 * since the file was in fact removed 1505 * Therefore, we cheat and return success. 1506 */ 1507 if (error == ENOENT) 1508 error = 0; 1509 } else if (!np->n_sillyrename) 1510 error = nfs_sillyrename(dvp, vp, cnp); | 1441 VTONFS(dvp)->n_flag |= NMODIFIED; 1442 if (!wccflag) 1443 VTONFS(dvp)->n_attrstamp = 0; 1444 vput(dvp); 1445 return (error); 1446} 1447 1448/* --- 54 unchanged lines hidden (view full) --- 1503 * the reply to the retransmitted request will be ENOENT 1504 * since the file was in fact removed 1505 * Therefore, we cheat and return success. 1506 */ 1507 if (error == ENOENT) 1508 error = 0; 1509 } else if (!np->n_sillyrename) 1510 error = nfs_sillyrename(dvp, vp, cnp); |
1511 FREE(cnp->cn_pnbuf, M_NAMEI); | 1511 zfree(namei_zone, cnp->cn_pnbuf); |
1512 np->n_attrstamp = 0; 1513 vput(dvp); 1514 if (vp == dvp) 1515 vrele(vp); 1516 else 1517 vput(vp); 1518 return (error); 1519} --- 218 unchanged lines hidden (view full) --- 1738 nfsm_fhtom(tdvp, v3); 1739 nfsm_strtom(cnp->cn_nameptr, cnp->cn_namelen, NFS_MAXNAMLEN); 1740 nfsm_request(vp, NFSPROC_LINK, cnp->cn_proc, cnp->cn_cred); 1741 if (v3) { 1742 nfsm_postop_attr(vp, attrflag); 1743 nfsm_wcc_data(tdvp, wccflag); 1744 } 1745 nfsm_reqdone; | 1512 np->n_attrstamp = 0; 1513 vput(dvp); 1514 if (vp == dvp) 1515 vrele(vp); 1516 else 1517 vput(vp); 1518 return (error); 1519} --- 218 unchanged lines hidden (view full) --- 1738 nfsm_fhtom(tdvp, v3); 1739 nfsm_strtom(cnp->cn_nameptr, cnp->cn_namelen, NFS_MAXNAMLEN); 1740 nfsm_request(vp, NFSPROC_LINK, cnp->cn_proc, cnp->cn_cred); 1741 if (v3) { 1742 nfsm_postop_attr(vp, attrflag); 1743 nfsm_wcc_data(tdvp, wccflag); 1744 } 1745 nfsm_reqdone; |
1746 FREE(cnp->cn_pnbuf, M_NAMEI); | 1746 zfree(namei_zone, cnp->cn_pnbuf); |
1747 VTONFS(tdvp)->n_flag |= NMODIFIED; 1748 if (!attrflag) 1749 VTONFS(vp)->n_attrstamp = 0; 1750 if (!wccflag) 1751 VTONFS(tdvp)->n_attrstamp = 0; 1752 vput(tdvp); 1753 /* 1754 * Kludge: Map EEXIST => 0 assuming that it is a reply to a retry. --- 55 unchanged lines hidden (view full) --- 1810 if (v3) { 1811 if (!error) 1812 nfsm_mtofh(dvp, newvp, v3, gotvp); 1813 nfsm_wcc_data(dvp, wccflag); 1814 } 1815 nfsm_reqdone; 1816 if (newvp) 1817 vput(newvp); | 1747 VTONFS(tdvp)->n_flag |= NMODIFIED; 1748 if (!attrflag) 1749 VTONFS(vp)->n_attrstamp = 0; 1750 if (!wccflag) 1751 VTONFS(tdvp)->n_attrstamp = 0; 1752 vput(tdvp); 1753 /* 1754 * Kludge: Map EEXIST => 0 assuming that it is a reply to a retry. --- 55 unchanged lines hidden (view full) --- 1810 if (v3) { 1811 if (!error) 1812 nfsm_mtofh(dvp, newvp, v3, gotvp); 1813 nfsm_wcc_data(dvp, wccflag); 1814 } 1815 nfsm_reqdone; 1816 if (newvp) 1817 vput(newvp); |
1818 FREE(cnp->cn_pnbuf, M_NAMEI); | 1818 zfree(namei_zone, cnp->cn_pnbuf); |
1819 VTONFS(dvp)->n_flag |= NMODIFIED; 1820 if (!wccflag) 1821 VTONFS(dvp)->n_attrstamp = 0; 1822 vput(dvp); 1823 /* 1824 * Kludge: Map EEXIST => 0 assuming that it is a reply to a retry. 1825 */ 1826 if (error == EEXIST) --- 80 unchanged lines hidden (view full) --- 1907 error = EEXIST; 1908 } 1909 } 1910 if (error) { 1911 if (newvp) 1912 vrele(newvp); 1913 } else 1914 *ap->a_vpp = newvp; | 1819 VTONFS(dvp)->n_flag |= NMODIFIED; 1820 if (!wccflag) 1821 VTONFS(dvp)->n_attrstamp = 0; 1822 vput(dvp); 1823 /* 1824 * Kludge: Map EEXIST => 0 assuming that it is a reply to a retry. 1825 */ 1826 if (error == EEXIST) --- 80 unchanged lines hidden (view full) --- 1907 error = EEXIST; 1908 } 1909 } 1910 if (error) { 1911 if (newvp) 1912 vrele(newvp); 1913 } else 1914 *ap->a_vpp = newvp; |
1915 FREE(cnp->cn_pnbuf, M_NAMEI); | 1915 zfree(namei_zone, cnp->cn_pnbuf); |
1916 vput(dvp); 1917 return (error); 1918} 1919 1920/* 1921 * nfs remove directory call 1922 */ 1923static int --- 19 unchanged lines hidden (view full) --- 1943 nfsm_reqhead(dvp, NFSPROC_RMDIR, 1944 NFSX_FH(v3) + NFSX_UNSIGNED + nfsm_rndup(cnp->cn_namelen)); 1945 nfsm_fhtom(dvp, v3); 1946 nfsm_strtom(cnp->cn_nameptr, cnp->cn_namelen, NFS_MAXNAMLEN); 1947 nfsm_request(dvp, NFSPROC_RMDIR, cnp->cn_proc, cnp->cn_cred); 1948 if (v3) 1949 nfsm_wcc_data(dvp, wccflag); 1950 nfsm_reqdone; | 1916 vput(dvp); 1917 return (error); 1918} 1919 1920/* 1921 * nfs remove directory call 1922 */ 1923static int --- 19 unchanged lines hidden (view full) --- 1943 nfsm_reqhead(dvp, NFSPROC_RMDIR, 1944 NFSX_FH(v3) + NFSX_UNSIGNED + nfsm_rndup(cnp->cn_namelen)); 1945 nfsm_fhtom(dvp, v3); 1946 nfsm_strtom(cnp->cn_nameptr, cnp->cn_namelen, NFS_MAXNAMLEN); 1947 nfsm_request(dvp, NFSPROC_RMDIR, cnp->cn_proc, cnp->cn_cred); 1948 if (v3) 1949 nfsm_wcc_data(dvp, wccflag); 1950 nfsm_reqdone; |
1951 FREE(cnp->cn_pnbuf, M_NAMEI); | 1951 zfree(namei_zone, cnp->cn_pnbuf); |
1952 VTONFS(dvp)->n_flag |= NMODIFIED; 1953 if (!wccflag) 1954 VTONFS(dvp)->n_attrstamp = 0; 1955 cache_purge(dvp); 1956 cache_purge(vp); 1957 vput(vp); 1958 vput(dvp); 1959 /* --- 1485 unchanged lines hidden --- | 1952 VTONFS(dvp)->n_flag |= NMODIFIED; 1953 if (!wccflag) 1954 VTONFS(dvp)->n_attrstamp = 0; 1955 cache_purge(dvp); 1956 cache_purge(vp); 1957 vput(vp); 1958 vput(dvp); 1959 /* --- 1485 unchanged lines hidden --- |