svn commit: r207105 - projects/suj/head/sys/ufs/ffs

Jeff Roberson jeff at FreeBSD.org
Fri Apr 23 08:49:38 UTC 2010


Author: jeff
Date: Fri Apr 23 08:49:38 2010
New Revision: 207105
URL: http://svn.freebsd.org/changeset/base/207105

Log:
   - Don't call softdep_setup routines on snapshot copies of filesystems.
     This leads to strange panics as we believe inodes and blocks are being
     freed on the real fs.

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

Modified: projects/suj/head/sys/ufs/ffs/ffs_alloc.c
==============================================================================
--- projects/suj/head/sys/ufs/ffs/ffs_alloc.c	Fri Apr 23 08:49:16 2010	(r207104)
+++ projects/suj/head/sys/ufs/ffs/ffs_alloc.c	Fri Apr 23 08:49:38 2010	(r207105)
@@ -1973,7 +1973,7 @@ ffs_blkfree(ump, fs, devvp, bno, size, i
 	ACTIVECLEAR(fs, cg);
 	UFS_UNLOCK(ump);
 	mp = UFSTOVFS(ump);
-	if (mp->mnt_flag & MNT_SOFTDEP)
+	if (mp->mnt_flag & MNT_SOFTDEP && devvp->v_type != VREG)
 		softdep_setup_blkfree(UFSTOVFS(ump), bp, bno,
 		    numfrags(fs, size), dephd);
 	bdwrite(bp);
@@ -2118,7 +2118,7 @@ ffs_freefile(ump, fs, devvp, ino, mode, 
 	fs->fs_fmod = 1;
 	ACTIVECLEAR(fs, cg);
 	UFS_UNLOCK(ump);
-	if (UFSTOVFS(ump)->mnt_flag & MNT_SOFTDEP)
+	if (UFSTOVFS(ump)->mnt_flag & MNT_SOFTDEP && devvp->v_type != VREG)
 		softdep_setup_inofree(UFSTOVFS(ump), bp,
 		    ino + cg * fs->fs_ipg, wkhd);
 	bdwrite(bp);


More information about the svn-src-projects mailing list