[Ocfs-tools-commits] manish commits r185 - trunk/ocfs2/mkfs.ocfs2
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Thu Jul 22 19:39:44 CDT 2004
Author: manish
Date: 2004-07-22 18:39:42 -0500 (Thu, 22 Jul 2004)
New Revision: 185
Modified:
trunk/ocfs2/mkfs.ocfs2/mkfs.c
Log:
Informational messages
Modified: trunk/ocfs2/mkfs.ocfs2/mkfs.c
===================================================================
--- trunk/ocfs2/mkfs.ocfs2/mkfs.c 2004-07-22 22:41:55 UTC (rev 184)
+++ trunk/ocfs2/mkfs.ocfs2/mkfs.c 2004-07-22 23:39:42 UTC (rev 185)
@@ -203,6 +203,7 @@
static State *get_state (int argc, char **argv);
+static int get_number(char *arg, uint64_t *res);
static void usage(const char *progname);
static void version(const char *progname);
static void fill_defaults(State *s);
@@ -241,6 +242,7 @@
static void generate_uuid(State *s);
static void write_autoconfig_header(State *s, SystemFileDiskRecord *rec);
static void init_record(State *s, SystemFileDiskRecord *rec, int type, int dir);
+static void print_state(State *s);
extern char *optarg;
@@ -290,6 +292,8 @@
generate_uuid (s);
+ print_state (s);
+
init_record(s, &global_alloc_rec, SFI_OTHER, 0);
global_alloc_rec.extent_off = 0;
global_alloc_rec.extent_len = s->volume_size_in_bytes;
@@ -456,6 +460,8 @@
int verbose = 0, quiet = 0;
int show_version = 0;
char *device_name;
+ int ret;
+ uint64_t val;
static struct option long_state[] = {
{ "blocksize", 1, 0, 'b' },
@@ -482,11 +488,11 @@
switch (c) {
case 'b':
- blocksize = strtoul(optarg, &dummy, 0);
+ ret = get_number(optarg, &val);
- if (blocksize < OCFS2_MIN_BLOCKSIZE ||
- blocksize > OCFS2_MAX_BLOCKSIZE ||
- *dummy != '\0') {
+ if (ret ||
+ val < OCFS2_MIN_BLOCKSIZE ||
+ val > OCFS2_MAX_BLOCKSIZE) {
com_err(progname, 0,
"Invalid blocksize %s: "
"must be between %d and %d",
@@ -496,17 +502,19 @@
exit(1);
}
+ blocksize = (unsigned int) val;
break;
case 'c':
- cluster_size = strtoul(optarg, &dummy, 0);
+ ret = get_number(optarg, &val);
- if (*dummy != '\0') {
+ if (ret) {
com_err(progname, 0,
"Invalid cluster size %s", optarg);
exit(1);
}
+ cluster_size = (unsigned int) val;
break;
case 'L':
@@ -607,6 +615,49 @@
return s;
}
+static int
+get_number(char *arg, uint64_t *res)
+{
+ char *ptr = NULL;
+ uint64_t num;
+
+ num = strtoull(arg, &ptr, 0);
+
+ if ((ptr == arg) || (num == UINT64_MAX))
+ return(-EINVAL);
+
+ switch (*ptr) {
+ case '\0':
+ break;
+
+ case 'g':
+ case 'G':
+ num *= 1024;
+ /* FALL THROUGH */
+
+ case 'm':
+ case 'M':
+ num *= 1024;
+ /* FALL THROUGH */
+
+ case 'k':
+ case 'K':
+ num *= 1024;
+ /* FALL THROUGH */
+
+ case 'b':
+ case 'B':
+ break;
+
+ default:
+ return -EINVAL;
+ }
+
+ *res = num;
+
+ return 0;
+}
+
static void
usage(const char *progname)
{
@@ -641,8 +692,7 @@
s->pagesize_bits = get_bits(s, pagesize);
if (!s->blocksize) {
- //s->blocksize = 1024;
- s->blocksize = 512;
+ s->blocksize = 1024;
}
s->blocksize_bits = get_bits(s, s->blocksize);
@@ -1176,9 +1226,9 @@
else
sb->s_first = htonl(1);
- sb->s_start = htonl(1);
- sb->s_sequence = htonl(1);
- sb->s_errno = htonl(0);
+ sb->s_start = htonl(1);
+ sb->s_sequence = htonl(1);
+ sb->s_errno = htonl(0);
do_pwrite(s, buf, OCFS2_DEFAULT_JOURNAL_SIZE, journal_off);
free(buf);
@@ -1299,3 +1349,18 @@
break;
}
}
+
+static void
+print_state(State *s)
+{
+ if (s->quiet)
+ return;
+
+ printf("Filesystem label=%s\n", s->vol_label);
+ printf("Block size=%u (bits=%u)\n", s->blocksize, s->blocksize_bits);
+ printf("Cluster size=%u (bits=%u)\n", s->cluster_size, s->cluster_size_bits);
+ printf("Volume size=%llu (%u clusters)\n",
+ (unsigned long long) s->volume_size_in_bytes,
+ s->volume_size_in_clusters);
+ printf("Initial number of nodes: %u\n", s->initial_nodes);
+}
More information about the Ocfs-tools-commits
mailing list