/* * trigger the debugging ioctl */ #include #include #include #include #include #include #include /* For Linux, define BLKFLSBUF if necessary */ #if (!defined(EXT4_IOC_DEBUG_DELALLOC) && defined(__linux__)) #define EXT4_IOC_DEBUG_DELALLOC _IO('f', 42) #endif const char *progname; static void usage(void) { fprintf(stderr, "Usage: %s disk\n", progname); exit(1); } int main(int argc, char **argv) { int fd; progname = argv[0]; if (argc != 2) usage(); fd = open(argv[1], O_RDONLY, 0); if (fd < 0) { perror("open"); exit(1); } #ifdef EXT4_IOC_DEBUG_DELALLOC if (ioctl(fd, EXT4_IOC_DEBUG_DELALLOC, 0) < 0) { perror("ioctl BLKFLSBUF"); exit(1); } return 0; #else fprintf(stderr, "EXT4_IOC_DEBUG_DELALLOC ioctl not supported!\n"); return 1; #endif }