Move parse_size() to utils.[hc]
authorGoffredo Baroncelli <kreijack@gmail.com>
Mon, 29 Oct 2012 17:53:17 +0000 (18:53 +0100)
committerDavid Sterba <dsterba@suse.cz>
Thu, 17 Jan 2013 17:27:54 +0000 (18:27 +0100)
Move the function from cmds-filesystem.c and mkfs.c to utils.c

Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it>
cmds-filesystem.c
mkfs.c
utils.c
utils.h

index 9c43d35..507239a 100644 (file)
@@ -311,32 +311,6 @@ static int cmd_sync(int argc, char **argv)
        return 0;
 }
 
-static u64 parse_size(char *s)
-{
-       int len = strlen(s);
-       char c;
-       u64 mult = 1;
-
-       if (!isdigit(s[len - 1])) {
-               c = tolower(s[len - 1]);
-               switch (c) {
-               case 'g':
-                       mult *= 1024;
-               case 'm':
-                       mult *= 1024;
-               case 'k':
-                       mult *= 1024;
-               case 'b':
-                       break;
-               default:
-                       fprintf(stderr, "Unknown size descriptor %c\n", c);
-                       exit(1);
-               }
-               s[len - 1] = '\0';
-       }
-       return atoll(s) * mult;
-}
-
 static int parse_compress_type(char *s)
 {
        if (strcmp(optarg, "zlib") == 0)
diff --git a/mkfs.c b/mkfs.c
index 7b72926..fbf8319 100644 (file)
--- a/mkfs.c
+++ b/mkfs.c
@@ -55,37 +55,6 @@ struct directory_name_entry {
        struct list_head list;
 };
 
-static u64 parse_size(char *s)
-{
-       int len = strlen(s);
-       char c;
-       u64 mult = 1;
-       u64 ret;
-
-       s = strdup(s);
-
-       if (len && !isdigit(s[len - 1])) {
-               c = tolower(s[len - 1]);
-               switch (c) {
-               case 'g':
-                       mult *= 1024;
-               case 'm':
-                       mult *= 1024;
-               case 'k':
-                       mult *= 1024;
-               case 'b':
-                       break;
-               default:
-                       fprintf(stderr, "Unknown size descriptor %c\n", c);
-                       exit(1);
-               }
-               s[len - 1] = '\0';
-       }
-       ret = atol(s) * mult;
-       free(s);
-       return ret;
-}
-
 static int make_root_dir(struct btrfs_root *root, int mixed)
 {
        struct btrfs_trans_handle *trans;
diff --git a/utils.c b/utils.c
index 205e667..705be7b 100644 (file)
--- a/utils.c
+++ b/utils.c
@@ -1220,3 +1220,29 @@ scan_again:
        return 0;
 }
 
+u64 parse_size(char *s)
+{
+       int len = strlen(s);
+       char c;
+       u64 mult = 1;
+
+       if (!isdigit(s[len - 1])) {
+               c = tolower(s[len - 1]);
+               switch (c) {
+               case 'g':
+                       mult *= 1024;
+               case 'm':
+                       mult *= 1024;
+               case 'k':
+                       mult *= 1024;
+               case 'b':
+                       break;
+               default:
+                       fprintf(stderr, "Unknown size descriptor %c\n", c);
+                       exit(1);
+               }
+               s[len - 1] = '\0';
+       }
+       return atoll(s) * mult;
+}
+
diff --git a/utils.h b/utils.h
index 3a0368b..714fd7a 100644 (file)
--- a/utils.h
+++ b/utils.h
@@ -46,4 +46,6 @@ int check_label(char *input);
 int get_mountpt(char *dev, char *mntpt, size_t size);
 
 int btrfs_scan_block_devices(int run_ioctl);
+
+u64 parse_size(char *s);
 #endif