X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=e2fsck%2Fflushb.c;h=d56b41c584d8ce3ef6922f7a8eabca3f92df2fc5;hb=8161a7484f47f12e562080a1312a4db9d2f71b40;hp=eba4e85d81da04a8a9d5343787b18fb586b26ae6;hpb=3839e65723771b85975f4263102dd3ceec4523c0;p=tools%2Fe2fsprogs.git diff --git a/e2fsck/flushb.c b/e2fsck/flushb.c index eba4e85..d56b41c 100644 --- a/e2fsck/flushb.c +++ b/e2fsck/flushb.c @@ -1,5 +1,26 @@ /* * flushb.c --- This routine flushes the disk buffers for a disk + * + * Copyright 1997, 2000, by Theodore Ts'o. + * + * This program may be used under the provisions of the GNU Public + * License, *EXCEPT* that a binary copy of the executable may not be + * packaged as a part of binary package which is distributed as part + * of a Linux distribution. (Yes, this violates the Debian Free + * Software Guidelines of restricting its field of use. That's the + * point. I don't want this program being distributed in Debian, + * because I don't care to support it, and the maintainer, Yann + * Dirson, doesn't seem to pay attention to my wishes on this matter. + * So I'm deliberately adding this clause so it violates the Debian + * Free Software Guidelines to force him to take it out. (What part + * of THIS IS FOR MY OWN USE don't you understand? And no, I'm going + * to write a man page for it either. And don't file a bug about it + * or bug me about it.) If this doesn't work, I'll have to remove it + * from the upstream source distribution at the next release. End of + * Rant. :-) + * + * (BTW, use of flushb on some older 2.2 kernels on a heavily loaded + * system will corrupt filesystems.) */ #include @@ -8,21 +29,19 @@ #include #include #include +#include +#include "../misc/nls-enable.h" -#include - -#ifdef __STDC__ -#define NOARGS void -#else -#define NOARGS -#define const +/* For Linux, define BLKFLSBUF if necessary */ +#if (!defined(BLKFLSBUF) && defined(__linux__)) +#define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */ #endif const char *progname; -static void usage(NOARGS) +static void usage(void) { - fprintf(stderr, "Usage: %s disk\n", progname); + fprintf(stderr, _("Usage: %s disk\n"), progname); exit(1); } @@ -43,9 +62,15 @@ int main(int argc, char **argv) * Note: to reread the partition table, use the ioctl * BLKRRPART instead of BLKFSLBUF. */ +#ifdef BLKFLSBUF if (ioctl(fd, BLKFLSBUF, 0) < 0) { - perror("ioctl"); + perror("ioctl BLKFLSBUF"); exit(1); } return 0; +#else + fprintf(stderr, + _("BLKFLSBUF ioctl not supported! Can't flush buffers.\n")); + return 1; +#endif }