blob: d8b22001597bb34cc190b13e82040eb6e4664711 [file] [log] [blame]
Theodore Ts'o24b2c7a1997-06-07 20:42:58 +00001/*
2 * main.c --- ext2 resizer main program
3 *
4 * Copyright (C) 1997 Theodore Ts'o
5 *
6 * %Begin-Header%
7 * All rights reserved.
8 * %End-Header%
9 */
10
11#include "resize2fs.h"
12
13#define E2FSPROGS_VERSION "1.10"
14#define E2FSPROGS_DATE "27-Apr-97"
15
16char *program_name, *device_name;
17
18static volatile void usage (char *program_name)
19{
20 fprintf (stderr, "usage: %s device new-size\n", program_name);
21 exit (1);
22}
23
24void main (int argc, char ** argv)
25{
26 errcode_t retval;
27 ext2_filsys fs;
28 int c;
29 blk_t new_size;
30 io_manager io_ptr;
31
32 fprintf (stderr, "resize2fs %s, %s for EXT2 FS %s, %s\n",
33 E2FSPROGS_VERSION, E2FSPROGS_DATE,
34 EXT2FS_VERSION, EXT2FS_DATE);
35 if (argc && *argv)
36 program_name = *argv;
37
38 while ((c = getopt (argc, argv, "h")) != EOF) {
39 switch (c) {
40 case 'h':
41 usage(program_name);
42 break;
43 default:
44 usage (program_name);
45 }
46 }
47 if (optind > argc - 2)
48 usage (program_name);
49 device_name = argv[optind++];
50 new_size = atoi(argv[optind++]);
51 initialize_ext2_error_table();
Theodore Ts'o1e1da291997-06-09 14:51:29 +000052#if 0
Theodore Ts'o24b2c7a1997-06-07 20:42:58 +000053 io_ptr = unix_io_manager;
54#else
55 io_ptr = test_io_manager;
56 test_io_backing_manager = unix_io_manager;
57#endif
Theodore Ts'o1e1da291997-06-09 14:51:29 +000058 retval = ext2fs_open (device_name, EXT2_FLAG_RW, 0, 0,
Theodore Ts'o24b2c7a1997-06-07 20:42:58 +000059 io_ptr, &fs);
60 if (retval) {
61 com_err (program_name, retval, "while trying to open %s",
62 device_name);
63 printf ("Couldn't find valid filesystem superblock.\n");
64 exit (1);
65 }
66 retval = ext2fs_read_bitmaps(fs);
67 if (retval) {
68 com_err (program_name, retval,
69 "while trying to read the bitmaps", device_name);
70 ext2fs_close (fs);
71 exit (1);
72 }
Theodore Ts'o1e1da291997-06-09 14:51:29 +000073 retval = resize_fs(fs, new_size);
74 if (retval) {
75 com_err(program_name, retval, "while trying to resize %s",
76 device_name);
77 ext2fs_close (fs);
78 }
Theodore Ts'o24b2c7a1997-06-07 20:42:58 +000079 exit (0);
80}