Author: mckusick
Date: Sun Jul 10 05:34:49 2011
New Revision: 223902
URL: http://svn.freebsd.org/changeset/base/223902

Log:
  When first creating snapshots, we may free some blocks within it.
  These blocks should not have TRIM applied to them.
  
  Submitted by: Kostik Belousov

Modified:
  head/sys/ufs/ffs/ffs_alloc.c

Modified: head/sys/ufs/ffs/ffs_alloc.c
==============================================================================
--- head/sys/ufs/ffs/ffs_alloc.c        Sun Jul 10 00:53:04 2011        
(r223901)
+++ head/sys/ufs/ffs/ffs_alloc.c        Sun Jul 10 05:34:49 2011        
(r223902)
@@ -2038,7 +2038,11 @@ ffs_blkfree(ump, fs, devvp, bno, size, i
            ffs_snapblkfree(fs, devvp, bno, size, inum, vtype, dephd)) {
                return;
        }
-       if (!ump->um_candelete) {
+       /*
+        * Nothing to delay if TRIM is disabled, or the operation is
+        * performed on the snapshot.
+        */
+       if (!ump->um_candelete || devvp->v_type == VREG) {
                ffs_blkfree_cg(ump, fs, devvp, bno, size, inum, dephd);
                return;
        }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to