From 679106b15a4d63df9fe6ab04b1cc990f0b8fe724 Mon Sep 17 00:00:00 2001 From: Eivind Eklund Date: Sat, 27 Nov 1999 18:14:41 +0000 Subject: [PATCH] Remap the error EEXISTS => 0 *before* using error to determine if we should return a vp. --- sys/nfs/nfs_vnops.c | 16 +++++++++------- sys/nfsclient/nfs_vnops.c | 16 +++++++++------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/sys/nfs/nfs_vnops.c b/sys/nfs/nfs_vnops.c index 867a6b151929..6c6ae61b9c05 100644 --- a/sys/nfs/nfs_vnops.c +++ b/sys/nfs/nfs_vnops.c @@ -1812,18 +1812,20 @@ nfs_symlink(ap) nfsm_wcc_data(dvp, wccflag); } nfsm_reqdone; - if (newvp && error) - vput(newvp); - else - *ap->a_vpp = newvp; - VTONFS(dvp)->n_flag |= NMODIFIED; - if (!wccflag) - VTONFS(dvp)->n_attrstamp = 0; /* * Kludge: Map EEXIST => 0 assuming that it is a reply to a retry. */ if (error == EEXIST) error = 0; + + if (error) { + if (newvp) + vput(newvp); + } else + *ap->a_vpp = newvp; + VTONFS(dvp)->n_flag |= NMODIFIED; + if (!wccflag) + VTONFS(dvp)->n_attrstamp = 0; /* * cnp's buffer expected to be freed if SAVESTART not set or * if an error was returned. diff --git a/sys/nfsclient/nfs_vnops.c b/sys/nfsclient/nfs_vnops.c index 867a6b151929..6c6ae61b9c05 100644 --- a/sys/nfsclient/nfs_vnops.c +++ b/sys/nfsclient/nfs_vnops.c @@ -1812,18 +1812,20 @@ nfs_symlink(ap) nfsm_wcc_data(dvp, wccflag); } nfsm_reqdone; - if (newvp && error) - vput(newvp); - else - *ap->a_vpp = newvp; - VTONFS(dvp)->n_flag |= NMODIFIED; - if (!wccflag) - VTONFS(dvp)->n_attrstamp = 0; /* * Kludge: Map EEXIST => 0 assuming that it is a reply to a retry. */ if (error == EEXIST) error = 0; + + if (error) { + if (newvp) + vput(newvp); + } else + *ap->a_vpp = newvp; + VTONFS(dvp)->n_flag |= NMODIFIED; + if (!wccflag) + VTONFS(dvp)->n_attrstamp = 0; /* * cnp's buffer expected to be freed if SAVESTART not set or * if an error was returned.