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.

Reply via email to