summaryrefslogtreecommitdiff
path: root/sys/nfs
diff options
context:
space:
mode:
authorEivind Eklund <eivind@FreeBSD.org>1999-11-27 18:14:41 +0000
committerEivind Eklund <eivind@FreeBSD.org>1999-11-27 18:14:41 +0000
commit679106b15a4d63df9fe6ab04b1cc990f0b8fe724 (patch)
treeb20f2ef73a1733ecb3b899c2cc2d90affc7790e1 /sys/nfs
parent40e7a3d7fd97d39cb8a379e5f3f537761c5edbe6 (diff)
downloadsrc-test2-679106b15a4d63df9fe6ab04b1cc990f0b8fe724.tar.gz
src-test2-679106b15a4d63df9fe6ab04b1cc990f0b8fe724.zip
Notes
Diffstat (limited to 'sys/nfs')
-rw-r--r--sys/nfs/nfs_vnops.c16
1 files changed, 9 insertions, 7 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.