X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=util-linux%2Ffreeramdisk.c;h=aabb5f98827641ed79ef3c6fa890f6a338c4158b;hb=ace02dc9cd3ca0c95db5b5ebe87b9d6cd6ca1733;hp=cabe5660bf71bced636359d87a7326d396e90845;hpb=ef4268efa7474ba84dc02ffc29030ad6407fedcb;p=oweals%2Fbusybox.git diff --git a/util-linux/freeramdisk.c b/util-linux/freeramdisk.c index cabe5660b..aabb5f988 100644 --- a/util-linux/freeramdisk.c +++ b/util-linux/freeramdisk.c @@ -23,42 +23,35 @@ #include #include -#include #include -#include #include #include #include -#include "internal.h" +#include +#include "busybox.h" - -static const char freeramdisk_usage[] = - "freeramdisk DEVICE\n" -#ifndef BB_FEATURE_TRIVIAL_HELP - "\nFrees all memory used by the specified ramdisk.\n" -#endif - ; +/* From linux/fs.h */ +#define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */ extern int freeramdisk_main(int argc, char **argv) { - int f; + FILE *f; if (argc != 2 || *argv[1] == '-') { - usage(freeramdisk_usage); + show_usage(); } - if ((f = open(argv[1], O_RDWR)) == -1) { - fatalError( "freeramdisk: cannot open %s: %s\n", argv[1], strerror(errno)); - } - if (ioctl(f, BLKFLSBUF) < 0) { - fatalError( "freeramdisk: failed ioctl on %s: %s\n", argv[1], strerror(errno)); + f = xfopen(argv[1], "r+"); + + if (ioctl(fileno(f), BLKFLSBUF) < 0) { + perror_msg_and_die("failed ioctl on %s", argv[1]); } /* Don't bother closing. Exit does * that, so we can save a few bytes */ /* close(f); */ - exit(TRUE); + return EXIT_SUCCESS; } /*