cvs commit: src/sys/ufs/ffs ffs_snapshot.c

Jeff Roberson jeff at
Mon Mar 31 00:47:08 PDT 2008

jeff        2008-03-31 07:47:08 UTC

  FreeBSD src repository

  Modified files:
    sys/ufs/ffs          ffs_snapshot.c 
   - Don't free snapdata structures when they are no longer in use.
     Keeping the lockmgr lock valid allows us to switch the v_lock pointer
     in snapshot vnodes between the embedded lockmgr lock and snapdata
     lock without needing the vnode interlock to protect against races
   - Keep unused snapdata structures in a list.
   - Add a function to lock the devvp and allocate a snapdata to it or
     acquire a new one without races.  The old function was safe from
     creation races because we set the mount flag when creating snapshots
     and thus serializing them.  However, it might have been subject to
     destroying races.
  Reviewed by:    tegge
  Revision  Changes    Path
  1.142     +109 -67   src/sys/ufs/ffs/ffs_snapshot.c

More information about the cvs-src mailing list