Author: mckusick
Date: Sun Jun 12 18:46:48 2011
New Revision: 223018
URL: http://svn.freebsd.org/changeset/base/223018

Log:
  Disable the soft updates journaling after a filesystem is successfully
  downgraded to read-only. It will be restarted if the filesystem is
  upgraded back to read-write.

Modified:
  head/sys/ufs/ffs/ffs_softdep.c
  head/sys/ufs/ffs/ffs_vfsops.c

Modified: head/sys/ufs/ffs/ffs_softdep.c
==============================================================================
--- head/sys/ufs/ffs/ffs_softdep.c      Sun Jun 12 18:01:31 2011        
(r223017)
+++ head/sys/ufs/ffs/ffs_softdep.c      Sun Jun 12 18:46:48 2011        
(r223018)
@@ -2386,8 +2386,15 @@ softdep_unmount(mp)
        struct mount *mp;
 {
 
-       if (mp->mnt_kern_flag & MNTK_SUJ)
-               journal_unmount(mp);
+       MNT_ILOCK(mp);
+       mp->mnt_flag &= ~MNT_SOFTDEP;
+       if ((mp->mnt_kern_flag & MNTK_SUJ) == 0) {
+               MNT_IUNLOCK(mp);
+               return;
+       }
+       mp->mnt_kern_flag &= ~MNTK_SUJ;
+       MNT_IUNLOCK(mp);
+       journal_unmount(mp);
 }
 
 struct jblocks {

Modified: head/sys/ufs/ffs/ffs_vfsops.c
==============================================================================
--- head/sys/ufs/ffs/ffs_vfsops.c       Sun Jun 12 18:01:31 2011        
(r223017)
+++ head/sys/ufs/ffs/ffs_vfsops.c       Sun Jun 12 18:46:48 2011        
(r223018)
@@ -269,6 +269,8 @@ ffs_mount(struct mount *mp)
                                vfs_write_resume(mp);
                                return (error);
                        }
+                       if (mp->mnt_flag & MNT_SOFTDEP)
+                               softdep_unmount(mp);
                        DROP_GIANT();
                        g_topology_lock();
                        g_access(ump->um_cp, 0, -1, 0);
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to