svn commit: r351471 - in head/sys: kern sys

Oliver Pinter oliver.pinter at hardenedbsd.org
Sun Aug 25 20:01:57 UTC 2019


On Sunday, August 25, 2019, Mateusz Guzik <mjg at freebsd.org> wrote:

> Author: mjg
> Date: Sun Aug 25 05:11:43 2019
> New Revision: 351471
> URL: https://svnweb.freebsd.org/changeset/base/351471
>
> Log:
>   vfs: add vholdnz (for already held vnodes)


Why?

(Yes, is can read the real reason in phabricator, but the phabricator
didn't considered a persistent information in relation to commit message.
Review helper tool just comes and goes as time goes forward, but commit
messages survives the repo conversions to other VCS...)

And once you have taken the time to write a correct description in
phabricator, it would be really really nice and helpful if you would copy
them into commit message.


>
>   Reviewed by:  kib (previous version)
>   Sponsored by: The FreeBSD Foundation
>   Differential Revision:        https://reviews.freebsd.org/D21358
>
> Modified:
>   head/sys/kern/vfs_subr.c
>   head/sys/sys/vnode.h
>
> Modified: head/sys/kern/vfs_subr.c
> ============================================================
> ==================
> --- head/sys/kern/vfs_subr.c    Sun Aug 25 04:56:33 2019        (r351470)
> +++ head/sys/kern/vfs_subr.c    Sun Aug 25 05:11:43 2019        (r351471)
> @@ -3018,6 +3018,19 @@ _vhold(struct vnode *vp, bool locked)
>                 VI_UNLOCK(vp);
>  }
>
> +void
> +vholdnz(struct vnode *vp)
> +{
> +
> +       CTR2(KTR_VFS, "%s: vp %p", __func__, vp);
> +#ifdef INVARIANTS
> +       int old = atomic_fetchadd_int(&vp->v_holdcnt, 1);
> +       VNASSERT(old > 0, vp, ("%s: wrong hold count", __func__));
> +#else
> +       atomic_add_int(&vp->v_holdcnt, 1);
> +#endif
> +}
> +
>  /*
>   * Drop the hold count of the vnode.  If this is the last reference to
>   * the vnode we place it on the free list unless it has been vgone'd
>
> Modified: head/sys/sys/vnode.h
> ============================================================
> ==================
> --- head/sys/sys/vnode.h        Sun Aug 25 04:56:33 2019        (r351470)
> +++ head/sys/sys/vnode.h        Sun Aug 25 05:11:43 2019        (r351471)
> @@ -657,6 +657,7 @@ void        vgone(struct vnode *vp);
>  #define        vhold(vp)       _vhold((vp), 0)
>  #define        vholdl(vp)      _vhold((vp), 1)
>  void   _vhold(struct vnode *, bool);
> +void   vholdnz(struct vnode *);
>  void   vinactive(struct vnode *, struct thread *);
>  int    vinvalbuf(struct vnode *vp, int save, int slpflag, int slptimeo);
>  int    vtruncbuf(struct vnode *vp, off_t length, int blksize);
> _______________________________________________
> svn-src-head at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"
>


More information about the svn-src-all mailing list