aboutsummaryrefslogtreecommitdiff
path: root/mkswap.c
diff options
context:
space:
mode:
Diffstat (limited to 'mkswap.c')
-rw-r--r--mkswap.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/mkswap.c b/mkswap.c
index 8a3c900f3..7d690ad99 100644
--- a/mkswap.c
+++ b/mkswap.c
@@ -87,7 +87,7 @@ static void init_signature_page()
87 87
88#ifdef PAGE_SIZE 88#ifdef PAGE_SIZE
89 if (pagesize != PAGE_SIZE) 89 if (pagesize != PAGE_SIZE)
90 error_msg("Assuming pages of size %d\n", pagesize); 90 error_msg("Assuming pages of size %d", pagesize);
91#endif 91#endif
92 signature_page = (int *) xmalloc(pagesize); 92 signature_page = (int *) xmalloc(pagesize);
93 memset(signature_page, 0, pagesize); 93 memset(signature_page, 0, pagesize);
@@ -185,7 +185,7 @@ static void page_bad(int page)
185 bit_test_and_clear(signature_page, page); 185 bit_test_and_clear(signature_page, page);
186 else { 186 else {
187 if (badpages == MAX_BADPAGES) 187 if (badpages == MAX_BADPAGES)
188 error_msg_and_die("too many bad pages\n"); 188 error_msg_and_die("too many bad pages");
189 p->badpages[badpages] = page; 189 p->badpages[badpages] = page;
190 } 190 }
191 badpages++; 191 badpages++;
@@ -206,7 +206,7 @@ static void check_blocks(void)
206 } 206 }
207 if (do_seek && lseek(DEV, current_page * pagesize, SEEK_SET) != 207 if (do_seek && lseek(DEV, current_page * pagesize, SEEK_SET) !=
208 current_page * pagesize) 208 current_page * pagesize)
209 error_msg_and_die("seek failed in check_blocks\n"); 209 error_msg_and_die("seek failed in check_blocks");
210 if ((do_seek = (pagesize != read(DEV, buffer, pagesize)))) { 210 if ((do_seek = (pagesize != read(DEV, buffer, pagesize)))) {
211 page_bad(current_page++); 211 page_bad(current_page++);
212 continue; 212 continue;
@@ -307,14 +307,14 @@ int mkswap_main(int argc, char **argv)
307 } 307 }
308 } 308 }
309 if (!device_name) { 309 if (!device_name) {
310 error_msg("error: Nowhere to set up swap on?\n"); 310 error_msg("error: Nowhere to set up swap on?");
311 usage(mkswap_usage); 311 usage(mkswap_usage);
312 } 312 }
313 sz = get_size(device_name); 313 sz = get_size(device_name);
314 if (!PAGES) { 314 if (!PAGES) {
315 PAGES = sz; 315 PAGES = sz;
316 } else if (PAGES > sz && !force) { 316 } else if (PAGES > sz && !force) {
317 error_msg("error: size %ld is larger than device size %d\n", 317 error_msg("error: size %ld is larger than device size %d",
318 PAGES * (pagesize / 1024), sz * (pagesize / 1024)); 318 PAGES * (pagesize / 1024), sz * (pagesize / 1024));
319 return EXIT_FAILURE; 319 return EXIT_FAILURE;
320 } 320 }
@@ -330,11 +330,11 @@ int mkswap_main(int argc, char **argv)
330 version = 1; 330 version = 1;
331 } 331 }
332 if (version != 0 && version != 1) { 332 if (version != 0 && version != 1) {
333 error_msg("error: unknown version %d\n", version); 333 error_msg("error: unknown version %d", version);
334 usage(mkswap_usage); 334 usage(mkswap_usage);
335 } 335 }
336 if (PAGES < 10) { 336 if (PAGES < 10) {
337 error_msg("error: swap area needs to be at least %ldkB\n", 337 error_msg("error: swap area needs to be at least %ldkB",
338 (long) (10 * pagesize / 1024)); 338 (long) (10 * pagesize / 1024));
339 usage(mkswap_usage); 339 usage(mkswap_usage);
340 } 340 }
@@ -353,7 +353,7 @@ int mkswap_main(int argc, char **argv)
353#endif 353#endif
354 if (PAGES > maxpages) { 354 if (PAGES > maxpages) {
355 PAGES = maxpages; 355 PAGES = maxpages;
356 error_msg("warning: truncating swap area to %ldkB\n", 356 error_msg("warning: truncating swap area to %ldkB",
357 PAGES * pagesize / 1024); 357 PAGES * pagesize / 1024);
358 } 358 }
359 359
@@ -363,7 +363,7 @@ int mkswap_main(int argc, char **argv)
363 if (!S_ISBLK(statbuf.st_mode)) 363 if (!S_ISBLK(statbuf.st_mode))
364 check = 0; 364 check = 0;
365 else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0340) 365 else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0340)
366 error_msg_and_die("Will not try to make swapdevice on '%s'\n", device_name); 366 error_msg_and_die("Will not try to make swapdevice on '%s'", device_name);
367 367
368#ifdef __sparc__ 368#ifdef __sparc__
369 if (!force && version == 0) { 369 if (!force && version == 0) {
@@ -372,7 +372,7 @@ int mkswap_main(int argc, char **argv)
372 unsigned short *q, sum; 372 unsigned short *q, sum;
373 373
374 if (read(DEV, buffer, 512) != 512) 374 if (read(DEV, buffer, 512) != 512)
375 error_msg_and_die("fatal: first page unreadable\n"); 375 error_msg_and_die("fatal: first page unreadable");
376 if (buffer[508] == 0xDA && buffer[509] == 0xBE) { 376 if (buffer[508] == 0xDA && buffer[509] == 0xBE) {
377 q = (unsigned short *) (buffer + 510); 377 q = (unsigned short *) (buffer + 510);
378 for (sum = 0; q >= (unsigned short *) buffer;) 378 for (sum = 0; q >= (unsigned short *) buffer;)
@@ -381,7 +381,7 @@ int mkswap_main(int argc, char **argv)
381 error_msg("Device '%s' contains a valid Sun disklabel.\n" 381 error_msg("Device '%s' contains a valid Sun disklabel.\n"
382"This probably means creating v0 swap would destroy your partition table\n" 382"This probably means creating v0 swap would destroy your partition table\n"
383"No swap created. If you really want to create swap v0 on that device, use\n" 383"No swap created. If you really want to create swap v0 on that device, use\n"
384"the -f option to force it.\n", device_name); 384"the -f option to force it.", device_name);
385 return EXIT_FAILURE; 385 return EXIT_FAILURE;
386 } 386 }
387 } 387 }
@@ -391,7 +391,7 @@ int mkswap_main(int argc, char **argv)
391 if (version == 0 || check) 391 if (version == 0 || check)
392 check_blocks(); 392 check_blocks();
393 if (version == 0 && !bit_test_and_clear(signature_page, 0)) 393 if (version == 0 && !bit_test_and_clear(signature_page, 0))
394 error_msg_and_die("fatal: first page unreadable\n"); 394 error_msg_and_die("fatal: first page unreadable");
395 if (version == 1) { 395 if (version == 1) {
396 p->version = version; 396 p->version = version;
397 p->last_page = PAGES - 1; 397 p->last_page = PAGES - 1;
@@ -400,23 +400,23 @@ int mkswap_main(int argc, char **argv)
400 400
401 goodpages = PAGES - badpages - 1; 401 goodpages = PAGES - badpages - 1;
402 if (goodpages <= 0) 402 if (goodpages <= 0)
403 error_msg_and_die("Unable to set up swap-space: unreadable\n"); 403 error_msg_and_die("Unable to set up swap-space: unreadable");
404 printf("Setting up swapspace version %d, size = %ld bytes\n", 404 printf("Setting up swapspace version %d, size = %ld bytes\n",
405 version, (long) (goodpages * pagesize)); 405 version, (long) (goodpages * pagesize));
406 write_signature((version == 0) ? "SWAP-SPACE" : "SWAPSPACE2"); 406 write_signature((version == 0) ? "SWAP-SPACE" : "SWAPSPACE2");
407 407
408 offset = ((version == 0) ? 0 : 1024); 408 offset = ((version == 0) ? 0 : 1024);
409 if (lseek(DEV, offset, SEEK_SET) != offset) 409 if (lseek(DEV, offset, SEEK_SET) != offset)
410 error_msg_and_die("unable to rewind swap-device\n"); 410 error_msg_and_die("unable to rewind swap-device");
411 if (write(DEV, (char *) signature_page + offset, pagesize - offset) 411 if (write(DEV, (char *) signature_page + offset, pagesize - offset)
412 != pagesize - offset) 412 != pagesize - offset)
413 error_msg_and_die("unable to write signature page\n"); 413 error_msg_and_die("unable to write signature page");
414 414
415 /* 415 /*
416 * A subsequent swapon() will fail if the signature 416 * A subsequent swapon() will fail if the signature
417 * is not actually on disk. (This is a kernel bug.) 417 * is not actually on disk. (This is a kernel bug.)
418 */ 418 */
419 if (fsync(DEV)) 419 if (fsync(DEV))
420 error_msg_and_die("fsync failed\n"); 420 error_msg_and_die("fsync failed");
421 return EXIT_SUCCESS; 421 return EXIT_SUCCESS;
422} 422}