Alexander Bluhm wrote: > Hi, > > There is no remove and no sleep in this loop. So _SAFE is unnecessary. > > ok?
sure, with one bonus note. > > bluhm > > Index: nfs/nfs_subs.c > =================================================================== > RCS file: /data/mirror/openbsd/cvs/src/sys/nfs/nfs_subs.c,v > retrieving revision 1.141 > diff -u -p -r1.141 nfs_subs.c > --- nfs/nfs_subs.c 10 Jan 2020 10:33:35 -0000 1.141 > +++ nfs/nfs_subs.c 13 Jan 2020 18:02:54 -0000 > @@ -1509,16 +1509,16 @@ netaddr_match(int family, union nethosta > void > nfs_clearcommit(struct mount *mp) > { > - struct vnode *vp, *nvp; > - struct buf *bp, *nbp; > + struct vnode *vp; > + struct buf *bp; > int s; > > s = splbio(); > loop: > - TAILQ_FOREACH_SAFE(vp, &mp->mnt_vnodelist, v_mntvnodes, nvp) { > + TAILQ_FOREACH(vp, &mp->mnt_vnodelist, v_mntvnodes) { > if (vp->v_mount != mp) /* Paranoia */ > goto loop; that looks like an infinite loop? if there's a bad vnode on the list, it'll still be there next time around.