From e06f61d27345f3b9727d58d46da99a47614f5a60 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Wed, 25 Jun 2008 10:00:58 +0000 Subject: [PATCH] mkfs_minix, fsck_minix: code shrink function old new delta fsck_minix_main 3092 3094 +2 next 539 538 -1 get_free_block 165 164 -1 check_zone_nr2 121 120 -1 alarm_intr 94 93 -1 recursive_check2 587 583 -4 recursive_check 587 583 -4 mkfs_minix_main 2974 2968 -6 map_block 237 231 -6 map_block2 341 333 -8 bad_zone 64 56 -8 write_block 619 610 -9 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/11 up/down: 2/-49) Total: -47 bytes --- util-linux/fsck_minix.c | 6 +++--- util-linux/mkfs_minix.c | 32 ++++++++++++++++---------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/util-linux/fsck_minix.c b/util-linux/fsck_minix.c index dba52417e..cd17afafe 100644 --- a/util-linux/fsck_minix.c +++ b/util-linux/fsck_minix.c @@ -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(); diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c index 49b1d4cca..1e00a085c 100644 --- a/util-linux/mkfs_minix.c +++ b/util-linux/mkfs_minix.c @@ -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) -- 2.25.1