summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko2008-06-25 10:00:58 +0000
committerDenis Vlasenko2008-06-25 10:00:58 +0000
commite06f61d27345f3b9727d58d46da99a47614f5a60 (patch)
tree1a44b70076954579eec605a50fc2afc95aeaae6e
parent7049ff8696c3c2a1be0f9901d7e2473568b8f918 (diff)
downloadbusybox-e06f61d27345f3b9727d58d46da99a47614f5a60.zip
busybox-e06f61d27345f3b9727d58d46da99a47614f5a60.tar.gz
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
-rw-r--r--util-linux/fsck_minix.c6
-rw-r--r--util-linux/mkfs_minix.c32
2 files changed, 19 insertions, 19 deletions
diff --git a/util-linux/fsck_minix.c b/util-linux/fsck_minix.c
index dba5241..cd17afa 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 49b1d4c..1e00a08 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)