X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=e2fsck%2Fiscan.c;h=e23d2ad550dc8d5ea05d8b4f03cefff7fdc72957;hb=3df6014a3d216d19be7d2286de24e8ee106f18ad;hp=16fb59115d6ffdbce6dea0684671037ff03c895a;hpb=0c4a07264e55b42c6e30230e66b1dea7d4b94ea9;p=tools%2Fe2fsprogs.git diff --git a/e2fsck/iscan.c b/e2fsck/iscan.c index 16fb591..e23d2ad 100644 --- a/e2fsck/iscan.c +++ b/e2fsck/iscan.c @@ -3,6 +3,7 @@ * anything else) */ +#include "config.h" #include #include #include @@ -15,11 +16,10 @@ #ifdef HAVE_ERRNO_H #include #endif -#ifdef HAVE_MNTENT_H -#include -#endif #include +#ifdef HAVE_MALLOC_H #include +#endif #include "et/com_err.h" #include "e2fsck.h" @@ -38,7 +38,7 @@ int invalid_bitmaps = 0; struct resource_track global_rtrack; -static void usage(NOARGS) +static void usage(void) { fprintf(stderr, _("Usage: %s [-F] [-I inode_buffer_blocks] device\n"), @@ -49,26 +49,22 @@ static void usage(NOARGS) static void PRS(int argc, char *argv[]) { int flush = 0; - char c; + int c; #ifdef MTRACE extern void *mallwatch; #endif + errcode_t retval; setbuf(stdout, NULL); setbuf(stderr, NULL); initialize_ext2_error_table(); - + if (argc && *argv) program_name = *argv; while ((c = getopt (argc, argv, "FI")) != EOF) switch (c) { case 'F': -#ifdef BLKFLSBUF flush = 1; -#else - fprintf(stderr, _("-F not supported")); - exit(1); -#endif break; case 'I': inode_buffer_blocks = atoi(optarg); @@ -78,7 +74,6 @@ static void PRS(int argc, char *argv[]) } device_name = argv[optind]; if (flush) { -#ifdef BLKFLSBUF int fd = open(device_name, O_RDONLY, 0); if (fd < 0) { @@ -86,29 +81,25 @@ static void PRS(int argc, char *argv[]) _("while opening %s for flushing"), device_name); exit(FSCK_ERROR); } - if (ioctl(fd, BLKFLSBUF, 0) < 0) { - com_err("BLKFLSBUF", errno, + if ((retval = ext2fs_sync_device(fd, 1))) { + com_err("ext2fs_sync_device", retval, _("while trying to flush %s"), device_name); exit(FSCK_ERROR); } close(fd); -#else - fprintf(stderr, _("BLKFLSBUF not supported")); - exit(1); -#endif /* BLKFLSBUF */ } } - + int main (int argc, char *argv[]) { errcode_t retval = 0; int exit_value = FSCK_OK; ext2_filsys fs; - ino_t ino; - int num_inodes = 0; + ext2_ino_t ino; + __u32 num_inodes = 0; struct ext2_inode inode; ext2_inode_scan scan; - + init_resource_track(&global_rtrack); PRS(argc, argv); @@ -122,7 +113,7 @@ int main (int argc, char *argv[]) } ehandler_init(fs->io); - + retval = ext2fs_open_inode_scan(fs, inode_buffer_blocks, &scan); if (retval) { com_err(program_name, retval, _("while opening inode scan")); @@ -140,9 +131,9 @@ int main (int argc, char *argv[]) break; num_inodes++; } - + print_resource_track(NULL, &global_rtrack); - printf(_("%d inodes scanned.\n"), num_inodes); - + printf(_("%u inodes scanned.\n"), num_inodes); + exit(0); }