Page MenuHomeFreeBSD

D6254.id15999.diff
No OneTemporary

D6254.id15999.diff

Index: sys/fs/nfsclient/nfs_clvnops.c
===================================================================
--- sys/fs/nfsclient/nfs_clvnops.c
+++ sys/fs/nfsclient/nfs_clvnops.c
@@ -1668,7 +1668,11 @@
KASSERT(vrefcnt(vp) > 0, ("nfs_remove: bad v_usecount"));
if (vp->v_type == VDIR)
error = EPERM;
- else if (vrefcnt(vp) == 1 || (np->n_sillyrename &&
+ /*
+ * Send the remove RPC if not in-use, or in-use with >1 links, or it
+ * has a silly rename with >1 links.
+ */
+ else if (vrefcnt(vp) == 1 || ((vrefcnt(vp) > 1 || np->n_sillyrename) &&
VOP_GETATTR(vp, &vattr, cnp->cn_cred) == 0 &&
vattr.va_nlink > 1)) {
/*

File Metadata

Mime Type
text/plain
Expires
Mon, Oct 5, 8:25 AM (15 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40231857
Default Alt Text
D6254.id15999.diff (638 B)

Event Timeline