mkfs_minix, fsck_minix: code shrink
No binary (build failed)
—
(log yok)
| @@ -121,8 +121,9 @@ enum { version2 = 0 }; | |
| enum { MAX_DEPTH = 32 }; | |
| + | enum { dev_fd = 3 }; |
| + | |
| struct globals { | |
| - | int dev_fd; |
| #if ENABLE_FEATURE_MINIX2 | |
| smallint version2; | |
| #endif | |
| @@ -158,7 +159,6 @@ struct globals { | |
| }; | |
| #define G (*ptr_to_globals) | |
| - | #define dev_fd (G.dev_fd ) |
| #if ENABLE_FEATURE_MINIX2 | |
| #define version2 (G.version2 ) | |
| #endif | |
| @@ -1223,7 +1223,7 @@ int fsck_minix_main(int argc ATTRIBUTE_UNUSED, char **argv) | |
| if (!isatty(0) || !isatty(1)) | |
| die("need terminal for interactive repairs"); | |
| } | |
| - | dev_fd = xopen(device_name, OPT_repair ? O_RDWR : O_RDONLY); |
| + | xmove_fd(xopen(device_name, OPT_repair ? O_RDWR : O_RDONLY), dev_fd); |
| /*sync(); paranoia? */ | |
| read_superblock(); | |
| @@ -88,9 +88,9 @@ enum { | |
| enum { version2 = 0 }; | |
| #endif | |
| - | struct globals { |
| - | int dev_fd; |
| + | enum { dev_fd = 3 }; |
| + | struct globals { |
| #if ENABLE_FEATURE_MINIX2 | |
| smallint version2; | |
| #define version2 G.version2 | |
| @@ -240,33 +240,33 @@ static void write_tables(void) | |
| SB.s_state &= ~MINIX_ERROR_FS; | |
| msg_eol = "seek to 0 failed"; | |
| - | xlseek(G.dev_fd, 0, SEEK_SET); |
| + | xlseek(dev_fd, 0, SEEK_SET); |
| msg_eol = "cannot clear boot sector"; | |
| - | xwrite(G.dev_fd, G.boot_block_buffer, 512); |
| + | xwrite(dev_fd, G.boot_block_buffer, 512); |
| msg_eol = "seek to BLOCK_SIZE failed"; | |
| - | xlseek(G.dev_fd, BLOCK_SIZE, SEEK_SET); |
| + | xlseek(dev_fd, BLOCK_SIZE, SEEK_SET); |
| msg_eol = "cannot write superblock"; | |
| - | xwrite(G.dev_fd, G.super_block_buffer, BLOCK_SIZE); |
| + | xwrite(dev_fd, G.super_block_buffer, BLOCK_SIZE); |
| msg_eol = "cannot write inode map"; | |
| - | xwrite(G.dev_fd, G.inode_map, SB_IMAPS * BLOCK_SIZE); |
| + | xwrite(dev_fd, G.inode_map, SB_IMAPS * BLOCK_SIZE); |
| msg_eol = "cannot write zone map"; | |
| - | xwrite(G.dev_fd, G.zone_map, SB_ZMAPS * BLOCK_SIZE); |
| + | xwrite(dev_fd, G.zone_map, SB_ZMAPS * BLOCK_SIZE); |
| msg_eol = "cannot write inodes"; | |
| - | xwrite(G.dev_fd, G.inode_buffer, INODE_BUFFER_SIZE); |
| + | xwrite(dev_fd, G.inode_buffer, INODE_BUFFER_SIZE); |
| msg_eol = "\n"; | |
| } | |
| static void write_block(int blk, char *buffer) | |
| { | |
| - | xlseek(G.dev_fd, blk * BLOCK_SIZE, SEEK_SET); |
| - | xwrite(G.dev_fd, buffer, BLOCK_SIZE); |
| + | xlseek(dev_fd, blk * BLOCK_SIZE, SEEK_SET); |
| + | xwrite(dev_fd, buffer, BLOCK_SIZE); |
| } | |
| static int get_free_block(void) | |
| @@ -481,11 +481,11 @@ static size_t do_check(char *buffer, size_t try, unsigned current_block) | |
| /* Seek to the correct loc. */ | |
| msg_eol = "seek failed during testing of blocks"; | |
| - | xlseek(G.dev_fd, current_block * BLOCK_SIZE, SEEK_SET); |
| + | xlseek(dev_fd, current_block * BLOCK_SIZE, SEEK_SET); |
| msg_eol = "\n"; | |
| /* Try the read */ | |
| - | got = read(G.dev_fd, buffer, try * BLOCK_SIZE); |
| + | got = read(dev_fd, buffer, try * BLOCK_SIZE); |
| if (got < 0) | |
| got = 0; | |
| try = ((size_t)got) / BLOCK_SIZE; | |
| @@ -516,7 +516,7 @@ static void check_blocks(void) | |
| alarm(5); | |
| while (G.currently_testing < SB_ZONES) { | |
| msg_eol = "seek failed in check_blocks"; | |
| - | xlseek(G.dev_fd, G.currently_testing * BLOCK_SIZE, SEEK_SET); |
| + | xlseek(dev_fd, G.currently_testing * BLOCK_SIZE, SEEK_SET); |
| msg_eol = "\n"; | |
| try = TEST_BUFFER_BLOCKS; | |
| if (G.currently_testing + try > SB_ZONES) | |
| @@ -688,8 +688,8 @@ int mkfs_minix_main(int argc ATTRIBUTE_UNUSED, char **argv) | |
| "refusing to make a filesystem", | |
| G.device_name, mp->mnt_dir); | |
| - | G.dev_fd = xopen(G.device_name, O_RDWR); |
| - | if (fstat(G.dev_fd, &statbuf) < 0) |
| + | xmove_fd(xopen(G.device_name, O_RDWR), dev_fd); |
| + | if (fstat(dev_fd, &statbuf) < 0) |
| bb_error_msg_and_die("cannot stat %s", G.device_name); | |
| if (!S_ISBLK(statbuf.st_mode)) | |
| opt &= ~1; // clear -c (check) | |