svn commit: r224027 - head/sys/ufs/ffs
Kirk McKusick
mckusick at FreeBSD.org
Thu Jul 14 18:06:14 UTC 2011
Author: mckusick
Date: Thu Jul 14 18:06:13 2011
New Revision: 224027
URL: http://svn.freebsd.org/changeset/base/224027
Log:
Consistently check mount flag (MNTK_SUJ) rather than superblock
flag (FS_SUJ) when determining whether to do journaling-based
operations. The mount flag is set only when journaling is active
while the superblock flag is set to indicate that journaling is to
be used. For example, when the filesystem is mounted read-only, the
journaling may be present (FS_SUJ) but not active (MNTK_SUJ).
Inappropriate checking of the FS_SUJ flag was causing some
journaling actions to be attempted at inappropriate times.
Modified:
head/sys/ufs/ffs/ffs_softdep.c
Modified: head/sys/ufs/ffs/ffs_softdep.c
==============================================================================
--- head/sys/ufs/ffs/ffs_softdep.c Thu Jul 14 17:50:16 2011 (r224026)
+++ head/sys/ufs/ffs/ffs_softdep.c Thu Jul 14 18:06:13 2011 (r224027)
@@ -5199,7 +5199,7 @@ newfreefrag(ip, blkno, size, lbn)
freefrag->ff_blkno = blkno;
freefrag->ff_fragsize = size;
- if (fs->fs_flags & FS_SUJ) {
+ if ((ip->i_ump->um_mountp->mnt_kern_flag & MNTK_SUJ) != 0) {
freefrag->ff_jdep = (struct worklist *)
newjfreefrag(freefrag, ip, blkno, size, lbn);
} else {
@@ -8928,7 +8928,7 @@ softdep_setup_sbupdate(ump, fs, bp)
struct sbdep *sbdep;
struct worklist *wk;
- if ((fs->fs_flags & FS_SUJ) == 0)
+ if ((ump->um_mountp->mnt_kern_flag & MNTK_SUJ) == 0)
return;
LIST_FOREACH(wk, &bp->b_dep, wk_list)
if (wk->wk_type == D_SBDEP)
More information about the svn-src-head
mailing list