diff --git a/util-linux/fdflush.c b/util-linux/fdflush.c index a4245c7e3..0756ddfbf 100644 --- a/util-linux/fdflush.c +++ b/util-linux/fdflush.c @@ -32,16 +32,23 @@ extern int fdflush_main(int argc, char **argv) { - int fd; + int fd, result; if (argc <= 1) show_usage(); if ((fd = open(*(++argv), 0)) < 0) goto die_the_death; - if (ioctl(fd, FDFLUSH, 0)) + result = ioctl(fd, FDFLUSH, 0); +#ifdef CONFIG_FEATURE_CLEAN_UP + close(fd); +#endif + if (result) { goto die_the_death; + } + /* Don't bother closing. Exit does + * that, so we can save a few bytes */ return EXIT_SUCCESS; die_the_death: diff --git a/util-linux/freeramdisk.c b/util-linux/freeramdisk.c index aabb5f988..dd7700c06 100644 --- a/util-linux/freeramdisk.c +++ b/util-linux/freeramdisk.c @@ -37,20 +37,25 @@ extern int freeramdisk_main(int argc, char **argv) { + int result; FILE *f; - if (argc != 2 || *argv[1] == '-') { + if (argc != 2) { show_usage(); } f = xfopen(argv[1], "r+"); - if (ioctl(fileno(f), BLKFLSBUF) < 0) { + result = ioctl(fileno(f), BLKFLSBUF); +#ifdef CONFIG_FEATURE_CLEAN_UP + fclose(f); +#endif + if (result < 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); */ return EXIT_SUCCESS; }