aboutsummaryrefslogtreecommitdiff
path: root/util-linux/fdisk_osf.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-04-17 00:12:10 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-04-17 00:12:10 +0000
commit4437d19fb4d7bd7cd9d8acd5e67d85c8751a6e93 (patch)
tree5eb094c94adda9f92cbedac6062b0d0040a5142c /util-linux/fdisk_osf.c
parentaca10f852ae760a3f2e2b9ed08bd13f9d5b85443 (diff)
downloadbusybox-w32-4437d19fb4d7bd7cd9d8acd5e67d85c8751a6e93.tar.gz
busybox-w32-4437d19fb4d7bd7cd9d8acd5e67d85c8751a6e93.tar.bz2
busybox-w32-4437d19fb4d7bd7cd9d8acd5e67d85c8751a6e93.zip
fdisk: do not open device twice. Complain on fdisk -l /dev/bogus.
Made enums UPPERCASE. Removed one global variable. Added some FIXMEs. text data bss dec hex filename 804708 645 7112 812465 c65b1 busybox_old 804685 641 7112 812438 c6596 busybox_unstripped
Diffstat (limited to 'util-linux/fdisk_osf.c')
-rw-r--r--util-linux/fdisk_osf.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/util-linux/fdisk_osf.c b/util-linux/fdisk_osf.c
index 5a7e6323d..ba01a7f0c 100644
--- a/util-linux/fdisk_osf.c
+++ b/util-linux/fdisk_osf.c
@@ -413,7 +413,8 @@ bsd_select(void)
413 xbsd_print_disklabel(0); 413 xbsd_print_disklabel(0);
414 break; 414 break;
415 case 'q': 415 case 'q':
416 close(fd); 416 if (ENABLE_FEATURE_CLEAN_UP)
417 close(dev_fd);
417 exit(EXIT_SUCCESS); 418 exit(EXIT_SUCCESS);
418 case 'r': 419 case 'r':
419 return; 420 return;
@@ -627,12 +628,13 @@ xbsd_create_disklabel(void)
627#else 628#else
628 xbsd_part 629 xbsd_part
629#endif 630#endif
630 ) == 1) { 631 ) == 1) {
631 xbsd_print_disklabel(1); 632 xbsd_print_disklabel(1);
632 return 1; 633 return 1;
633 } else 634 }
634 return 0; 635 return 0;
635 } else if (c == 'n') 636 }
637 if (c == 'n')
636 return 0; 638 return 0;
637 } 639 }
638} 640}
@@ -766,9 +768,9 @@ xbsd_write_bootstrap(void)
766 sector = get_start_sect(xbsd_part); 768 sector = get_start_sect(xbsd_part);
767#endif 769#endif
768 770
769 if (lseek(fd, sector * SECTOR_SIZE, SEEK_SET) == -1) 771 if (lseek(dev_fd, sector * SECTOR_SIZE, SEEK_SET) == -1)
770 fdisk_fatal(unable_to_seek); 772 fdisk_fatal(unable_to_seek);
771 if (BSD_BBSIZE != write(fd, disklabelbuffer, BSD_BBSIZE)) 773 if (BSD_BBSIZE != write(dev_fd, disklabelbuffer, BSD_BBSIZE))
772 fdisk_fatal(unable_to_write); 774 fdisk_fatal(unable_to_write);
773 775
774#if defined(__alpha__) 776#if defined(__alpha__)
@@ -939,9 +941,9 @@ xbsd_readlabel(struct partition *p)
939 sector = 0; 941 sector = 0;
940#endif 942#endif
941 943
942 if (lseek(fd, sector * SECTOR_SIZE, SEEK_SET) == -1) 944 if (lseek(dev_fd, sector * SECTOR_SIZE, SEEK_SET) == -1)
943 fdisk_fatal(unable_to_seek); 945 fdisk_fatal(unable_to_seek);
944 if (BSD_BBSIZE != read(fd, disklabelbuffer, BSD_BBSIZE)) 946 if (BSD_BBSIZE != read(dev_fd, disklabelbuffer, BSD_BBSIZE))
945 fdisk_fatal(unable_to_read); 947 fdisk_fatal(unable_to_read);
946 948
947 memmove(d, &disklabelbuffer[BSD_LABELSECTOR * SECTOR_SIZE + BSD_LABELOFFSET], 949 memmove(d, &disklabelbuffer[BSD_LABELSECTOR * SECTOR_SIZE + BSD_LABELOFFSET],
@@ -985,14 +987,14 @@ xbsd_writelabel(struct partition *p)
985 987
986#if defined(__alpha__) && BSD_LABELSECTOR == 0 988#if defined(__alpha__) && BSD_LABELSECTOR == 0
987 alpha_bootblock_checksum(disklabelbuffer); 989 alpha_bootblock_checksum(disklabelbuffer);
988 if (lseek(fd, 0, SEEK_SET) == -1) 990 if (lseek(dev_fd, 0, SEEK_SET) == -1)
989 fdisk_fatal(unable_to_seek); 991 fdisk_fatal(unable_to_seek);
990 if (BSD_BBSIZE != write(fd, disklabelbuffer, BSD_BBSIZE)) 992 if (BSD_BBSIZE != write(dev_fd, disklabelbuffer, BSD_BBSIZE))
991 fdisk_fatal(unable_to_write); 993 fdisk_fatal(unable_to_write);
992#else 994#else
993 if (lseek(fd, sector * SECTOR_SIZE + BSD_LABELOFFSET, SEEK_SET) == -1) 995 if (lseek(dev_fd, sector * SECTOR_SIZE + BSD_LABELOFFSET, SEEK_SET) == -1)
994 fdisk_fatal(unable_to_seek); 996 fdisk_fatal(unable_to_seek);
995 if (sizeof(struct xbsd_disklabel) != write(fd, d, sizeof(struct xbsd_disklabel))) 997 if (sizeof(struct xbsd_disklabel) != write(dev_fd, d, sizeof(struct xbsd_disklabel)))
996 fdisk_fatal(unable_to_write); 998 fdisk_fatal(unable_to_write);
997#endif 999#endif
998 sync_disks(); 1000 sync_disks();