Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Mar 2005 13:49:33 +0000 (UTC)
From:      Jeff Roberson <jeff@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/fs/nullfs null.h null_subr.c null_vnops.c
Message-ID:  <200503151349.j2FDnXXK067630@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jeff        2005-03-15 13:49:33 UTC

  FreeBSD src repository

  Modified files:
    sys/fs/nullfs        null.h null_subr.c null_vnops.c 
  Log:
   - Assume that all lower filesystems now support proper locking.  Assert
     that they set v->v_vnlock.  This is true for all filesystems in the
     tree.
   - Remove all uses of LK_THISLAYER.  If the lower layer is locked, the
     null layer is locked.  We only use vget() to get a reference now.
     null essentially does no locking.  This fixes LOOKUP_SHARED with
     nullfs.
   - Remove the special LK_DRAIN considerations, I do not believe this is
     needed now as LK_DRAIN doesn't destroy the lower vnode's lock, and
     it's hardly used anymore.
   - Add one well commented hack to prevent the lowervp from going away
     while we're in it's VOP_LOCK routine.  This can only happen if we're
     forcibly unmounted while some callers are waiting in the lock.  In
     this case the lowervp could be recycled after we drop our last ref
     in null_reclaim().  Prevent this with a vhold().
  
  Revision  Changes    Path
  1.23      +0 -2      src/sys/fs/nullfs/null.h
  1.47      +22 -58    src/sys/fs/nullfs/null_subr.c
  1.85      +41 -130   src/sys/fs/nullfs/null_vnops.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503151349.j2FDnXXK067630>