git: 85dac03e30e6 - main - vfs: stop using NDFREE

From: Mateusz Guzik <mjg_at_FreeBSD.org>
Date: Mon, 19 Dec 2022 08:14:37 UTC
The branch main has been updated by mjg:

URL: https://cgit.FreeBSD.org/src/commit/?id=85dac03e30e6aebdf0808cd750cc5ab96efcb67c

commit 85dac03e30e6aebdf0808cd750cc5ab96efcb67c
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2022-11-17 16:58:28 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2022-12-19 08:07:23 +0000

    vfs: stop using NDFREE
    
    It provides nothing but a branchfest and next to no consumers want it
    anyway.
    
    Tested by:      pho
---
 sys/kern/vfs_acl.c              | 11 +++++++----
 sys/kern/vfs_cache.c            |  4 +++-
 sys/kern/vfs_extattr.c          |  8 +++++---
 sys/kern/vfs_subr.c             |  3 ++-
 sys/security/mac/mac_syscalls.c |  7 ++++---
 5 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/sys/kern/vfs_acl.c b/sys/kern/vfs_acl.c
index dffce9d29291..e5470bd11438 100644
--- a/sys/kern/vfs_acl.c
+++ b/sys/kern/vfs_acl.c
@@ -380,7 +380,8 @@ kern___acl_get_path(struct thread *td, const char *path, acl_type_t type,
 	error = namei(&nd);
 	if (error == 0) {
 		error = vacl_get_acl(td, nd.ni_vp, type, aclp);
-		NDFREE(&nd, 0);
+		vrele(nd.ni_vp);
+		NDFREE_PNBUF(&nd);
 	}
 	return (error);
 }
@@ -418,7 +419,8 @@ kern___acl_set_path(struct thread *td, const char *path,
 	error = namei(&nd);
 	if (error == 0) {
 		error = vacl_set_acl(td, nd.ni_vp, type, aclp);
-		NDFREE(&nd, 0);
+		vrele(nd.ni_vp);
+		NDFREE_PNBUF(&nd);
 	}
 	return (error);
 }
@@ -494,7 +496,8 @@ kern___acl_delete_path(struct thread *td, const char *path,
 	error = namei(&nd);
 	if (error == 0) {
 		error = vacl_delete(td, nd.ni_vp, type);
-		NDFREE(&nd, 0);
+		vrele(nd.ni_vp);
+		NDFREE_PNBUF(&nd);
 	}
 	return (error);
 }
@@ -551,7 +554,7 @@ kern___acl_aclcheck_path(struct thread *td, const char *path, acl_type_t type,
 	error = namei(&nd);
 	if (error == 0) {
 		error = vacl_aclcheck(td, nd.ni_vp, type, aclp);
-		NDFREE(&nd, 0);
+		NDFREE_PNBUF(&nd);
 	}
 	return (error);
 }
diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c
index e58d3f338085..08d7ab2895cd 100644
--- a/sys/kern/vfs_cache.c
+++ b/sys/kern/vfs_cache.c
@@ -3153,7 +3153,9 @@ kern___realpathat(struct thread *td, int fd, const char *path, char *buf,
 		error = copyout(retbuf, buf, size);
 		free(freebuf, M_TEMP);
 	}
-	NDFREE(&nd, 0);
+	vrele(nd.ni_vp);
+	vrele(nd.ni_dvp);
+	NDFREE_PNBUF(&nd);
 	return (error);
 }
 
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c
index d389b33d0634..d190ec60205a 100644
--- a/sys/kern/vfs_extattr.c
+++ b/sys/kern/vfs_extattr.c
@@ -108,7 +108,7 @@ sys_extattrctl(struct thread *td, struct extattrctl_args *uap)
 		if (error)
 			return (error);
 		filename_vp = nd.ni_vp;
-		NDFREE(&nd, NDF_NO_VP_RELE);
+		NDFREE_PNBUF(&nd);
 	}
 
 	/* uap->path is always defined. */
@@ -120,13 +120,15 @@ sys_extattrctl(struct thread *td, struct extattrctl_args *uap)
 	mp = nd.ni_vp->v_mount;
 	error = vfs_busy(mp, 0);
 	if (error) {
-		NDFREE(&nd, 0);
+		vput(nd.ni_vp);
+		NDFREE_PNBUF(&nd);
 		mp = NULL;
 		goto out;
 	}
 	VOP_UNLOCK(nd.ni_vp);
 	error = vn_start_write(nd.ni_vp, &mp_writable, V_WAIT | V_PCATCH);
-	NDFREE(&nd, NDF_NO_VP_UNLOCK);
+	vrele(nd.ni_vp);
+	NDFREE_PNBUF(&nd);
 	if (error)
 		goto out;
 	if (filename_vp != NULL) {
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 4aea0f263e46..63a30cbbdb3d 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -415,7 +415,8 @@ sysctl_try_reclaim_vnode(SYSCTL_HANDLER_ARGS)
 	counter_u64_add(recycles_count, 1);
 	vgone(vp);
 putvnode:
-	NDFREE(&nd, 0);
+	vput(vp);
+	NDFREE_PNBUF(&nd);
 out:
 	free(buf, M_TEMP);
 	return (error);
diff --git a/sys/security/mac/mac_syscalls.c b/sys/security/mac/mac_syscalls.c
index 9bc334686aa4..ecb451ac2018 100644
--- a/sys/security/mac/mac_syscalls.c
+++ b/sys/security/mac/mac_syscalls.c
@@ -369,7 +369,8 @@ kern___mac_get_path(struct thread *td, const char *path_p, struct mac *mac_p,
 	mac_vnode_copy_label(nd.ni_vp->v_label, intlabel);
 	error = mac_vnode_externalize_label(intlabel, elements, buffer,
 	    mac.m_buflen);
-	NDFREE(&nd, 0);
+	vput(nd.ni_vp);
+	NDFREE_PNBUF(&nd);
 	mac_vnode_label_free(intlabel);
 
 	if (error == 0)
@@ -542,9 +543,9 @@ kern___mac_set_path(struct thread *td, const char *path_p, struct mac *mac_p,
 			    td->td_ucred);
 			vn_finished_write(mp);
 		}
+		vput(nd.ni_vp);
+		NDFREE_PNBUF(&nd);
 	}
-
-	NDFREE(&nd, 0);
 out:
 	mac_vnode_label_free(intlabel);
 	return (error);