Index | Thread | Search

From:
Martin Pieuchot <mpi@grenadille.net>
Subject:
Re: Spell NULL correctly
To:
Rafael Sadowski <rafael@sizeofvoid.org>
Cc:
tech@openbsd.org
Date:
Fri, 19 Sep 2025 16:07:11 +0200

Download raw body.

Thread
On 19/09/25(Fri) 15:43, Rafael Sadowski wrote:
> On Fri Sep 19, 2025 at 03:29:41PM +0200, Martin Pieuchot wrote:
> > Diff below removes the NULLVP define which IMHO only obfuscates the
> > code.
> > 
> > ok?
> 
> FreeBSD and NetBSD still use it, which makes comparison with diff(1) difficult

Indeed, they suffer from the same incoherency.  But NULL is slowly taking
over NULLVP in all code bases.  The same applies to OpenSolaris.

For example `grep -R -- "\*vpp =NULL"` shows a mix of both in *BSD.

I believe coherency is more valuable in this case.  So ok?

> > Index: dev/cons.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/cons.c,v
> > diff -u -p -r1.30 cons.c
> > --- dev/cons.c	2 Jul 2022 08:50:41 -0000	1.30
> > +++ dev/cons.c	19 Sep 2025 13:22:19 -0000
> > @@ -49,7 +49,7 @@
> >  #include <dev/cons.h>
> >  
> >  struct	tty *constty = NULL;		/* virtual console output device */
> > -struct	vnode *cn_devvp = NULLVP;	/* vnode for underlying device. */
> > +struct	vnode *cn_devvp = NULL;	/* vnode for underlying device. */
> >  
> >  int
> >  cnopen(dev_t dev, int flag, int mode, struct proc *p)
> > @@ -71,7 +71,7 @@ cnopen(dev_t dev, int flag, int mode, st
> >  	if (cndev == dev)
> >  		panic("cnopen: recursive");
> >  #endif
> > -	if (cn_devvp == NULLVP) {
> > +	if (cn_devvp == NULL) {
> >  		/* try to get a reference on its vnode, but fail silently */
> >  		cdevvp(cndev, &cn_devvp);
> >  	}
> > @@ -92,10 +92,10 @@ cnclose(dev_t dev, int flag, int mode, s
> >  	 * screw up others who have it open.
> >  	 */
> >  	dev = cn_tab->cn_dev;
> > -	if (cn_devvp != NULLVP) {
> > +	if (cn_devvp != NULL) {
> >  		/* release our reference to real dev's vnode */
> >  		vrele(cn_devvp);
> > -		cn_devvp = NULLVP;
> > +		cn_devvp = NULL;
> >  	}
> >  	if (vfinddev(dev, VCHR, &vp) && vcount(vp))
> >  		return (0);
> > Index: isofs/cd9660/cd9660_vfsops.c
> > ===================================================================
> > RCS file: /cvs/src/sys/isofs/cd9660/cd9660_vfsops.c,v
> > diff -u -p -r1.98 cd9660_vfsops.c
> > --- isofs/cd9660/cd9660_vfsops.c	17 Jul 2023 09:41:20 -0000	1.98
> > +++ isofs/cd9660/cd9660_vfsops.c	19 Sep 2025 13:22:19 -0000
> > @@ -544,7 +544,7 @@ cd9660_unmount(struct mount *mp, int mnt
> >  	if (mntinvalbuf(mp))
> >  		return (EBUSY);
> >  #endif
> > -	if ((error = vflush(mp, NULLVP, flags)) != 0)
> > +	if ((error = vflush(mp, NULL, flags)) != 0)
> >  		return (error);
> >  
> >  	isomp = VFSTOISOFS(mp);
> > @@ -650,13 +650,13 @@ cd9660_fhtovp(struct mount *mp, struct f
> >  #endif
> >  
> >  	if ((error = VFS_VGET(mp, ifhp->ifid_ino, &nvp)) != 0) {
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (error);
> >  	}
> >  	ip = VTOI(nvp);
> >  	if (ip->inode.iso_mode == 0) {
> >  		vput(nvp);
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (ESTALE);
> >  	}
> >  	*vpp = nvp;
> > @@ -700,12 +700,12 @@ cd9660_vget_internal(struct mount *mp, c
> >  retry:
> >  	imp = VFSTOISOFS(mp);
> >  	dev = imp->im_dev;
> > -	if ((*vpp = cd9660_ihashget(dev, ino)) != NULLVP)
> > +	if ((*vpp = cd9660_ihashget(dev, ino)) != NULL)
> >  		return (0);
> >  
> >  	/* Allocate a new vnode/iso_node. */
> >  	if ((error = getnewvnode(VT_ISOFS, mp, &cd9660_vops, &vp)) != 0) {
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (error);
> >  	}
> >  	ip = malloc(sizeof(*ip), M_ISOFSNODE, M_WAITOK | M_ZERO);
> > Index: isofs/udf/udf_vfsops.c
> > ===================================================================
> > RCS file: /cvs/src/sys/isofs/udf/udf_vfsops.c,v
> > diff -u -p -r1.72 udf_vfsops.c
> > --- isofs/udf/udf_vfsops.c	12 Jun 2025 20:37:56 -0000	1.72
> > +++ isofs/udf/udf_vfsops.c	19 Sep 2025 13:22:19 -0000
> > @@ -714,7 +714,7 @@ udf_fhtovp(struct mount *mp, struct fid 
> >  	ifhp = (struct ifid *)fhp;
> >  
> >  	if ((error = VFS_VGET(mp, ifhp->ifid_ino, &nvp)) != 0) {
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (error);
> >  	}
> >  
> > Index: kern/exec_elf.c
> > ===================================================================
> > RCS file: /cvs/src/sys/kern/exec_elf.c,v
> > diff -u -p -r1.193 exec_elf.c
> > --- kern/exec_elf.c	31 Jul 2025 16:09:59 -0000	1.193
> > +++ kern/exec_elf.c	19 Sep 2025 13:22:19 -0000
> > @@ -238,7 +238,7 @@ elf_load_psection(struct exec_vmcmd_set 
> >  	rf = round_page(*addr + ph->p_filesz + diff);
> >  
> >  	if (rm != rf) {
> > -		NEW_VMCMD2(vcset, vmcmd_map_zero, rm - rf, rf, NULLVP, 0,
> > +		NEW_VMCMD2(vcset, vmcmd_map_zero, rm - rf, rf, NULL, 0,
> >  		    *prot, flags);
> >  	}
> >  	*size = msize;
> > @@ -528,20 +528,20 @@ elf_load_file(struct proc *p, char *path
> >  			}
> >  			randomizequota -= ph[i].p_memsz;
> >  			NEW_VMCMD(&epp->ep_vmcmds, vmcmd_randomize,
> > -			    ph[i].p_memsz, ph[i].p_vaddr + pos, NULLVP, 0, 0);
> > +			    ph[i].p_memsz, ph[i].p_vaddr + pos, NULL, 0, 0);
> >  			break;
> >  
> >  		case PT_DYNAMIC:
> >  #if defined (__mips__)
> >  			/* DT_DEBUG is not ready on mips */
> >  			NEW_VMCMD(&epp->ep_vmcmds, vmcmd_mutable,
> > -			    ph[i].p_memsz, ph[i].p_vaddr + pos, NULLVP, 0, 0);
> > +			    ph[i].p_memsz, ph[i].p_vaddr + pos, NULL, 0, 0);
> >  #endif
> >  			break;
> >  		case PT_GNU_RELRO:
> >  		case PT_OPENBSD_MUTABLE:
> >  			NEW_VMCMD(&epp->ep_vmcmds, vmcmd_mutable,
> > -			    ph[i].p_memsz, ph[i].p_vaddr + pos, NULLVP, 0, 0);
> > +			    ph[i].p_memsz, ph[i].p_vaddr + pos, NULL, 0, 0);
> >  			break;
> >  		case PT_OPENBSD_SYSCALLS:
> >  			syscall_ph = &ph[i];
> > @@ -824,20 +824,20 @@ exec_elf_makecmds(struct proc *p, struct
> >  			}
> >  			randomizequota -= ph[i].p_memsz;
> >  			NEW_VMCMD(&epp->ep_vmcmds, vmcmd_randomize,
> > -			    ph[i].p_memsz, ph[i].p_vaddr + exe_base, NULLVP, 0, 0);
> > +			    ph[i].p_memsz, ph[i].p_vaddr + exe_base, NULL, 0, 0);
> >  			break;
> >  
> >  		case PT_DYNAMIC:
> >  #if defined (__mips__)
> >  			/* DT_DEBUG is not ready on mips */
> >  			NEW_VMCMD(&epp->ep_vmcmds, vmcmd_mutable,
> > -			    ph[i].p_memsz, ph[i].p_vaddr + exe_base, NULLVP, 0, 0);
> > +			    ph[i].p_memsz, ph[i].p_vaddr + exe_base, NULL, 0, 0);
> >  #endif
> >  			break;
> >  		case PT_GNU_RELRO:
> >  		case PT_OPENBSD_MUTABLE:
> >  			NEW_VMCMD(&epp->ep_vmcmds, vmcmd_mutable,
> > -			    ph[i].p_memsz, ph[i].p_vaddr + exe_base, NULLVP, 0, 0);
> > +			    ph[i].p_memsz, ph[i].p_vaddr + exe_base, NULL, 0, 0);
> >  			break;
> >  		case PT_OPENBSD_SYSCALLS:
> >  			if (interp == NULL)
> > Index: kern/exec_subr.c
> > ===================================================================
> > RCS file: /cvs/src/sys/kern/exec_subr.c,v
> > diff -u -p -r1.69 exec_subr.c
> > --- kern/exec_subr.c	15 Aug 2025 07:50:53 -0000	1.69
> > +++ kern/exec_subr.c	19 Sep 2025 13:22:19 -0000
> > @@ -102,7 +102,7 @@ kill_vmcmds(struct exec_vmcmd_set *evsp)
> >  
> >  	for (i = 0; i < evsp->evs_used; i++) {
> >  		vcp = &evsp->evs_cmds[i];
> > -		if (vcp->ev_vp != NULLVP)
> > +		if (vcp->ev_vp != NULL)
> >  			vrele(vcp->ev_vp);
> >  	}
> >  
> > @@ -422,18 +422,18 @@ exec_setup_stack(struct proc *p, struct 
> >  	NEW_VMCMD2(&epp->ep_vmcmds, vmcmd_map_zero,
> >  	    ((epp->ep_minsaddr - epp->ep_ssize) - epp->ep_maxsaddr),
> >  	    epp->ep_maxsaddr + epp->ep_ssize,
> > -	    NULLVP, 0, PROT_NONE,  VMCMD_IMMUTABLE);
> > +	    NULL, 0, PROT_NONE,  VMCMD_IMMUTABLE);
> >  	NEW_VMCMD2(&epp->ep_vmcmds, vmcmd_map_zero, epp->ep_ssize,
> >  	    epp->ep_maxsaddr,
> > -	    NULLVP, 0, PROT_READ | PROT_WRITE, VMCMD_STACK | VMCMD_IMMUTABLE);
> > +	    NULL, 0, PROT_READ | PROT_WRITE, VMCMD_STACK | VMCMD_IMMUTABLE);
> >  #else
> >  	NEW_VMCMD2(&epp->ep_vmcmds, vmcmd_map_zero,
> >  	    ((epp->ep_minsaddr - epp->ep_ssize) - epp->ep_maxsaddr),
> >  	    epp->ep_maxsaddr,
> > -	    NULLVP, 0, PROT_NONE, VMCMD_IMMUTABLE);
> > +	    NULL, 0, PROT_NONE, VMCMD_IMMUTABLE);
> >  	NEW_VMCMD2(&epp->ep_vmcmds, vmcmd_map_zero, epp->ep_ssize,
> >  	    (epp->ep_minsaddr - epp->ep_ssize),
> > -	    NULLVP, 0, PROT_READ | PROT_WRITE, VMCMD_STACK | VMCMD_IMMUTABLE);
> > +	    NULL, 0, PROT_READ | PROT_WRITE, VMCMD_STACK | VMCMD_IMMUTABLE);
> >  #endif
> >  
> >  	return (0);
> > Index: kern/vfs_lookup.c
> > ===================================================================
> > RCS file: /cvs/src/sys/kern/vfs_lookup.c,v
> > diff -u -p -r1.89 vfs_lookup.c
> > --- kern/vfs_lookup.c	8 Jun 2025 06:25:36 -0000	1.89
> > +++ kern/vfs_lookup.c	19 Sep 2025 13:22:19 -0000
> > @@ -408,7 +408,7 @@ vfs_lookup(struct nameidata *ndp)
> >  	ndp->ni_dvp = NULL;
> >  	cnp->cn_flags &= ~ISSYMLINK;
> >  	dp = ndp->ni_startdir;
> > -	ndp->ni_startdir = NULLVP;
> > +	ndp->ni_startdir = NULL;
> >  	vn_lock(dp, LK_EXCLUSIVE | LK_RETRY);
> >  
> >  	/*
> > Index: kern/vfs_subr.c
> > ===================================================================
> > RCS file: /cvs/src/sys/kern/vfs_subr.c,v
> > diff -u -p -r1.330 vfs_subr.c
> > --- kern/vfs_subr.c	12 Jun 2025 20:37:58 -0000	1.330
> > +++ kern/vfs_subr.c	19 Sep 2025 13:22:19 -0000
> > @@ -284,7 +284,7 @@ vfs_rootmountalloc(char *fstypename, cha
> >  	vfsp = vfs_byname(fstypename);
> >  	if (vfsp == NULL)
> >  		return (ENODEV);
> > -	mp = vfs_mount_alloc(NULLVP, vfsp);
> > +	mp = vfs_mount_alloc(NULL, vfsp);
> >  	mp->mnt_flag |= MNT_RDONLY;
> >  	mp->mnt_stat.f_mntonname[0] = '/';
> >  	strlcpy(mp->mnt_stat.f_mntfromname, devname, MNAMELEN);
> > @@ -537,12 +537,12 @@ getdevvp(dev_t dev, struct vnode **vpp, 
> >  	int error;
> >  
> >  	if (dev == NODEV) {
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (0);
> >  	}
> >  	error = getnewvnode(VT_NON, NULL, &spec_vops, &nvp);
> >  	if (error) {
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (error);
> >  	}
> >  	vp = nvp;
> > @@ -573,7 +573,7 @@ checkalias(struct vnode *nvp, dev_t nvp_
> >  	struct vnodechain *vchain;
> >  
> >  	if (nvp->v_type != VBLK && nvp->v_type != VCHR)
> > -		return (NULLVP);
> > +		return (NULL);
> >  
> >  	vchain = &speclisth[SPECHASH(nvp_rdev)];
> >  loop:
> > @@ -608,19 +608,19 @@ loop:
> >  		if (nvp->v_type == VCHR &&
> >  		    (cdevsw[major(nvp_rdev)].d_flags & D_CLONE) &&
> >  		    (minor(nvp_rdev) >> CLONE_SHIFT == 0)) {
> > -			if (vp != NULLVP)
> > +			if (vp != NULL)
> >  				nvp->v_specbitmap = vp->v_specbitmap;
> >  			else
> >  				nvp->v_specbitmap = malloc(CLONE_MAPSZ,
> >  				    M_VNODE, M_WAITOK | M_ZERO);
> >  		}
> >  		SLIST_INSERT_HEAD(vchain, nvp, v_specnext);
> > -		if (vp != NULLVP) {
> > +		if (vp != NULL) {
> >  			nvp->v_flag |= VALIASED;
> >  			vp->v_flag |= VALIASED;
> >  			vput(vp);
> >  		}
> > -		return (NULLVP);
> > +		return (NULL);
> >  	}
> >  
> >  	/*
> > Index: kern/vfs_syscalls.c
> > ===================================================================
> > RCS file: /cvs/src/sys/kern/vfs_syscalls.c,v
> > diff -u -p -r1.377 vfs_syscalls.c
> > --- kern/vfs_syscalls.c	4 Aug 2025 04:59:31 -0000	1.377
> > +++ kern/vfs_syscalls.c	19 Sep 2025 13:22:19 -0000
> > @@ -416,7 +416,7 @@ dounmount(struct mount *mp, int flags, s
> >  	 */
> >  	while ((mp = TAILQ_NEXT(mp, mnt_list)) != NULL) {
> >  		SLIST_FOREACH(nmp, &mplist, mnt_dounmount) {
> > -			if (mp->mnt_vnodecovered == NULLVP ||
> > +			if (mp->mnt_vnodecovered == NULL ||
> >  			    mp->mnt_vnodecovered->v_mount != nmp)
> >  				continue;
> >  
> > @@ -501,7 +501,7 @@ dounmount_leaf(struct mount *mp, int fla
> >  	}
> >  
> >  	TAILQ_REMOVE(&mountlist, mp, mnt_list);
> > -	if ((coveredvp = mp->mnt_vnodecovered) != NULLVP) {
> > +	if ((coveredvp = mp->mnt_vnodecovered) != NULL) {
> >  		coveredvp->v_mountedhere = NULL;
> >  		vrele(coveredvp);
> >  	}
> > Index: miscfs/fuse/fuse_vfsops.c
> > ===================================================================
> > RCS file: /cvs/src/sys/miscfs/fuse/fuse_vfsops.c,v
> > diff -u -p -r1.48 fuse_vfsops.c
> > --- miscfs/fuse/fuse_vfsops.c	31 Oct 2024 13:55:21 -0000	1.48
> > +++ miscfs/fuse/fuse_vfsops.c	19 Sep 2025 13:22:19 -0000
> > @@ -153,7 +153,7 @@ fusefs_unmount(struct mount *mp, int mnt
> >  	if (mntflags & MNT_FORCE)
> >  		flags |= FORCECLOSE;
> >  
> > -	if ((error = vflush(mp, NULLVP, flags)))
> > +	if ((error = vflush(mp, NULL, flags)))
> >  		return (error);
> >  
> >  	if (fmp->sess_init && fmp->sess_init != PENDING) {
> > @@ -276,7 +276,7 @@ retry:
> >  	/*
> >  	 * check if vnode is in hash.
> >  	 */
> > -	if ((*vpp = fuse_ihashget(fmp->dev, ino)) != NULLVP)
> > +	if ((*vpp = fuse_ihashget(fmp->dev, ino)) != NULL)
> >  		return (0);
> >  
> >  	/*
> > @@ -284,7 +284,7 @@ retry:
> >  	 */
> >  	if ((error = getnewvnode(VT_FUSEFS, mp, &fusefs_vops, &nvp)) != 0) {
> >  		printf("fusefs: getnewvnode error\n");
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (error);
> >  	}
> >  
> > Index: msdosfs/msdosfs_vfsops.c
> > ===================================================================
> > RCS file: /cvs/src/sys/msdosfs/msdosfs_vfsops.c,v
> > diff -u -p -r1.98 msdosfs_vfsops.c
> > --- msdosfs/msdosfs_vfsops.c	18 Oct 2024 05:52:32 -0000	1.98
> > +++ msdosfs/msdosfs_vfsops.c	19 Sep 2025 13:22:19 -0000
> > @@ -124,7 +124,7 @@ msdosfs_mount(struct mount *mp, const ch
> >  			flags = WRITECLOSE;
> >  			if (mp->mnt_flag & MNT_FORCE)
> >  				flags |= FORCECLOSE;
> > -			error = vflush(mp, NULLVP, flags);
> > +			error = vflush(mp, NULL, flags);
> >  			if (!error) {
> >  				int force = 0;
> >  
> > @@ -572,7 +572,7 @@ msdosfs_unmount(struct mount *mp, int mn
> >  	flags = 0;
> >  	if (mntflags & MNT_FORCE)
> >  		flags |= FORCECLOSE;
> > -	if ((error = vflush(mp, NULLVP, flags)) != 0)
> > +	if ((error = vflush(mp, NULL, flags)) != 0)
> >  		return (error);
> >  	pmp = VFSTOMSDOSFS(mp);
> >  	pmp->pm_devvp->v_specmountpoint = NULL;
> > @@ -721,7 +721,7 @@ msdosfs_fhtovp(struct mount *mp, struct 
> >  
> >  	error = deget(pmp, defhp->defid_dirclust, defhp->defid_dirofs, &dep);
> >  	if (error) {
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (error);
> >  	}
> >  	*vpp = DETOV(dep);
> > Index: nfs/nfs_vnops.c
> > ===================================================================
> > RCS file: /cvs/src/sys/nfs/nfs_vnops.c,v
> > diff -u -p -r1.208 nfs_vnops.c
> > --- nfs/nfs_vnops.c	8 Sep 2025 10:13:32 -0000	1.208
> > +++ nfs/nfs_vnops.c	19 Sep 2025 13:22:19 -0000
> > @@ -819,8 +819,8 @@ nfs_lookup(void *v)
> >  	cnp->cn_flags &= ~PDIRUNLOCK;
> >  	flags = cnp->cn_flags;
> >  
> > -	*vpp = NULLVP;
> > -	newvp = NULLVP;
> > +	*vpp = NULL;
> > +	newvp = NULL;
> >  	if ((flags & ISLASTCN) && (dvp->v_mount->mnt_flag & MNT_RDONLY) &&
> >  	    (cnp->cn_nameiop == DELETE || cnp->cn_nameiop == RENAME))
> >  		return (EROFS);
> > @@ -845,14 +845,14 @@ nfs_lookup(void *v)
> >  		int err2;
> >  
> >  		if (error && error != ENOENT) {
> > -			*vpp = NULLVP;
> > +			*vpp = NULL;
> >  			return (error);
> >  		}
> >  
> >  		if (cnp->cn_flags & PDIRUNLOCK) {
> >  			err2 = vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY);
> >  			if (err2 != 0) {
> > -				*vpp = NULLVP;
> > +				*vpp = NULL;
> >  				return (err2);
> >  			}
> >  			cnp->cn_flags &= ~PDIRUNLOCK;
> > @@ -866,7 +866,7 @@ nfs_lookup(void *v)
> >  				else
> >  					vrele(*vpp);
> >  			}
> > -			*vpp = NULLVP;
> > +			*vpp = NULL;
> >  			return (err2);
> >  		}
> >  
> > @@ -899,11 +899,11 @@ nfs_lookup(void *v)
> >  			vput(newvp);
> >  		else
> >  			vrele(newvp);
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  	}
> >  dorpc:
> >  	error = 0;
> > -	newvp = NULLVP;
> > +	newvp = NULL;
> >  	nfsstats.lookupcache_misses++;
> >  	nfsstats.rpccnt[NFSPROC_LOOKUP]++;
> >  	len = cnp->cn_namelen;
> > @@ -1054,7 +1054,7 @@ nfsmout: 
> >  		    cnp->cn_nameiop != CREATE) {
> >  			nfs_cache_enter(dvp, NULL, cnp);
> >  		}
> > -		if (newvp != NULLVP) {
> > +		if (newvp != NULL) {
> >  			if (newvp != dvp)
> >  				vput(newvp);
> >  			else
> > @@ -2545,7 +2545,7 @@ nfs_readdirplusrpc(struct vnode *vp, str
> >  #endif
> >  	NDINIT(ndp, 0, 0, UIO_SYSSPACE, NULL, p);
> >  	ndp->ni_dvp = vp;
> > -	newvp = NULLVP;
> > +	newvp = NULL;
> >  
> >  	txdr_hyper(uiop->uio_offset, &cookie.nfsuquad[0]);
> >  
> > @@ -2719,12 +2719,12 @@ nfs_readdirplusrpc(struct vnode *vp, str
> >  						goto nfsmout;
> >  				}
> >  			}
> > -			if (newvp != NULLVP) {
> > +			if (newvp != NULL) {
> >  				if (newvp == vp)
> >  					vrele(newvp);
> >  				else
> >  					vput(newvp);
> > -				newvp = NULLVP;
> > +				newvp = NULL;
> >  			}
> >  			tl = (uint32_t *)nfsm_dissect(&info, NFSX_UNSIGNED);
> >  			if (tl == NULL)
> > @@ -2768,7 +2768,7 @@ nfs_readdirplusrpc(struct vnode *vp, str
> >  	}
> >  
> >  nfsmout:
> > -	if (newvp != NULLVP) {
> > +	if (newvp != NULL) {
> >  		if (newvp == vp)
> >  			vrele(newvp);
> >  		else
> > Index: ntfs/ntfs_vfsops.c
> > ===================================================================
> > RCS file: /cvs/src/sys/ntfs/ntfs_vfsops.c,v
> > diff -u -p -r1.66 ntfs_vfsops.c
> > --- ntfs/ntfs_vfsops.c	4 Sep 2024 07:54:53 -0000	1.66
> > +++ ntfs/ntfs_vfsops.c	19 Sep 2025 13:22:19 -0000
> > @@ -426,7 +426,7 @@ out1:
> >  		if (ntmp->ntm_sysvn[i])
> >  			vrele(ntmp->ntm_sysvn[i]);
> >  
> > -	if (vflush(mp,NULLVP,0))
> > +	if (vflush(mp,NULL,0))
> >  		DPRINTF("ntfs_mountfs: vflush failed\n");
> >  
> >  out:
> > @@ -470,7 +470,7 @@ ntfs_unmount(struct mount *mp, int mntfl
> >  		flags |= FORCECLOSE;
> >  
> >  	DPRINTF("ntfs_unmount: vflushing...\n");
> > -	error = vflush(mp,NULLVP,flags | SKIPSYSTEM);
> > +	error = vflush(mp,NULL,flags | SKIPSYSTEM);
> >  	if (error) {
> >  		DPRINTF("ntfs_unmount: vflush failed: %d\n", error);
> >  		return (error);
> > @@ -488,7 +488,7 @@ ntfs_unmount(struct mount *mp, int mntfl
> >  		 if(ntmp->ntm_sysvn[i]) vrele(ntmp->ntm_sysvn[i]);
> >  
> >  	/* vflush system vnodes */
> > -	error = vflush(mp,NULLVP,flags);
> > +	error = vflush(mp,NULL,flags);
> >  	if (error) {
> >  		/* XXX should this be panic() ? */
> >  		printf("ntfs_unmount: vflush failed(sysnodes): %d\n",error);
> > @@ -630,7 +630,7 @@ ntfs_fhtovp(struct mount *mp, struct fid
> >  	error = ntfs_vgetex(mp, ntfhp->ntfid_ino, ntfhp->ntfid_attr, NULL,
> >  			LK_EXCLUSIVE | LK_RETRY, 0, vpp); /* XXX */
> >  	if (error != 0) {
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (error);
> >  	}
> >  
> > Index: sys/vnode.h
> > ===================================================================
> > RCS file: /cvs/src/sys/sys/vnode.h,v
> > diff -u -p -r1.177 vnode.h
> > --- sys/vnode.h	15 Apr 2025 05:51:51 -0000	1.177
> > +++ sys/vnode.h	19 Sep 2025 13:21:58 -0000
> > @@ -243,7 +243,6 @@ extern int		vttoif_tab[];
> >  #define REVOKEALL	0x0001		/* vop_revoke: revoke all aliases */
> >  
> >  
> > -#define	NULLVP	((struct vnode *)NULL)
> >  #define	VN_KNOTE(vp, b)					\
> >  	knote_locked(&vp->v_klist, (b))
> >  
> > Index: tmpfs/tmpfs_vnops.c
> > ===================================================================
> > RCS file: /cvs/src/sys/tmpfs/tmpfs_vnops.c,v
> > diff -u -p -r1.56 tmpfs_vnops.c
> > --- tmpfs/tmpfs_vnops.c	18 Oct 2024 05:52:32 -0000	1.56
> > +++ tmpfs/tmpfs_vnops.c	19 Sep 2025 13:22:19 -0000
> > @@ -148,7 +148,7 @@ tmpfs_lookup(void *v)
> >  	 * directory/name couple is already in the cache.
> >  	 */
> >  	cachefound = cache_lookup(dvp, vpp, cnp);
> > -	if (cachefound == ENOENT /* && *vpp == NULLVP */)
> > +	if (cachefound == ENOENT /* && *vpp == NULL */)
> >  		return ENOENT; /* Negative cache hit. */
> >  	else if (cachefound != -1)
> >  		return 0; /* Found in cache. */
> > Index: ufs/ext2fs/ext2fs_vfsops.c
> > ===================================================================
> > RCS file: /cvs/src/sys/ufs/ext2fs/ext2fs_vfsops.c,v
> > diff -u -p -r1.122 ext2fs_vfsops.c
> > --- ufs/ext2fs/ext2fs_vfsops.c	12 Jun 2025 20:37:59 -0000	1.122
> > +++ ufs/ext2fs/ext2fs_vfsops.c	19 Sep 2025 13:22:19 -0000
> > @@ -980,14 +980,14 @@ ext2fs_fhtovp(struct mount *mp, struct f
> >  		return (ESTALE);
> >  
> >  	if ((error = VFS_VGET(mp, ufhp->ufid_ino, &nvp)) != 0) {
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (error);
> >  	}
> >  	ip = VTOI(nvp);
> >  	if (ip->i_e2fs_mode == 0 || ip->i_e2fs_dtime != 0 ||
> >  	    ip->i_e2fs_gen != ufhp->ufid_gen) {
> >  		vput(nvp);
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (ESTALE);
> >  	}
> >  	*vpp = nvp;
> > Index: ufs/ffs/ffs_vfsops.c
> > ===================================================================
> > RCS file: /cvs/src/sys/ufs/ffs/ffs_vfsops.c,v
> > diff -u -p -r1.200 ffs_vfsops.c
> > --- ufs/ffs/ffs_vfsops.c	12 Jun 2025 20:37:59 -0000	1.200
> > +++ ufs/ffs/ffs_vfsops.c	19 Sep 2025 13:22:19 -0000
> > @@ -773,7 +773,7 @@ ffs_mountfs(struct vnode *devvp, struct 
> >  	ump->um_seqinc = fs->fs_frag;
> >  	ump->um_maxsymlinklen = fs->fs_maxsymlinklen;
> >  	for (i = 0; i < MAXQUOTAS; i++)
> > -		ump->um_quotas[i] = NULLVP;
> > +		ump->um_quotas[i] = NULL;
> >  
> >  	devvp->v_specmountpoint = mp;
> >  	ffs_oldfscompat(fs);
> > @@ -968,10 +968,10 @@ ffs_flushfiles(struct mount *mp, int fla
> >  	ump = VFSTOUFS(mp);
> >  	if (mp->mnt_flag & MNT_QUOTA) {
> >  		int i;
> > -		if ((error = vflush(mp, NULLVP, SKIPSYSTEM|flags)) != 0)
> > +		if ((error = vflush(mp, NULL, SKIPSYSTEM|flags)) != 0)
> >  			return (error);
> >  		for (i = 0; i < MAXQUOTAS; i++) {
> > -			if (ump->um_quotas[i] == NULLVP)
> > +			if (ump->um_quotas[i] == NULL)
> >  				continue;
> >  			quotaoff(p, mp, i);
> >  		}
> > Index: ufs/ufs/ufs_quota.c
> > ===================================================================
> > RCS file: /cvs/src/sys/ufs/ufs/ufs_quota.c,v
> > diff -u -p -r1.47 ufs_quota.c
> > --- ufs/ufs/ufs_quota.c	24 Jun 2020 22:03:45 -0000	1.47
> > +++ ufs/ufs/ufs_quota.c	19 Sep 2025 13:22:19 -0000
> > @@ -441,7 +441,7 @@ chkdquot(struct inode *ip)
> >  		panic ("chkdquot: vnode is not locked");
> >  		
> >  	for (i = 0; i < MAXQUOTAS; i++) {
> > -		if (ump->um_quotas[i] == NULLVP ||
> > +		if (ump->um_quotas[i] == NULL ||
> >  		    (ump->um_qflags[i] & (QTF_OPENING|QTF_CLOSING)))
> >  			continue;
> >  		if (ip->i_dquot[i] == NODQUOT) {
> > @@ -529,12 +529,12 @@ quotaon(struct proc *p, struct mount *mp
> >  	 */
> >  	ump->um_btime[type] = MAX_DQ_TIME;
> >  	ump->um_itime[type] = MAX_IQ_TIME;
> > -	if (dqget(NULLVP, 0, ump, type, &dq) == 0) {
> > +	if (dqget(NULL, 0, ump, type, &dq) == 0) {
> >  		if (dq->dq_btime > 0)
> >  			ump->um_btime[type] = dq->dq_btime;
> >  		if (dq->dq_itime > 0)
> >  			ump->um_itime[type] = dq->dq_itime;
> > -		dqrele(NULLVP, dq);
> > +		dqrele(NULL, dq);
> >  	}
> >  	/*
> >  	 * Search vnodes associated with this mount point,
> > @@ -589,7 +589,7 @@ quotaoff(struct proc *p, struct mount *m
> >  	if (!vfs_isbusy(mp))
> >  		panic ("quotaoff: mount point not busy");
> >  #endif
> > -	if ((qvp = ump->um_quotas[type]) == NULLVP)
> > +	if ((qvp = ump->um_quotas[type]) == NULL)
> >  		return (0);
> >  	ump->um_qflags[type] |= QTF_CLOSING;
> >  	/*
> > @@ -601,12 +601,12 @@ quotaoff(struct proc *p, struct mount *m
> >  	vfs_mount_foreach_vnode(mp, quotaoff_vnode, &qa);
> >  
> >  	error = vn_close(qvp, FREAD|FWRITE, p->p_ucred, p);
> > -	ump->um_quotas[type] = NULLVP;
> > +	ump->um_quotas[type] = NULL;
> >  	crfree(ump->um_cred[type]);
> >  	ump->um_cred[type] = NOCRED;
> >  	ump->um_qflags[type] &= ~QTF_CLOSING;
> >  	for (type = 0; type < MAXQUOTAS; type++)
> > -		if (ump->um_quotas[type] != NULLVP)
> > +		if (ump->um_quotas[type] != NULL)
> >  			break;
> >  	if (type == MAXQUOTAS)
> >  		mp->mnt_flag &= ~MNT_QUOTA;
> > @@ -622,7 +622,7 @@ getquota(struct mount *mp, u_long id, in
> >  	struct dquot *dq;
> >  	int error;
> >  
> > -	if ((error = dqget(NULLVP, id, VFSTOUFS(mp), type, &dq)) != 0)
> > +	if ((error = dqget(NULL, id, VFSTOUFS(mp), type, &dq)) != 0)
> >  		return (error);
> >  	error = copyout((caddr_t)&dq->dq_dqb, addr, sizeof (struct dqblk));
> >  #ifdef KTRACE
> > @@ -633,7 +633,7 @@ getquota(struct mount *mp, u_long id, in
> >  	}
> >  #endif
> >  
> > -	dqrele(NULLVP, dq);
> > +	dqrele(NULL, dq);
> >  	return (error);
> >  }
> >  
> > @@ -660,7 +660,7 @@ setquota(struct mount *mp, u_long id, in
> >  	}
> >  #endif
> >  
> > -	if ((error = dqget(NULLVP, id, ump, type, &ndq)) != 0)
> > +	if ((error = dqget(NULL, id, ump, type, &ndq)) != 0)
> >  		return (error);
> >  	dq = ndq;
> >  	while (dq->dq_flags & DQ_LOCK) {
> > @@ -697,7 +697,7 @@ setquota(struct mount *mp, u_long id, in
> >  	else
> >  		dq->dq_flags &= ~DQ_FAKE;
> >  	dq->dq_flags |= DQ_MOD;
> > -	dqrele(NULLVP, dq);
> > +	dqrele(NULL, dq);
> >  	return (0);
> >  }
> >  
> > @@ -724,7 +724,7 @@ setuse(struct mount *mp, u_long id, int 
> >  	}
> >  #endif
> >  
> > -	if ((error = dqget(NULLVP, id, ump, type, &ndq)) != 0)
> > +	if ((error = dqget(NULL, id, ump, type, &ndq)) != 0)
> >  		return (error);
> >  	dq = ndq;
> >  	while (dq->dq_flags & DQ_LOCK) {
> > @@ -748,7 +748,7 @@ setuse(struct mount *mp, u_long id, int 
> >  	if (dq->dq_curinodes < dq->dq_isoftlimit)
> >  		dq->dq_flags &= ~DQ_INODS;
> >  	dq->dq_flags |= DQ_MOD;
> > -	dqrele(NULLVP, dq);
> > +	dqrele(NULL, dq);
> >  	return (0);
> >  }
> >  
> > @@ -787,7 +787,7 @@ qsync(struct mount *mp)
> >  	 * If not, simply return.
> >  	 */
> >  	for (i = 0; i < MAXQUOTAS; i++)
> > -		if (ump->um_quotas[i] != NULLVP)
> > +		if (ump->um_quotas[i] != NULL)
> >  			break;
> >  	if (i == MAXQUOTAS)
> >  		return (0);
> > @@ -841,7 +841,7 @@ dqget(struct vnode *vp, u_long id, struc
> >  	int error;
> >  
> >  	dqvp = ump->um_quotas[type];
> > -	if (dqvp == NULLVP || (ump->um_qflags[type] & QTF_CLOSING)) {
> > +	if (dqvp == NULL || (ump->um_qflags[type] & QTF_CLOSING)) {
> >  		*dqp = NODQUOT;
> >  		return (EINVAL);
> >  	}
> > @@ -981,7 +981,7 @@ dqsync(struct vnode *vp, struct dquot *d
> >  		panic("dqsync: dquot");
> >  	if ((dq->dq_flags & DQ_MOD) == 0)
> >  		return (0);
> > -	if ((dqvp = dq->dq_vp) == NULLVP)
> > +	if ((dqvp = dq->dq_vp) == NULL)
> >  		panic("dqsync: file");
> >  
> >  	if (vp != dqvp)
> > Index: ufs/ufs/ufs_vfsops.c
> > ===================================================================
> > RCS file: /cvs/src/sys/ufs/ufs/ufs_vfsops.c,v
> > diff -u -p -r1.20 ufs_vfsops.c
> > --- ufs/ufs/ufs_vfsops.c	8 Mar 2023 04:43:09 -0000	1.20
> > +++ ufs/ufs/ufs_vfsops.c	19 Sep 2025 13:22:19 -0000
> > @@ -133,13 +133,13 @@ ufs_fhtovp(struct mount *mp, struct ufid
> >  	int error;
> >  
> >  	if ((error = VFS_VGET(mp, ufhp->ufid_ino, &nvp)) != 0) {
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (error);
> >  	}
> >  	ip = VTOI(nvp);
> >  	if (DIP(ip, mode) == 0 || DIP(ip, gen) != ufhp->ufid_gen) {
> >  		vput(nvp);
> > -		*vpp = NULLVP;
> > +		*vpp = NULL;
> >  		return (ESTALE);
> >  	}
> >  	*vpp = nvp;
> > Index: uvm/uvm_swap.c
> > ===================================================================
> > RCS file: /cvs/src/sys/uvm/uvm_swap.c,v
> > diff -u -p -r1.175 uvm_swap.c
> > --- uvm/uvm_swap.c	17 Sep 2025 11:32:20 -0000	1.175
> > +++ uvm/uvm_swap.c	19 Sep 2025 13:22:19 -0000
> > @@ -1274,7 +1274,7 @@ sw_reg_strategy(struct swapdev *sdp, str
> >  		nbp->vb_buf.b_blkno    = nbn + btodb(off);
> >  		nbp->vb_buf.b_proc     = bp->b_proc;
> >  		nbp->vb_buf.b_iodone   = sw_reg_iodone;
> > -		nbp->vb_buf.b_vp       = NULLVP;
> > +		nbp->vb_buf.b_vp       = NULL;
> >  		nbp->vb_buf.b_vnbufs.le_next = NOLIST;
> >  
> >  		/*
> > 
> > 
>