Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 May 2010 16:18:06 -1000 (HST)
From:      Jeff Roberson <jroberson@jroberson.net>
To:        current@freebsd.org
Subject:   SUJ Changes
Message-ID:  <alpine.BSF.2.00.1005171616390.1398@desktop>

next in thread | raw e-mail | index | archive | help
I fixed the sparse inode tunefs bug and changed the tunefs behavior based 
on discussions here on current@.  Hopefully this works for everyone.

I have one bad perf bug and one journal overflow bug left to resolve. 
Please keeps the reports coming and thank you for your help.

Thanks,
Jeff

---------- Forwarded message ----------
Date: Tue, 18 May 2010 01:45:28 +0000 (UTC)
From: Jeff Roberson <jeff@FreeBSD.org>
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
     svn-src-head@freebsd.org
Subject: svn commit: r208241 - head/sbin/tunefs

Author: jeff
Date: Tue May 18 01:45:28 2010
New Revision: 208241
URL: http://svn.freebsd.org/changeset/base/208241

Log:
    - Round up the journal size to the block size so we don't confuse fsck.

   Reported by:	Mikolaj Golub <to.my.trociny@gmail.com>

    - Only require 256k of blocks per-cg when trying to allocate contiguous
      journal blocks.  The storage may not actually be contiguous but is at
      least within one cg.
    - When disabling SUJ leave SU enabled and report this to the user.  It
      is expected that users will upgrade SU filesystems to SUJ and want
      a similar downgrade path.

Modified:
   head/sbin/tunefs/tunefs.c

Modified: head/sbin/tunefs/tunefs.c
==============================================================================
--- head/sbin/tunefs/tunefs.c	Tue May 18 00:46:15 2010	(r208240)
+++ head/sbin/tunefs/tunefs.c	Tue May 18 01:45:28 2010	(r208241)
@@ -358,10 +358,12 @@ main(int argc, char *argv[])
  				warnx("%s remains unchanged as disabled", name);
  			} else {
  				journal_clear();
- 				sblock.fs_flags &= ~(FS_DOSOFTDEP | FS_SUJ);
+ 				sblock.fs_flags &= ~FS_SUJ;
  				sblock.fs_sujfree = 0;
- 				warnx("%s cleared, "
-				    "remove .sujournal to reclaim space", name);
+ 				warnx("%s cleared but soft updates still set.",
+				    name);
+
+				warnx("remove .sujournal to reclaim space");
  			}
   		}
  	}
@@ -546,7 +548,7 @@ journal_balloc(void)
  			 * Try to minimize fragmentation by requiring a minimum
  			 * number of blocks present.
  			 */
-			if (cgp->cg_cs.cs_nbfree > 128 * 1024 * 1024)
+			if (cgp->cg_cs.cs_nbfree > 256 * 1024)
  				break;
  			if (contig == 0 && cgp->cg_cs.cs_nbfree)
  				break;
@@ -906,6 +908,8 @@ journal_alloc(int64_t size)
  		if (size / sblock.fs_fsize > sblock.fs_fpg)
  			size = sblock.fs_fpg * sblock.fs_fsize;
  		size = MAX(SUJ_MIN, size);
+		/* fsck does not support fragments in journal files. */
+		size = roundup(size, sblock.fs_bsize);
  	}
  	resid = blocks = size / sblock.fs_bsize;
  	if (sblock.fs_cstotal.cs_nbfree < blocks) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1005171616390.1398>