[Cluster-devel] cluster/gfs2 convert/gfs2_convert.c libgfs2/st ...
rpeterso at sourceware.org
rpeterso at sourceware.org
Wed Jun 6 15:19:56 UTC 2007
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: rpeterso at sourceware.org 2007-06-06 15:19:56
Modified files:
gfs2/convert : gfs2_convert.c
gfs2/libgfs2 : structures.c
gfs2/man : mkfs.gfs2.8
gfs2/mkfs : main_mkfs.c
Log message:
Resolves: Bugzilla Bug 242056: GFS2 needs block sizes < 4k (mkfs changes)
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/convert/gfs2_convert.c.diff?cvsroot=cluster&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/libgfs2/structures.c.diff?cvsroot=cluster&r1=1.8&r2=1.9
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/man/mkfs.gfs2.8.diff?cvsroot=cluster&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/mkfs/main_mkfs.c.diff?cvsroot=cluster&r1=1.13&r2=1.14
--- cluster/gfs2/convert/gfs2_convert.c 2007/05/01 16:43:38 1.9
+++ cluster/gfs2/convert/gfs2_convert.c 2007/06/06 15:19:55 1.10
@@ -773,17 +773,6 @@
close(sbp->device_fd);
exit(-1);
}
- if (sbp->sd_sb.sb_bsize != GFS2_DEFAULT_BSIZE) {
- log_crit("Error: GFS2 only supports a 4K block size.\n");
- log_crit("Volume %s has a block size of ", device);
- if (!(sbp->sd_sb.sb_bsize % 1024)) /* if even K boundary */
- log_crit("%dK bytes.\n", sbp->sd_sb.sb_bsize / 1024);
- else
- log_crit("%d bytes.\n", sbp->sd_sb.sb_bsize);
- log_crit("This file system cannot be converted with this tool.\n");
- close(sbp->device_fd);
- exit(-1);
- }
/* get gfs1 rindex inode - gfs1's rindex inode ptr became __pad2 */
gfs2_inum_in(&inum, (char *)&raw_gfs1_ondisk_sb.sb_rindex_di);
sbp->md.riinode = gfs2_load_inode(sbp, inum.no_addr);
--- cluster/gfs2/libgfs2/structures.c 2007/05/15 18:11:10 1.8
+++ cluster/gfs2/libgfs2/structures.c 2007/06/06 15:19:55 1.9
@@ -55,7 +55,7 @@
/* Zero out the beginning of the device up to the superblock */
for (x = 0; x < sdp->sb_addr; x++) {
bh = bget(sdp, x);
- memset(bh->b_data, 0, GFS2_DEFAULT_BSIZE);
+ memset(bh->b_data, 0, sdp->bsize);
bh->b_uninit = TRUE;
brelse(bh, updated);
}
--- cluster/gfs2/man/mkfs.gfs2.8 2006/12/19 17:49:53 1.4
+++ cluster/gfs2/man/mkfs.gfs2.8 2007/06/06 15:19:55 1.5
@@ -15,6 +15,14 @@
.SH OPTIONS
.TP
+\fB-b\fP \fIBlockSize\fR
+Set the filesystem block size to \fIBlockSize\fR (must be a power of
+two). The minimum block size is 512. The FS block size cannot exceed
+the machine's memory page size. On the most architectures (i386,
+x86_64, s390, s390x), the memory page size is 4096 bytes. On other
+architectures it may be bigger. The default block size is 4096 bytes.
+In general, GFS2 filesystems should not deviate from the default value.
+.TP
\fB-c MegaBytes\fP
Initial size of each journal's quota change file
.TP
--- cluster/gfs2/mkfs/main_mkfs.c 2007/05/10 15:47:45 1.13
+++ cluster/gfs2/mkfs/main_mkfs.c 2007/06/06 15:19:56 1.14
@@ -58,6 +58,7 @@
printf("\n");
printf("Options:\n");
printf("\n");
+ printf(" -b <bytes> Filesystem block size\n");
printf(" -c <MB> Size of quota change file\n");
printf(" -D Enable debugging code\n");
printf(" -h Print this help, then exit\n");
@@ -91,9 +92,12 @@
strcpy(sdp->lockproto, "lock_nolock");
while (cont) {
- optchar = getopt(argc, argv, "-c:DhJ:j:Op:qr:t:u:VX");
+ optchar = getopt(argc, argv, "-b:c:DhJ:j:Op:qr:t:u:VX");
switch (optchar) {
+ case 'b':
+ sdp->bsize = atoi(optarg);
+ break;
case 'c':
sdp->qcsize = atoi(optarg);
@@ -192,6 +196,7 @@
if (sdp->debug) {
printf("Command Line Arguments:\n");
+ printf(" bsize = %u\n", sdp->bsize);
printf(" qcsize = %u\n", sdp->qcsize);
printf(" jsize = %u\n", sdp->jsize);
printf(" journals = %u\n", sdp->md.journals);
More information about the Cluster-devel
mailing list