Module Name:    src
Committed By:   perseant
Date:           Thu Feb  2 03:50:32 UTC 2012

Modified Files:
        src/sbin/newfs_lfs: config.h make_lfs.c

Log Message:
When creating a very small filesystem, use well-known small segment,
block and fragment sizes by default instead of the ordinary 1M/8k/1k
default for larger filesystems.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sbin/newfs_lfs/config.h
cvs rdiff -u -r1.17 -r1.18 src/sbin/newfs_lfs/make_lfs.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sbin/newfs_lfs/config.h
diff -u src/sbin/newfs_lfs/config.h:1.8 src/sbin/newfs_lfs/config.h:1.9
--- src/sbin/newfs_lfs/config.h:1.8	Wed Dec 17 05:08:43 2003
+++ src/sbin/newfs_lfs/config.h	Thu Feb  2 03:50:32 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: config.h,v 1.8 2003/12/17 05:08:43 yamt Exp $	*/
+/*	$NetBSD: config.h,v 1.9 2012/02/02 03:50:32 perseant Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -40,7 +40,7 @@
  * 1/DFL_MIN_FREE_SEGS gives the fraction of segments to be reserved for
  * the cleaner.
  */
-#define DFL_MIN_FREE_SEGS 20
+#define DFL_MIN_FREE_SEGS 10
 
 /*
  * MINFREE gives the minimum acceptable percentage of file system
@@ -69,3 +69,8 @@
 #define DFL_LFS_FFSHIFT		10
 #define DFL_LFS_FBMASK		0x7
 #define DFL_LFS_FBSHIFT		3
+
+#define SMALL_FSSIZE		65536 /* sectors */
+#define SMALL_LFSSEG		32768
+#define SMALL_LFSBLOCK		1024
+#define SMALL_LFSFRAG		512

Index: src/sbin/newfs_lfs/make_lfs.c
diff -u src/sbin/newfs_lfs/make_lfs.c:1.17 src/sbin/newfs_lfs/make_lfs.c:1.18
--- src/sbin/newfs_lfs/make_lfs.c:1.17	Tue Jan 17 16:27:19 2012
+++ src/sbin/newfs_lfs/make_lfs.c	Thu Feb  2 03:50:32 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: make_lfs.c,v 1.17 2012/01/17 16:27:19 perseant Exp $	*/
+/*	$NetBSD: make_lfs.c,v 1.18 2012/02/02 03:50:32 perseant Exp $	*/
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
 #if 0
 static char sccsid[] = "@(#)lfs.c	8.5 (Berkeley) 5/24/95";
 #else
-__RCSID("$NetBSD: make_lfs.c,v 1.17 2012/01/17 16:27:19 perseant Exp $");
+__RCSID("$NetBSD: make_lfs.c,v 1.18 2012/02/02 03:50:32 perseant Exp $");
 #endif
 #endif /* not lint */
 
@@ -355,12 +355,20 @@ make_lfs(int devfd, uint secsize, struct
 		    "expected \"%s\"", dkw->dkw_ptype, DKW_PTYPE_LFS);
 	}
 
-	if (!(bsize = block_size))
+	if (!(bsize = block_size)) {
 		bsize = DFL_LFSBLOCK;
-	if (!(fsize = frag_size))
+		if (dkw->dkw_size <= SMALL_FSSIZE)
+			bsize = SMALL_LFSBLOCK;
+	}
+	if (!(fsize = frag_size)) {
 		fsize = DFL_LFSFRAG;
+		if (dkw->dkw_size <= SMALL_FSSIZE)
+			fsize = SMALL_LFSFRAG;
+	}
 	if (!(ssize = seg_size)) {
 		ssize = DFL_LFSSEG;
+		if (dkw->dkw_size <= SMALL_FSSIZE)
+			ssize = SMALL_LFSSEG;
 	}
 	if (version > 1) {
 		if (ibsize == 0)
@@ -511,7 +519,7 @@ make_lfs(int devfd, uint secsize, struct
 			"segment size.\n", ssize, fs->lfs_bsize);
 	}
 	if(warned_segtoobig)
-		fprintf(stderr,"Using segment size %d.\n", ssize);
+		fprintf(stderr,"Using segment size %d, block size %d, frag size %d.\n", ssize, bsize, fsize);
 
 	/*
 	 * Now that we've determined what we're going to do, announce it

Reply via email to