[Ocfs2-tools-commits] mfasheh commits r331 - trunk/mkfs.ocfs2
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Thu Oct 14 21:10:09 CDT 2004
Author: mfasheh
Date: 2004-10-14 21:10:07 -0500 (Thu, 14 Oct 2004)
New Revision: 331
Modified:
trunk/mkfs.ocfs2/mkfs.c
Log:
* add a journal size option to mkfs
Modified: trunk/mkfs.ocfs2/mkfs.c
===================================================================
--- trunk/mkfs.ocfs2/mkfs.c 2004-10-14 18:03:48 UTC (rev 330)
+++ trunk/mkfs.ocfs2/mkfs.c 2004-10-15 02:10:07 UTC (rev 331)
@@ -209,6 +209,8 @@
unsigned int initial_nodes;
+ uint64_t journal_size_in_bytes;
+
char *vol_label;
char *device_name;
char *uuid;
@@ -474,7 +476,7 @@
for (j = 0; j < num; j++) {
tmprec = &(record[i][j]);
if (system_files[i].type == SFI_JOURNAL) {
- alloc_bytes_from_bitmap(s, OCFS2_DEFAULT_JOURNAL_SIZE,
+ alloc_bytes_from_bitmap(s, s->journal_size_in_bytes,
s->global_bm,
&(tmprec->extent_off),
&(tmprec->extent_len));
@@ -528,6 +530,8 @@
char *device_name;
int ret;
uint64_t val;
+ uint64_t journal_size_in_bytes = 0;
+ uint64_t max_journal_size = 500 * ONE_MEGA_BYTE;
static struct option long_options[] = {
{ "blocksize", 1, 0, 'b' },
@@ -537,6 +541,7 @@
{ "verbose", 0, 0, 'v' },
{ "quiet", 0, 0, 'q' },
{ "version", 0, 0, 'V' },
+ { "journalsize", 0, 0, 'j'},
{ 0, 0, 0, 0}
};
@@ -546,7 +551,8 @@
progname = strdup("mkfs.ocfs2");
while (1) {
- c = getopt_long(argc, argv, "b:c:L:n:vqV", long_options, NULL);
+ c = getopt_long(argc, argv, "b:c:L:n:j:vqV", long_options,
+ NULL);
if (c == -1)
break;
@@ -617,6 +623,25 @@
break;
+ case 'j':
+ ret = get_number(optarg, &val);
+
+ if (ret ||
+ val < OCFS2_MIN_JOURNAL_SIZE ||
+ val > max_journal_size) {
+ com_err(progname, 0,
+ "Invalid journal size %s: "
+ "must be between %d and %d bytes",
+ optarg,
+ OCFS2_MIN_JOURNAL_SIZE,
+ max_journal_size);
+ exit(1);
+ }
+
+ journal_size_in_bytes = val;
+
+ break;
+
case 'v':
verbose = 1;
break;
@@ -683,6 +708,8 @@
s->format_time = time(NULL);
+ s->journal_size_in_bytes = journal_size_in_bytes;
+
return s;
}
@@ -733,7 +760,7 @@
usage(const char *progname)
{
fprintf(stderr, "Usage: %s [-b blocksize] [-c cluster-size] [-L volume-label]\n"
- "\t[-n number-of-nodes] [-qvV] device [blocks-count]\n",
+ "\t[-n number-of-nodes] [-j journal-size] [-qvV] device [blocks-count]\n",
progname);
exit(0);
}
@@ -825,6 +852,9 @@
if (!s->vol_label) {
s->vol_label = strdup("");
}
+
+ if (!s->journal_size_in_bytes)
+ s->journal_size_in_bytes = OCFS2_DEFAULT_JOURNAL_SIZE;
}
static int
@@ -1447,8 +1477,8 @@
journal_superblock_t *sb;
void *buf;
- buf = do_malloc(s, OCFS2_DEFAULT_JOURNAL_SIZE);
- memset(buf, 0, OCFS2_DEFAULT_JOURNAL_SIZE);
+ buf = do_malloc(s, s->journal_size_in_bytes);
+ memset(buf, 0, s->journal_size_in_bytes);
sb = buf;
@@ -1457,7 +1487,7 @@
sb->s_blocksize = cpu_to_be32(s->blocksize);
sb->s_maxlen =
- cpu_to_be32(OCFS2_DEFAULT_JOURNAL_SIZE >> s->blocksize_bits);
+ cpu_to_be32(s->journal_size_in_bytes >> s->blocksize_bits);
if (s->blocksize == 512)
sb->s_first = htonl(2);
@@ -1468,7 +1498,7 @@
sb->s_sequence = htonl(1);
sb->s_errno = htonl(0);
- do_pwrite(s, buf, OCFS2_DEFAULT_JOURNAL_SIZE, journal_off);
+ do_pwrite(s, buf, s->journal_size_in_bytes, journal_off);
free(buf);
}
More information about the Ocfs2-tools-commits
mailing list