changeset 1328:a498d143be72 draft

Cleanup partprobe.
author Rob Landley <rob@landley.net>
date Sat, 31 May 2014 17:59:27 -0500
parents 85f297591693
children 5662f0664060
files toys/pending/partprobe.c
diffstat 1 files changed, 8 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/toys/pending/partprobe.c	Sat May 31 12:33:24 2014 -0500
+++ b/toys/pending/partprobe.c	Sat May 31 17:59:27 2014 -0500
@@ -4,48 +4,27 @@
  *
  * see http://man7.org/linux/man-pages/man8/partprobe.8.html
 
-USE_PARTPROBE(NEWTOY(partprobe, NULL, TOYFLAG_SBIN))
+USE_PARTPROBE(NEWTOY(partprobe, "<1", TOYFLAG_SBIN))
 
 config PARTPROBE
   bool "partprobe"
   default n
   help
-    partprobe - Tell the kernel about partition table changes
-	
-    usage: partprobe [devices...]
+    usage: partprobe DEVICE...
 
-    Asks the kernel to re-read the partition table on the specified
-    devices.
+    Tell the kernel about partition table changes
+
+    Ask the kernel to re-read the partition table on the specified devices.
 */
 
 #include "toys.h"
 
-void update_device(char* path)
+static void do_partprobe(int fd, char *name)
 {
-  int sd_fd = open(path, 0);
-  
-  if(sd_fd < 0){
-	perror_msg("Unable to open %s", path);
-	return;
-  }
-  
-  if(ioctl(sd_fd, BLKRRPART, NULL) < 0)
-    perror_msg("ioctl (BLKRRPART) failed, old layout still used");
-  
-  close(sd_fd);
+  if (ioctl(fd, BLKRRPART, 0)) perror_msg("ioctl failed");
 }
 
 void partprobe_main(void)
 {
-  char** opt; 
-  if(*toys.optargs == NULL){
-    printf("No devices specified.\n");
-    exit(EXIT_FAILURE);
-  }
-  
-  for (opt = toys.optargs; *opt; opt++) {
-    update_device(*opt);
-  }
-  
-  exit(EXIT_SUCCESS);
+  loopfiles(toys.optargs, do_partprobe); 
 }