Deleted Added
full compact
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 ---