[BACK]Return to vfs_vnode.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / kern

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/kern/vfs_vnode.c between version 1.75 and 1.76

version 1.75, 2017/02/17 08:30:00 version 1.76, 2017/03/06 10:07:52
Line 919  vrecycle(vnode_t *vp)
Line 919  vrecycle(vnode_t *vp)
          * On layered file systems waiting for the lock would open a can of           * On layered file systems waiting for the lock would open a can of
          * deadlocks as the lower vnodes may have other active references.           * deadlocks as the lower vnodes may have other active references.
          */           */
         error = vn_lock(vp, LK_EXCLUSIVE | LK_NOWAIT);          error = vn_lock(vp, LK_EXCLUSIVE | LK_RETRY | LK_NOWAIT);
   
         mutex_enter(vp->v_interlock);          mutex_enter(vp->v_interlock);
         VSTATE_CHANGE(vp, VS_BLOCKED, VS_ACTIVE);          VSTATE_CHANGE(vp, VS_BLOCKED, VS_ACTIVE);
Line 978  void
Line 978  void
 vgone(vnode_t *vp)  vgone(vnode_t *vp)
 {  {
   
         if (vn_lock(vp, LK_EXCLUSIVE) != 0) {          vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
                 VSTATE_ASSERT(vp, VS_RECLAIMED);  
                 vrele(vp);  
         }  
   
         mutex_enter(vp->v_interlock);          mutex_enter(vp->v_interlock);
         vcache_reclaim(vp);          VSTATE_WAIT_STABLE(vp);
           if (VSTATE_GET(vp) == VS_ACTIVE)
                   vcache_reclaim(vp);
           VSTATE_ASSERT(vp, VS_RECLAIMED);
         vrelel(vp, 0);          vrelel(vp, 0);
 }  }
   

Legend:
Removed from v.1.75  
changed lines
  Added in v.1.76

CVSweb <webmaster@jp.NetBSD.org>