diff options
Diffstat (limited to 'rescue/kernel_read_part.c')
-rw-r--r-- | rescue/kernel_read_part.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/rescue/kernel_read_part.c b/rescue/kernel_read_part.c index 279dfe787..4b9d16d65 100644 --- a/rescue/kernel_read_part.c +++ b/rescue/kernel_read_part.c @@ -1,7 +1,14 @@ +#include <unistd.h> +#include <stdlib.h> #include <stdio.h> +#include <sys/types.h> +#include <sys/ioctl.h> +#include <sys/stat.h> +#include <sys/wait.h> #include <sys/mount.h> #include <fcntl.h> + void die(char *msg) { perror(msg); @@ -11,9 +18,15 @@ void die(char *msg) void kernel_read(char *dev) { int fd; + + sync(); if ((fd = open(dev, O_RDONLY)) == -1) die("can't open device"); + sync(); + sleep(1); ioctl(fd, BLKRRPART, 0); + sync(); close(fd); + sync(); } int main(int argc, char **argv) |