summaryrefslogtreecommitdiff
path: root/util-linux/mkfs_minix.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-06-25 10:00:58 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-06-25 10:00:58 +0000
commite06f61d27345f3b9727d58d46da99a47614f5a60 (patch)
tree1a44b70076954579eec605a50fc2afc95aeaae6e /util-linux/mkfs_minix.c
parent7049ff8696c3c2a1be0f9901d7e2473568b8f918 (diff)
downloadbusybox-w32-e06f61d27345f3b9727d58d46da99a47614f5a60.tar.gz
busybox-w32-e06f61d27345f3b9727d58d46da99a47614f5a60.tar.bz2
busybox-w32-e06f61d27345f3b9727d58d46da99a47614f5a60.zip
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
Diffstat (limited to 'util-linux/mkfs_minix.c')
-rw-r--r--util-linux/mkfs_minix.c32
1 files changed, 16 insertions, 16 deletions
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 {
88enum { version2 = 0 }; 88enum { version2 = 0 };
89#endif 89#endif
90 90
91struct globals { 91enum { dev_fd = 3 };
92 int dev_fd;
93 92
93struct globals {
94#if ENABLE_FEATURE_MINIX2 94#if ENABLE_FEATURE_MINIX2
95 smallint version2; 95 smallint version2;
96#define version2 G.version2 96#define version2 G.version2
@@ -240,33 +240,33 @@ static void write_tables(void)
240 SB.s_state &= ~MINIX_ERROR_FS; 240 SB.s_state &= ~MINIX_ERROR_FS;
241 241
242 msg_eol = "seek to 0 failed"; 242 msg_eol = "seek to 0 failed";
243 xlseek(G.dev_fd, 0, SEEK_SET); 243 xlseek(dev_fd, 0, SEEK_SET);
244 244
245 msg_eol = "cannot clear boot sector"; 245 msg_eol = "cannot clear boot sector";
246 xwrite(G.dev_fd, G.boot_block_buffer, 512); 246 xwrite(dev_fd, G.boot_block_buffer, 512);
247 247
248 msg_eol = "seek to BLOCK_SIZE failed"; 248 msg_eol = "seek to BLOCK_SIZE failed";
249 xlseek(G.dev_fd, BLOCK_SIZE, SEEK_SET); 249 xlseek(dev_fd, BLOCK_SIZE, SEEK_SET);
250 250
251 msg_eol = "cannot write superblock"; 251 msg_eol = "cannot write superblock";
252 xwrite(G.dev_fd, G.super_block_buffer, BLOCK_SIZE); 252 xwrite(dev_fd, G.super_block_buffer, BLOCK_SIZE);
253 253
254 msg_eol = "cannot write inode map"; 254 msg_eol = "cannot write inode map";
255 xwrite(G.dev_fd, G.inode_map, SB_IMAPS * BLOCK_SIZE); 255 xwrite(dev_fd, G.inode_map, SB_IMAPS * BLOCK_SIZE);
256 256
257 msg_eol = "cannot write zone map"; 257 msg_eol = "cannot write zone map";
258 xwrite(G.dev_fd, G.zone_map, SB_ZMAPS * BLOCK_SIZE); 258 xwrite(dev_fd, G.zone_map, SB_ZMAPS * BLOCK_SIZE);
259 259
260 msg_eol = "cannot write inodes"; 260 msg_eol = "cannot write inodes";
261 xwrite(G.dev_fd, G.inode_buffer, INODE_BUFFER_SIZE); 261 xwrite(dev_fd, G.inode_buffer, INODE_BUFFER_SIZE);
262 262
263 msg_eol = "\n"; 263 msg_eol = "\n";
264} 264}
265 265
266static void write_block(int blk, char *buffer) 266static void write_block(int blk, char *buffer)
267{ 267{
268 xlseek(G.dev_fd, blk * BLOCK_SIZE, SEEK_SET); 268 xlseek(dev_fd, blk * BLOCK_SIZE, SEEK_SET);
269 xwrite(G.dev_fd, buffer, BLOCK_SIZE); 269 xwrite(dev_fd, buffer, BLOCK_SIZE);
270} 270}
271 271
272static int get_free_block(void) 272static int get_free_block(void)
@@ -481,11 +481,11 @@ static size_t do_check(char *buffer, size_t try, unsigned current_block)
481 481
482 /* Seek to the correct loc. */ 482 /* Seek to the correct loc. */
483 msg_eol = "seek failed during testing of blocks"; 483 msg_eol = "seek failed during testing of blocks";
484 xlseek(G.dev_fd, current_block * BLOCK_SIZE, SEEK_SET); 484 xlseek(dev_fd, current_block * BLOCK_SIZE, SEEK_SET);
485 msg_eol = "\n"; 485 msg_eol = "\n";
486 486
487 /* Try the read */ 487 /* Try the read */
488 got = read(G.dev_fd, buffer, try * BLOCK_SIZE); 488 got = read(dev_fd, buffer, try * BLOCK_SIZE);
489 if (got < 0) 489 if (got < 0)
490 got = 0; 490 got = 0;
491 try = ((size_t)got) / BLOCK_SIZE; 491 try = ((size_t)got) / BLOCK_SIZE;
@@ -516,7 +516,7 @@ static void check_blocks(void)
516 alarm(5); 516 alarm(5);
517 while (G.currently_testing < SB_ZONES) { 517 while (G.currently_testing < SB_ZONES) {
518 msg_eol = "seek failed in check_blocks"; 518 msg_eol = "seek failed in check_blocks";
519 xlseek(G.dev_fd, G.currently_testing * BLOCK_SIZE, SEEK_SET); 519 xlseek(dev_fd, G.currently_testing * BLOCK_SIZE, SEEK_SET);
520 msg_eol = "\n"; 520 msg_eol = "\n";
521 try = TEST_BUFFER_BLOCKS; 521 try = TEST_BUFFER_BLOCKS;
522 if (G.currently_testing + try > SB_ZONES) 522 if (G.currently_testing + try > SB_ZONES)
@@ -688,8 +688,8 @@ int mkfs_minix_main(int argc ATTRIBUTE_UNUSED, char **argv)
688 "refusing to make a filesystem", 688 "refusing to make a filesystem",
689 G.device_name, mp->mnt_dir); 689 G.device_name, mp->mnt_dir);
690 690
691 G.dev_fd = xopen(G.device_name, O_RDWR); 691 xmove_fd(xopen(G.device_name, O_RDWR), dev_fd);
692 if (fstat(G.dev_fd, &statbuf) < 0) 692 if (fstat(dev_fd, &statbuf) < 0)
693 bb_error_msg_and_die("cannot stat %s", G.device_name); 693 bb_error_msg_and_die("cannot stat %s", G.device_name);
694 if (!S_ISBLK(statbuf.st_mode)) 694 if (!S_ISBLK(statbuf.st_mode))
695 opt &= ~1; // clear -c (check) 695 opt &= ~1; // clear -c (check)