2
* Test to see how quickly we can scan the inode table (not doing
22
#include <sys/ioctl.h>
27
#include "et/com_err.h"
29
#include "../version.h"
31
extern int isatty(int);
33
const char * program_name = "iscan";
34
const char * device_name = NULL;
39
int inode_buffer_blocks = 0;
40
int invalid_bitmaps = 0;
42
struct resource_track global_rtrack;
44
static void usage(void)
47
_("Usage: %s [-F] [-I inode_buffer_blocks] device\n"),
52
static void PRS(int argc, char *argv[])
57
extern void *mallwatch;
63
initialize_ext2_error_table();
67
while ((c = getopt (argc, argv, "FI")) != EOF)
73
inode_buffer_blocks = atoi(optarg);
78
device_name = argv[optind];
80
int fd = open(device_name, O_RDONLY, 0);
83
com_err("open", errno,
84
_("while opening %s for flushing"), device_name);
87
if ((retval = ext2fs_sync_device(fd, 1))) {
88
com_err("ext2fs_sync_device", retval,
89
_("while trying to flush %s"), device_name);
96
int main (int argc, char *argv[])
99
int exit_value = FSCK_OK;
102
__u32 num_inodes = 0;
103
struct ext2_inode inode;
104
ext2_inode_scan scan;
106
init_resource_track(&global_rtrack);
110
retval = ext2fs_open(device_name, 0,
111
0, 0, unix_io_manager, &fs);
113
com_err(program_name, retval, _("while trying to open %s"),
118
ehandler_init(fs->io);
120
retval = ext2fs_open_inode_scan(fs, inode_buffer_blocks, &scan);
122
com_err(program_name, retval, _("while opening inode scan"));
127
retval = ext2fs_get_next_inode(scan, &ino, &inode);
129
com_err(program_name, retval,
130
_("while getting next inode"));
138
print_resource_track(NULL, &global_rtrack);
139
printf(_("%u inodes scanned.\n"), num_inodes);