diff options
146 files changed, 2361 insertions, 353 deletions
diff --git a/lib/ss/jump/jump.funcs b/lib/ss/dll/jump.funcs index a8b08c62..a8b08c62 100644 --- a/lib/ss/jump/jump.funcs +++ b/lib/ss/dll/jump.funcs diff --git a/lib/ss/dll/jump.ignore b/lib/ss/dll/jump.ignore new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/lib/ss/dll/jump.ignore diff --git a/lib/ss/jump/jump.import b/lib/ss/dll/jump.import index 53208d55..53208d55 100644 --- a/lib/ss/jump/jump.import +++ b/lib/ss/dll/jump.import diff --git a/lib/ss/jump/jump.params b/lib/ss/dll/jump.params index 2947e285..2947e285 100644 --- a/lib/ss/jump/jump.params +++ b/lib/ss/dll/jump.params diff --git a/lib/ss/dll/jump.undefs b/lib/ss/dll/jump.undefs new file mode 100644 index 00000000..56d1fda6 --- /dev/null +++ b/lib/ss/dll/jump.undefs @@ -0,0 +1,2 @@ +66885010 D __NEEDS_SHRLIB_libc_4 +66885028 D __NEEDS_SHRLIB_libet_1 diff --git a/lib/ss/jump/jump.vars b/lib/ss/dll/jump.vars index 95cd8e47..95cd8e47 100644 --- a/lib/ss/jump/jump.vars +++ b/lib/ss/dll/jump.vars diff --git a/lib/ss/jump/jump.undefs b/lib/ss/jump/jump.undefs deleted file mode 100644 index 1a2f89ac..00000000 --- a/lib/ss/jump/jump.undefs +++ /dev/null @@ -1,2 +0,0 @@ -66885010 D __NEEDS_SHRLIB_libc_4 -66885024 D __NEEDS_SHRLIB_libet_1 diff --git a/lib/ss/ss_err.h b/lib/ss/ss_err.h deleted file mode 100644 index 02ab5073..00000000 --- a/lib/ss/ss_err.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * ss_err.h: - * This file is automatically generated; please do not edit it. - */ -#ifdef __STDC__ -#define NOARGS void -#else -#define NOARGS -#define const -#endif - -#define SS_ET_SUBSYSTEM_ABORTED (748800L) -#define SS_ET_VERSION_MISMATCH (748801L) -#define SS_ET_NULL_INV (748802L) -#define SS_ET_NO_INFO_DIR (748803L) -#define SS_ET_COMMAND_NOT_FOUND (748804L) -#define SS_ET_LINE_ABORTED (748805L) -#define SS_ET_EOF (748806L) -#define SS_ET_PERMISSION_DENIED (748807L) -#define SS_ET_TABLE_NOT_FOUND (748808L) -#define SS_ET_NO_HELP_FILE (748809L) -#define SS_ET_ESCAPE_DISABLED (748810L) -#define SS_ET_UNIMPLEMENTED (748811L) -extern void initialize_ss_error_table (NOARGS); -#define ERROR_TABLE_BASE_ss (748800L) - -/* for compatibility with older versions... */ -#define init_ss_err_tbl initialize_ss_error_table -#define ss_err_base ERROR_TABLE_BASE_ss diff --git a/lib/ss/ss_internal.h b/lib/ss/ss_internal.h index fc4a2adb..388a3768 100644 --- a/lib/ss/ss_internal.h +++ b/lib/ss/ss_internal.h @@ -8,6 +8,7 @@ #define _ss_ss_internal_h __FILE__ #include <stdio.h> #include <string.h> +#include <stdlib.h> #ifdef __STDC__ @@ -107,10 +108,6 @@ void ss_page_stdin(NOARGS); extern ss_data **_ss_table; extern char *ss_et_msgs[]; -extern pointer malloc PROTOTYPE((unsigned)); -extern pointer realloc PROTOTYPE((pointer, unsigned)); -extern pointer calloc PROTOTYPE((unsigned, unsigned)); - #ifdef USE_SIGPROCMASK /* fake sigmask, sigblock, sigsetmask */ #include <signal.h> diff --git a/lib/ss/std_rqs.c b/lib/ss/std_rqs.c index d0f0ccba..704766d6 100644 --- a/lib/ss/std_rqs.c +++ b/lib/ss/std_rqs.c @@ -1,4 +1,4 @@ -/* std_rqs.c - automatically generated from std_rqs.ct */ +/* ./std_rqs.c - automatically generated from ./std_rqs.ct */ #include <ss/ss.h> #ifndef __STDC__ diff --git a/lib/ss/test_ss.c b/lib/ss/test_ss.c index ee9c087e..7b37ec47 100644 --- a/lib/ss/test_ss.c +++ b/lib/ss/test_ss.c @@ -9,8 +9,8 @@ * $Locker$ * * $Log$ - * Revision 1.2 1997/04/26 13:34:09 tytso - * Checkin of e2fsprogs 0.5b + * Revision 1.3 1997/04/26 13:58:24 tytso + * Checked in e2fsprogs 0.5c * * Revision 1.1 1993/06/03 12:31:25 tytso * Initial revision diff --git a/misc/.depend b/misc/.depend index 9466333b..77a8bb7f 100644 --- a/misc/.depend +++ b/misc/.depend @@ -1,104 +1,107 @@ -badblocks.o : badblocks.c /usr/include/errno.h /usr/include/features.h /usr/include/sys/cdefs.h \ +badblocks.o : ./badblocks.c /usr/include/errno.h /usr/include/features.h /usr/include/sys/cdefs.h \ /usr/include/linux/errno.h /usr/include/fcntl.h /usr/include/sys/types.h /usr/include/linux/types.h \ - /usr/include/asm/types.h /usr/include/linux/fcntl.h /usr/include/getopt.h /usr/include/signal.h \ - /usr/include/linux/signal.h /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \ - /usr/include/stdlib.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stddef.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/float.h \ - /usr/include/alloca.h /usr/include/string.h /usr/include/unistd.h /usr/include/posix_opt.h \ - /usr/include/gnu/types.h /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ - /usr/include/termios.h /usr/include/linux/termios.h /usr/include/linux/fd.h \ - /usr/include/linux/fs.h /usr/include/linux/linkage.h /usr/include/linux/limits.h \ - /usr/include/linux/wait.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \ - /usr/include/linux/net.h /usr/include/linux/socket.h /usr/include/linux/sockios.h \ - /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \ - /usr/include/linux/ext2_fs_i.h /usr/include/linux/hpfs_fs_i.h /usr/include/linux/msdos_fs_i.h \ - /usr/include/linux/umsdos_fs_i.h /usr/include/linux/iso_fs_i.h /usr/include/linux/nfs_fs_i.h \ - /usr/include/linux/nfs.h /usr/include/linux/xia_fs_i.h /usr/include/linux/sysv_fs_i.h \ - ../lib/et/com_err.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stdarg.h ../lib/ext2fs/io.h -chattr.o : chattr.c /usr/include/dirent.h /usr/include/features.h /usr/include/sys/cdefs.h \ + /usr/include/asm/types.h /usr/include/gnu/types.h /usr/include/linux/fcntl.h \ + /usr/include/getopt.h /usr/include/signal.h /usr/include/linux/signal.h /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/stdlib.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stddef.h \ + /usr/lib/gcc-lib/i486-linux/2.5.8/include/float.h /usr/include/alloca.h /usr/include/string.h \ + /usr/include/unistd.h /usr/include/posix_opt.h /usr/include/confname.h /usr/include/sys/ioctl.h \ + /usr/include/linux/ioctl.h /usr/include/termios.h /usr/include/linux/termios.h \ + /usr/include/linux/fd.h /usr/include/linux/fs.h /usr/include/linux/linkage.h \ + /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/dirent.h \ + /usr/include/linux/vfs.h /usr/include/linux/net.h /usr/include/linux/socket.h \ + /usr/include/linux/sockios.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \ + /usr/include/linux/ext_fs_i.h /usr/include/linux/ext2_fs_i.h /usr/include/linux/hpfs_fs_i.h \ + /usr/include/linux/msdos_fs_i.h /usr/include/linux/umsdos_fs_i.h /usr/include/linux/iso_fs_i.h \ + /usr/include/linux/nfs_fs_i.h /usr/include/linux/nfs.h /usr/include/linux/xia_fs_i.h \ + /usr/include/linux/sysv_fs_i.h ../lib/et/com_err.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stdarg.h \ + ../lib/ext2fs/io.h +chattr.o : ./chattr.c /usr/include/dirent.h /usr/include/features.h /usr/include/sys/cdefs.h \ /usr/include/gnu/types.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stddef.h \ /usr/include/sys/types.h /usr/include/linux/types.h /usr/include/asm/types.h \ /usr/include/linux/limits.h /usr/include/linux/dirent.h /usr/include/posix1_lim.h \ /usr/include/fcntl.h /usr/include/linux/fcntl.h /usr/include/getopt.h /usr/include/stdio.h \ /usr/include/libio.h /usr/include/_G_config.h /usr/include/stdlib.h /usr/include/errno.h \ /usr/include/linux/errno.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/float.h \ - /usr/include/alloca.h /usr/include/unistd.h /usr/include/posix_opt.h /usr/include/sys/param.h \ - /usr/lib/gcc-lib/i486-linux/2.5.8/include/limits.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/syslimits.h \ - /usr/include/limits.h /usr/include/posix2_lim.h /usr/include/linux/param.h /usr/include/asm/param.h \ + /usr/include/alloca.h /usr/include/unistd.h /usr/include/posix_opt.h /usr/include/confname.h \ + /usr/include/sys/param.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/limits.h \ + /usr/lib/gcc-lib/i486-linux/2.5.8/include/syslimits.h /usr/include/limits.h \ + /usr/include/posix2_lim.h /usr/include/linux/param.h /usr/include/asm/param.h \ /usr/include/sys/stat.h /usr/include/linux/stat.h /usr/include/linux/ext2_fs.h \ ../lib/et/com_err.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stdarg.h ../lib/e2p/e2p.h \ - ../version.h -dumpe2fs.o : dumpe2fs.c /usr/include/getopt.h /usr/include/fcntl.h /usr/include/features.h \ + ./../version.h +dumpe2fs.o : ./dumpe2fs.c /usr/include/getopt.h /usr/include/fcntl.h /usr/include/features.h \ /usr/include/sys/cdefs.h /usr/include/sys/types.h /usr/include/linux/types.h \ - /usr/include/asm/types.h /usr/include/linux/fcntl.h /usr/include/stdio.h /usr/include/libio.h \ - /usr/include/_G_config.h /usr/include/stdlib.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stddef.h \ - /usr/include/errno.h /usr/include/linux/errno.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/float.h \ - /usr/include/alloca.h /usr/include/string.h /usr/include/unistd.h /usr/include/posix_opt.h \ - /usr/include/gnu/types.h /usr/include/linux/ext2_fs.h ../lib/ext2fs/ext2fs.h \ - ../lib/et/com_err.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stdarg.h ../lib/ext2fs/io.h \ - ../lib/ext2fs/ext2_err.h ../lib/ext2fs/bitops.h ../lib/e2p/e2p.h /usr/include/dirent.h \ - /usr/include/linux/limits.h /usr/include/linux/dirent.h /usr/include/posix1_lim.h \ - ../version.h -fsck.o : fsck.c /usr/include/sys/types.h /usr/include/linux/types.h /usr/include/asm/types.h \ + /usr/include/asm/types.h /usr/include/gnu/types.h /usr/include/linux/fcntl.h \ + /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h /usr/include/stdlib.h \ + /usr/lib/gcc-lib/i486-linux/2.5.8/include/stddef.h /usr/include/errno.h /usr/include/linux/errno.h \ + /usr/lib/gcc-lib/i486-linux/2.5.8/include/float.h /usr/include/alloca.h /usr/include/string.h \ + /usr/include/unistd.h /usr/include/posix_opt.h /usr/include/confname.h /usr/include/linux/ext2_fs.h \ + ../lib/ext2fs/ext2fs.h ../lib/et/com_err.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stdarg.h \ + ../lib/ext2fs/io.h ../lib/ext2fs/ext2_err.h ../lib/ext2fs/bitops.h ../lib/e2p/e2p.h \ + /usr/include/dirent.h /usr/include/linux/limits.h /usr/include/linux/dirent.h \ + /usr/include/posix1_lim.h ./../version.h +fsck.o : ./fsck.c /usr/include/sys/types.h /usr/include/linux/types.h /usr/include/asm/types.h \ /usr/include/sys/wait.h /usr/include/features.h /usr/include/sys/cdefs.h /usr/include/gnu/types.h \ /usr/include/waitflags.h /usr/include/linux/wait.h /usr/include/waitstatus.h \ /usr/include/endian.h /usr/include/bytesex.h /usr/include/sys/signal.h /usr/include/signal.h \ /usr/include/linux/signal.h /usr/include/sys/stat.h /usr/include/linux/stat.h \ - /usr/include/errno.h /usr/include/linux/errno.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/limits.h \ - /usr/lib/gcc-lib/i486-linux/2.5.8/include/syslimits.h /usr/include/limits.h \ - /usr/include/posix1_lim.h /usr/include/linux/limits.h /usr/include/posix2_lim.h \ - /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h /usr/include/stdlib.h \ - /usr/lib/gcc-lib/i486-linux/2.5.8/include/stddef.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/float.h \ - /usr/include/alloca.h /usr/include/string.h /usr/include/mntent.h /usr/include/unistd.h \ - /usr/include/posix_opt.h /usr/include/getopt.h ../version.h fsck.h -lsattr.o : lsattr.c /usr/include/dirent.h /usr/include/features.h /usr/include/sys/cdefs.h \ + /usr/lib/gcc-lib/i486-linux/2.5.8/include/limits.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/syslimits.h \ + /usr/include/limits.h /usr/include/posix1_lim.h /usr/include/linux/limits.h \ + /usr/include/posix2_lim.h /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \ + /usr/include/string.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stddef.h /usr/include/stdlib.h \ + /usr/include/errno.h /usr/include/linux/errno.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/float.h \ + /usr/include/alloca.h /usr/include/mntent.h /usr/include/unistd.h /usr/include/posix_opt.h \ + /usr/include/confname.h /usr/include/malloc.h /usr/include/getopt.h ./../version.h \ + ./fsck.h +lsattr.o : ./lsattr.c /usr/include/dirent.h /usr/include/features.h /usr/include/sys/cdefs.h \ /usr/include/gnu/types.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stddef.h \ /usr/include/sys/types.h /usr/include/linux/types.h /usr/include/asm/types.h \ /usr/include/linux/limits.h /usr/include/linux/dirent.h /usr/include/posix1_lim.h \ /usr/include/errno.h /usr/include/linux/errno.h /usr/include/fcntl.h /usr/include/linux/fcntl.h \ /usr/include/getopt.h /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \ - /usr/include/unistd.h /usr/include/posix_opt.h /usr/include/sys/param.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/limits.h \ - /usr/lib/gcc-lib/i486-linux/2.5.8/include/syslimits.h /usr/include/limits.h \ - /usr/include/posix2_lim.h /usr/include/linux/param.h /usr/include/asm/param.h \ + /usr/include/unistd.h /usr/include/posix_opt.h /usr/include/confname.h /usr/include/sys/param.h \ + /usr/lib/gcc-lib/i486-linux/2.5.8/include/limits.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/syslimits.h \ + /usr/include/limits.h /usr/include/posix2_lim.h /usr/include/linux/param.h /usr/include/asm/param.h \ /usr/include/sys/stat.h /usr/include/linux/stat.h /usr/include/linux/ext2_fs.h \ ../lib/et/com_err.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stdarg.h ../lib/e2p/e2p.h \ - ../version.h -mke2fs.o : mke2fs.c /usr/include/string.h /usr/include/features.h /usr/include/sys/cdefs.h \ + ./../version.h +mke2fs.o : ./mke2fs.c /usr/include/string.h /usr/include/features.h /usr/include/sys/cdefs.h \ /usr/lib/gcc-lib/i486-linux/2.5.8/include/stddef.h /usr/include/fcntl.h /usr/include/sys/types.h \ - /usr/include/linux/types.h /usr/include/asm/types.h /usr/include/linux/fcntl.h \ - /usr/include/ctype.h /usr/include/termios.h /usr/include/linux/termios.h /usr/include/time.h \ - /usr/include/getopt.h /usr/include/unistd.h /usr/include/posix_opt.h /usr/include/gnu/types.h \ - /usr/include/stdlib.h /usr/include/errno.h /usr/include/linux/errno.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/float.h \ - /usr/include/alloca.h /usr/include/mntent.h /usr/include/stdio.h /usr/include/libio.h \ - /usr/include/_G_config.h /usr/include/malloc.h /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h \ - /usr/include/linux/fs.h /usr/include/linux/linkage.h /usr/include/linux/limits.h \ - /usr/include/linux/wait.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \ - /usr/include/linux/net.h /usr/include/linux/socket.h /usr/include/linux/sockios.h \ - /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \ - /usr/include/linux/ext2_fs_i.h /usr/include/linux/hpfs_fs_i.h /usr/include/linux/msdos_fs_i.h \ - /usr/include/linux/umsdos_fs_i.h /usr/include/linux/iso_fs_i.h /usr/include/linux/nfs_fs_i.h \ - /usr/include/linux/nfs.h /usr/include/linux/xia_fs_i.h /usr/include/linux/sysv_fs_i.h \ - /usr/include/linux/ext2_fs.h ../lib/et/com_err.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stdarg.h \ - ../lib/ext2fs/ext2fs.h ../lib/ext2fs/io.h ../lib/ext2fs/ext2_err.h ../lib/ext2fs/bitops.h \ - ../version.h -mklost+found.o : mklost+found.c /usr/include/errno.h /usr/include/features.h \ + /usr/include/linux/types.h /usr/include/asm/types.h /usr/include/gnu/types.h \ + /usr/include/linux/fcntl.h /usr/include/ctype.h /usr/include/termios.h /usr/include/linux/termios.h \ + /usr/include/time.h /usr/include/getopt.h /usr/include/unistd.h /usr/include/posix_opt.h \ + /usr/include/confname.h /usr/include/stdlib.h /usr/include/errno.h /usr/include/linux/errno.h \ + /usr/lib/gcc-lib/i486-linux/2.5.8/include/float.h /usr/include/alloca.h /usr/include/mntent.h \ + /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h /usr/include/malloc.h \ + /usr/include/sys/ioctl.h /usr/include/linux/ioctl.h /usr/include/linux/fs.h \ + /usr/include/linux/linkage.h /usr/include/linux/limits.h /usr/include/linux/wait.h \ + /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/net.h \ + /usr/include/linux/socket.h /usr/include/linux/sockios.h /usr/include/linux/pipe_fs_i.h \ + /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/ext2_fs_i.h \ + /usr/include/linux/hpfs_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/umsdos_fs_i.h \ + /usr/include/linux/iso_fs_i.h /usr/include/linux/nfs_fs_i.h /usr/include/linux/nfs.h \ + /usr/include/linux/xia_fs_i.h /usr/include/linux/sysv_fs_i.h /usr/include/linux/ext2_fs.h \ + ../lib/et/com_err.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stdarg.h ../lib/ext2fs/ext2fs.h \ + ../lib/ext2fs/io.h ../lib/ext2fs/ext2_err.h ../lib/ext2fs/bitops.h ./../version.h +mklost+found.o : ./mklost+found.c /usr/include/errno.h /usr/include/features.h \ /usr/include/sys/cdefs.h /usr/include/linux/errno.h /usr/include/fcntl.h /usr/include/sys/types.h \ - /usr/include/linux/types.h /usr/include/asm/types.h /usr/include/linux/fcntl.h \ - /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h /usr/include/string.h \ - /usr/lib/gcc-lib/i486-linux/2.5.8/include/stddef.h /usr/include/unistd.h /usr/include/posix_opt.h \ - /usr/include/gnu/types.h /usr/include/sys/param.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/limits.h \ + /usr/include/linux/types.h /usr/include/asm/types.h /usr/include/gnu/types.h \ + /usr/include/linux/fcntl.h /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \ + /usr/include/string.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stddef.h /usr/include/unistd.h \ + /usr/include/posix_opt.h /usr/include/confname.h /usr/include/sys/param.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/limits.h \ /usr/lib/gcc-lib/i486-linux/2.5.8/include/syslimits.h /usr/include/limits.h \ /usr/include/posix1_lim.h /usr/include/linux/limits.h /usr/include/posix2_lim.h \ /usr/include/linux/param.h /usr/include/asm/param.h /usr/include/sys/stat.h \ - /usr/include/linux/stat.h /usr/include/linux/ext2_fs.h ../version.h -tune2fs.o : tune2fs.c /usr/include/fcntl.h /usr/include/features.h /usr/include/sys/cdefs.h \ + /usr/include/linux/stat.h /usr/include/linux/ext2_fs.h ./../version.h +tune2fs.o : ./tune2fs.c /usr/include/fcntl.h /usr/include/features.h /usr/include/sys/cdefs.h \ /usr/include/sys/types.h /usr/include/linux/types.h /usr/include/asm/types.h \ - /usr/include/linux/fcntl.h /usr/include/grp.h /usr/include/gnu/types.h /usr/include/stdio.h \ + /usr/include/gnu/types.h /usr/include/linux/fcntl.h /usr/include/grp.h /usr/include/stdio.h \ /usr/include/libio.h /usr/include/_G_config.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stddef.h \ /usr/include/getopt.h /usr/include/pwd.h /usr/include/stdlib.h /usr/include/errno.h \ /usr/include/linux/errno.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/float.h \ /usr/include/alloca.h /usr/include/string.h /usr/include/time.h /usr/include/unistd.h \ - /usr/include/posix_opt.h /usr/include/linux/ext2_fs.h ../lib/ext2fs/ext2fs.h \ - ../lib/et/com_err.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stdarg.h ../lib/ext2fs/io.h \ - ../lib/ext2fs/ext2_err.h ../lib/ext2fs/bitops.h ../lib/e2p/e2p.h /usr/include/dirent.h \ - /usr/include/linux/limits.h /usr/include/linux/dirent.h /usr/include/posix1_lim.h \ - ../version.h + /usr/include/posix_opt.h /usr/include/confname.h /usr/include/linux/ext2_fs.h \ + ../lib/ext2fs/ext2fs.h ../lib/et/com_err.h /usr/lib/gcc-lib/i486-linux/2.5.8/include/stdarg.h \ + ../lib/ext2fs/io.h ../lib/ext2fs/ext2_err.h ../lib/ext2fs/bitops.h ../lib/e2p/e2p.h \ + /usr/include/dirent.h /usr/include/linux/limits.h /usr/include/linux/dirent.h \ + /usr/include/posix1_lim.h ./../version.h diff --git a/misc/ChangeLog b/misc/ChangeLog index 9550ab86..e815ed5d 100644 --- a/misc/ChangeLog +++ b/misc/ChangeLog @@ -1,3 +1,132 @@ +Thu Oct 26 12:05:18 1995 <tytso@rsts-11.mit.edu> + + * Makefile.in (install): Strip programs when they are installed. + +Fri Aug 18 15:10:40 1995 Theodore Y. Ts'o <tytso@dcl> + + * mke2fs.c (PRS): Move call of check_mount() from main() to PRS(), + so we do the check to see if the filesystem is mounted + *before* we try to determine the size of the device. + +Wed Sep 6 23:34:07 1995 Remy Card <card@bbj> + + * fsck.c (load_fs_info): Load the informations from /etc/fstab in + the same order. + +Thu Aug 17 22:33:09 1995 <tytso@rsts-11.mit.edu> + + * mke2fs.c (check_mount): Use the new ext2fs_check_if_mounted() + function to determine if the device is mounted. + + * mke2fs.c (PRS): Change call to use the new + ext2fs_get_device_size() function in order to determine + the size of the filesystem. Remove get_size() and + is_valid_offset(), which are no longer called. + +Fri Aug 11 08:26:24 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> + + * fsck.c (fsck_device): Make sure fstype has been set by the user + and that it does not begin with "no" and the user has + specified exactly one type before using it as the type to + check. + +Fri Aug 11 14:17:18 1995 Remy Card <card@bbj> + + * badblocks.8: + * chattr.1: + * dumpe2fs.8: + * fsck.8: + * lsattr.1: + * mke2fs.8: + * mklost+found.8: + * tune2fs.8: Updated date and version number. + +Thu Aug 10 14:18:36 1995 Remy Card <card@bbj> + + * tune2fs.c: Fixed a bug which prevented the use of user and group + names with the -g and -u options. Thanks to Jean Christophe + ANDRE <progfou@mycrob.cafard.freenix.fr>. + + * mke2fs.8: + * tune2fs.8: Fixed a spelling error in Ted's name :-) + +Wed Aug 9 20:41:54 1995 Theodore Y. Ts'o <tytso@dcl> + + * mke2fs.c (count_blocks): Divide the size by + EXT2_BLOCK_SIZE(¶m), instead of assuming that the + blocksize is always 1024 bytes. + +Sat Aug 5 12:00:51 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> + + * mke2fs.c (PRS): Use malloc() instead of alloca() --- alloca() is + not portable!! In any case putenv() in some systems must + take a static character array or malloc()'ed memory; + passing memory allocated using alloca() to putenv() is not + advisable. + + * chattr.c (chattr_dir_proc): + * lsattr.c (lsattr_dir_proc): Use malloc() instead of alloca() --- + alloca is not portable! + + * fsck.c (fsck_device): If the filesystem type is specified by the + user using the -t option, let it override the type in + /etc/fstab. + + * fsck.c (strdup): Don't build strdup() if the system defines it. + +Mon Jun 12 19:15:10 1995 Theodore Y. Ts'o (tytso@dcl) + + * chattr.c, lsattr.c: Include <sys/types.h> for <dirent.h>'s + benefit. + + * The $(UPROGS) go in bin, not sbin. + + * badblocks.c, chattr.c, dumpe2fs.c, fsck.c, lsattr.c, mke2fs.c, + tune2fs.c: Don't include <getopt.h> if it doesn't exist. + +Mon Jun 12 16:36:04 1995 Theodore Y. Ts'o <tytso@dcl> + + * badblocks.c, chattr.c, dumpe2fs.c, fsck.c, lsattr.c, mke2fs.c, + tune2fs.c: Only include getopt.h if HAVE_GETOPT_H is defined. + +Sat Jun 10 23:37:09 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> + + * chattr.c: Include errno.h, since we use errno + + * fsck.c (load_fs_info): If HAVE_MNTENT_H is not defined, + explicitly initialize filesys_info to be NULL. + + * mke2fs.c: Include the stdio.h and errno.h header files + +Thu Jun 8 13:25:23 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> + + * mke2fs.c: Only include <linux/fs.h> if we can. + (get_size): Don't try to use the BLKGETSIZE ioctl unless it's defined. + (check_mount): Only check to see if the device is mounted if + HAVE_MNTENT_H is defined (by configure). + + * fsck.c (load_fs_info): Only try to get info about filesystems if + HAVE_MNTENT_H is defined (by configure). + (main): Allocate space for a new fsck_path instead of append to a + statically sized buffer. + (PRS): Use alloca to allocate the new path string, instead of + having a fixed size buffer (which was the wrong size anyway). + + * chattr.c (chattr_dir_proc): Use alloca to allocate space for a + filename instead of using a fixed-size buffer. + * lsattr.c (lsattr_dir_proc): Ditto. + * mklost+fond.c (main): Calculate the actual needed size for the + path buffer instead of using MAXPATHLEN (which not all systems have). + + * badblocks.c: Only include linux include files if we have them. + (flush_bufs): New function to flush a block device, optionally + syncing it first. This replaces other copies of this code. + (test_ro): Replace calls to ioctl with flush_bufs(). + (test_rw): Ditto. + + * Makefile.in: Rewritten to conform to GNU coding standards and + support separate compilation directories. + Sat Mar 11 10:59:58 1995 Theodore Y. Ts'o <tytso@localhost> * mke2fs.c (main, zap_bootblock): Added new function diff --git a/misc/Makefile b/misc/Makefile deleted file mode 100644 index 4cb15b26..00000000 --- a/misc/Makefile +++ /dev/null @@ -1,90 +0,0 @@ -include ../MCONFIG - -CFLAGS= $(OPT) $(WFLAGS) -I../lib -LDFLAGS= $(OPT) -SPROGS= mke2fs badblocks tune2fs dumpe2fs fsck -USPROGS= mklost+found -SMANPAGES= tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 \ - fsck.8 - -UPROGS= chattr lsattr -UMANPAGES= chattr.1 lsattr.1 - -TUNE2FS_OBJS= tune2fs.o -MKLPF_OBJS= mklost+found.o -MKE2FS_OBJS= mke2fs.o -CHATTR_OBJS= chattr.o -LSATTR_OBJS= lsattr.o -DUMPE2FS_OBJS= dumpe2fs.o -BADBLOCKS_OBJS= badblocks.o -FSCK_OBJS= fsck.o - -LIBS= -L../lib -lext2fs -le2p -lcom_err -DEPLIBS= ../lib/libext2fs.a ../lib/libe2p.a ../lib/libcom_err.a - -all: $(SPROGS) $(UPROGS) $(USPROGS) - -tune2fs: $(TUNE2FS_OBJS) $(DEPLIBS) - $(CC) $(LDFLAGS) -o tune2fs $(TUNE2FS_OBJS) $(LIBS) - -mklost+found: $(MKLPF_OBJS) - $(CC) $(LDFLAGS) -o mklost+found $(MKLPF_OBJS) - -mke2fs: $(MKE2FS_OBJS) $(DEPLIBS) - $(CC) $(LDFLAGS) -o mke2fs $(MKE2FS_OBJS) $(LIBS) - -mke2fs.static: $(MKE2FS_OBJS) $(DEPLIBS) - $(CC) $(LDFLAGS) -static -o mke2fs.static $(MKE2FS_OBJS) $(LIBS) - -chattr: $(CHATTR_OBJS) $(DEPLIBS) - $(CC) $(LDFLAGS) -o chattr $(CHATTR_OBJS) $(LIBS) - -lsattr: $(LSATTR_OBJS) $(DEPLIBS) - $(CC) $(LDFLAGS) -o lsattr $(LSATTR_OBJS) $(LIBS) - -dumpe2fs: $(DUMPE2FS_OBJS) $(DEPLIBS) - $(CC) $(LDFLAGS) -o dumpe2fs $(DUMPE2FS_OBJS) $(LIBS) - -badblocks: $(BADBLOCKS_OBJS) $(DEPLIBS) - $(CC) $(LDFLAGS) -o badblocks $(BADBLOCKS_OBJS) $(LIBS) - -install:: $(SPROGS) $(UPROGS) - for i in $(SPROGS); do \ - $(INSTALLBIN) $$i $(SBINDIR)/$$i; \ - done - for i in $(USPROGS); do \ - $(INSTALLBIN) $$i $(USRSBINDIR)/$$i; \ - done - ln -sf mke2fs $(SBINDIR)/mkfs.ext2 - for i in $(UPROGS); do \ - $(INSTALLBIN) $$i $(USRBINDIR)/$$i; \ - done - -install:: $(SMANPAGES) $(UMANPAGES) - for i in $(SMANPAGES); do \ - $(INSTALLMAN) $$i $(SMANDIR)/$$i; \ - done - for i in $(UMANPAGES); do \ - $(INSTALLMAN) $$i $(UMANDIR)/$$i; \ - done - -install-tree:: $(SPROGS) $(UPROGS) - for i in $(SPROGS) $(UPROGS); do \ - rm -f ../bin/$$i; \ - cp $$i ../bin; \ - strip ../bin/$$i; \ - chmod 555 ../bin/$$i; \ - done - ln -sf mke2fs ../bin/mkfs.ext2 - -clean: - rm -f $(SPROGS) $(USPROGS) $(UPROGS) mke2fs.static \ - \#* *.s *.o *.a *~ core - -really-clean: clean - rm -f .depend - -dep depend .depend: - $(CPP) $(CFLAGS) -M *.c >.depend - -include .depend diff --git a/misc/Makefile.in b/misc/Makefile.in new file mode 100644 index 00000000..ee031566 --- /dev/null +++ b/misc/Makefile.in @@ -0,0 +1,148 @@ +# +# Standard e2fsprogs prologue.... +# + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +top_builddir = .. +INSTALL = @INSTALL@ + +@MCONFIG@ + +SPROGS= mke2fs badblocks tune2fs dumpe2fs fsck +USPROGS= mklost+found +SMANPAGES= tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 fsck.8 + +UPROGS= chattr lsattr +UMANPAGES= chattr.1 lsattr.1 + +TUNE2FS_OBJS= tune2fs.o +MKLPF_OBJS= mklost+found.o +MKE2FS_OBJS= mke2fs.o +CHATTR_OBJS= chattr.o +LSATTR_OBJS= lsattr.o +DUMPE2FS_OBJS= dumpe2fs.o +BADBLOCKS_OBJS= badblocks.o +FSCK_OBJS= fsck.o + +SRCS= $(srcdir)/tune2fs.c $(srcdir)/mklost+found.c $(srcdir)/mke2fs.c \ + $(srcdir)/chattr.c $(srcdir)/lsattr.c $(srcdir)/dumpe2fs.c \ + $(srcdir)/badblocks.c $(srcdir)/fsck.c + +LIBS= -L../lib -lext2fs -le2p -lcom_err +DEPLIBS= ../lib/libext2fs.a ../lib/libe2p.a ../lib/libcom_err.a + +.c.o: + $(CC) -c $(CFLAGS) $< -o $@ + +all:: $(SPROGS) $(UPROGS) $(USPROGS) + +tune2fs: $(TUNE2FS_OBJS) $(DEPLIBS) + $(CC) $(LDFLAGS) -o tune2fs $(TUNE2FS_OBJS) $(LIBS) + +mklost+found: $(MKLPF_OBJS) + $(CC) $(LDFLAGS) -o mklost+found $(MKLPF_OBJS) + +mke2fs: $(MKE2FS_OBJS) $(DEPLIBS) + $(CC) $(LDFLAGS) -o mke2fs $(MKE2FS_OBJS) $(LIBS) + +mke2fs.static: $(MKE2FS_OBJS) $(DEPLIBS) + $(CC) $(LDFLAGS) -static -o mke2fs.static $(MKE2FS_OBJS) $(LIBS) + +chattr: $(CHATTR_OBJS) $(DEPLIBS) + $(CC) $(LDFLAGS) -o chattr $(CHATTR_OBJS) $(LIBS) + +lsattr: $(LSATTR_OBJS) $(DEPLIBS) + $(CC) $(LDFLAGS) -o lsattr $(LSATTR_OBJS) $(LIBS) + +dumpe2fs: $(DUMPE2FS_OBJS) $(DEPLIBS) + $(CC) $(LDFLAGS) -o dumpe2fs $(DUMPE2FS_OBJS) $(LIBS) + +fsck: $(FSCK_OBJS) $(DEPLIBS) + $(CC) $(LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBS) + +badblocks: $(BADBLOCKS_OBJS) $(DEPLIBS) + $(CC) $(LDFLAGS) -o badblocks $(BADBLOCKS_OBJS) $(LIBS) + +installdirs: + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) \ + $(DESTDIR)$(ubindir) $(DESTDIR)$(man1dir) \ + $(DESTDIR)$(cat1dir) $(DESTDIR)$(man8dir) $(DESTDIR)$(cat8dir) + +install: all $(SMANPAGES) $(UMANPAGES) installdirs + for i in $(SPROGS); do \ + $(INSTALL_PROGRAM) $$i $(DESTDIR)$(sbindir)/$$i; \ + $(STRIP) $(DESTDIR)$(sbindir)/$$i; \ + done + for i in $(USPROGS); do \ + $(INSTALL_PROGRAM) $$i $(DESTDIR)$(usbindir)/$$i; \ + $(STRIP) $(DESTDIR)$(usbindir)/$$i; \ + done + $(LN) -f $(DESTDIR)$(sbindir)/mke2fs $(DESTDIR)$(sbindir)/mkfs.ext2 + for i in $(UPROGS); do \ + $(INSTALL_PROGRAM) $$i $(DESTDIR)$(ubindir)/$$i; \ + $(STRIP) $(DESTDIR)$(ubindir)/$$i; \ + done + for i in $(SMANPAGES); do \ + $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(man8dir)/$$i; \ + done + for i in $(UMANPAGES); do \ + $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(man1dir)/$$i; \ + done + +uninstall: + for i in $(SPROGS); do \ + $(RM) -f $(sbindir)/$$i; \ + done + for i in $(USPROGS); do \ + $(RM) -f $(usbindir)/$$i; \ + done + $(RM) -f $(sbindir)/mkfs.ext2 + for i in $(UPROGS); do \ + $(RM) -f $(ubindir)/$$i; \ + done + for i in $(SMANPAGES); do \ + $(RM) -f $(man8dir)/$$i; \ + done + for i in $(UMANPAGES); do \ + $(RM) -f $(man1dir)/$$i; \ + done + +clean: + $(RM) -f $(SPROGS) $(USPROGS) $(UPROGS) mke2fs.static \ + \#* *.s *.o *.a *~ core +mostlyclean: clean +distclean: clean + $(RM) -f .depend Makefile + +# +++ Dependency line eater +++ +# +# Makefile dependencies follow. This must be the last section in +# the Makefile.in file +# +tune2fs.o : $(srcdir)/tune2fs.c \ + $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/et/com_err.h \ + $(top_srcdir)/lib/ext2fs/io.h $(top_builddir)/lib/ext2fs/ext2_err.h $(top_srcdir)/lib/ext2fs/bitops.h $(top_srcdir)/lib/e2p/e2p.h \ + $(srcdir)/../version.h +mklost+found.o : $(srcdir)/mklost+found.c \ + $(srcdir)/../version.h +mke2fs.o : $(srcdir)/mke2fs.c \ + $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2fs.h \ + $(top_srcdir)/lib/ext2fs/io.h $(top_builddir)/lib/ext2fs/ext2_err.h $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../version.h +chattr.o : $(srcdir)/chattr.c \ + $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/e2p/e2p.h \ + $(srcdir)/../version.h +lsattr.o : $(srcdir)/lsattr.c \ + $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/e2p/e2p.h \ + $(srcdir)/../version.h +dumpe2fs.o : $(srcdir)/dumpe2fs.c \ + $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/et/com_err.h \ + $(top_srcdir)/lib/ext2fs/io.h $(top_builddir)/lib/ext2fs/ext2_err.h $(top_srcdir)/lib/ext2fs/bitops.h $(top_srcdir)/lib/e2p/e2p.h \ + $(srcdir)/../version.h +badblocks.o : $(srcdir)/badblocks.c \ + $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/io.h +fsck.o : $(srcdir)/fsck.c \ + $(srcdir)/../version.h \ + $(srcdir)/fsck.h + diff --git a/misc/badblocks.8 b/misc/badblocks.8 index 79a95c7c..57e1db5a 100644 --- a/misc/badblocks.8 +++ b/misc/badblocks.8 @@ -1,5 +1,5 @@ .\" -*- nroff -*- -.TH BADBLOCKS 8 "November 1994" "Version 0.5b" +.TH BADBLOCKS 8 "August 1995" "Version 0.5c" .SH NAME badblocks \- search a device for bad blocks .SH SYNOPSIS diff --git a/misc/badblocks.c b/misc/badblocks.c index b9bcaca8..dd9968b9 100644 --- a/misc/badblocks.c +++ b/misc/badblocks.c @@ -20,7 +20,9 @@ #include <errno.h> #include <fcntl.h> +#ifdef HAVE_GETOPT_H #include <getopt.h> +#endif #include <signal.h> #include <stdio.h> #include <stdlib.h> @@ -30,8 +32,10 @@ #include <sys/ioctl.h> #include <sys/types.h> +#if HAVE_LINUX_FS_H #include <linux/fd.h> #include <linux/fs.h> +#endif #include "et/com_err.h" #include "ext2fs/io.h" @@ -88,6 +92,26 @@ static void alarm_intr (int alnum) fflush (stderr); } +static void flush_bufs (int dev, int sync) +{ + if (v_flag +#if !defined (BLKFLSBUF) && !defined (FDFLUSH) + && sync +#endif + ) + fprintf (stderr, "Flushing buffers\n"); + + if (sync && fsync (dev) == -1) + com_err (program_name, errno, "during fsync"); + +#ifdef BLKLSBUF + ioctl (dev, BLKFLSBUF, 0); /* In case this is a HD */ +#endif +#ifdef FDFLUSH + ioctl (dev, FDFLUSH, 0); /* In case this is floppy */ +#endif +} + static void test_ro (int dev, unsigned long blocks_count, unsigned long block_size, FILE * out, unsigned long from_count) @@ -103,11 +127,7 @@ static void test_ro (int dev, unsigned long blocks_count, com_err (program_name, ENOMEM, "while allocating buffers"); exit (1); } - - if (v_flag) - fprintf (stderr, "Flushing buffers\n"); - ioctl (dev, BLKFLSBUF, 0); /* In case this is a HD */ - ioctl (dev, FDFLUSH, 0); /* In case this is floppy */ + flush_bufs (dev, 0); if (v_flag) { fprintf (stderr, "Checking for bad blocks in read-only mode\n"); @@ -158,10 +178,8 @@ static void test_rw (int dev, unsigned long blocks_count, exit (1); } - if (v_flag) - fprintf (stderr, "Flushing buffers\n"); - ioctl (dev, BLKFLSBUF, 0); /* In case this is a HD */ - ioctl (dev, FDFLUSH, 0); /* In case this is floppy */ + flush_bufs (dev, 0); + if (v_flag) fprintf (stderr, "Checking for bad blocks in read-write mode\n"); for (i = 0; i < sizeof (pattern); i++) @@ -190,12 +208,7 @@ static void test_rw (int dev, unsigned long blocks_count, alarm (0); if (s_flag | v_flag) fprintf(stderr, "done \n"); - if (v_flag) - fprintf (stderr, "Flushing buffers\n"); - if (fsync (dev) == -1) - com_err (program_name, errno, "during fsync"); - ioctl (dev, BLKFLSBUF, 0); /* In case this is a HD */ - ioctl (dev, FDFLUSH, 0); /* In case this is floppy */ + flush_bufs (dev, 1); if (s_flag | v_flag) fprintf (stderr, "Reading and comparing: "); num_blocks = blocks_count; @@ -221,10 +234,7 @@ static void test_rw (int dev, unsigned long blocks_count, alarm (0); if (s_flag | v_flag) fprintf(stderr, "done \n"); - if (v_flag) - fprintf (stderr, "Flushing buffers\n"); - ioctl (dev, BLKFLSBUF, 0); /* In case this is a HD */ - ioctl (dev, FDFLUSH, 0); /* In case this is floppy */ + flush_bufs (dev, 0); } } diff --git a/misc/chattr.1 b/misc/chattr.1 index 2a45667f..09a9bfb2 100644 --- a/misc/chattr.1 +++ b/misc/chattr.1 @@ -1,5 +1,5 @@ .\" -*- nroff -*- -.TH CHATTR 1 "November 1994" "Version 0.5b" +.TH CHATTR 1 "October 1995" "Version 0.5c" .SH NAME chattr \- change file attributes on a Linux second extended file system .SH SYNOPSIS diff --git a/misc/chattr.c b/misc/chattr.c index 8df57e9f..a90bdf4d 100644 --- a/misc/chattr.c +++ b/misc/chattr.c @@ -16,12 +16,18 @@ * 94/02/27 - Integrated in Ted's distribution */ +#include <sys/types.h> #include <dirent.h> #include <fcntl.h> +#ifdef HAVE_GETOPT_H #include <getopt.h> +#endif #include <stdio.h> #include <stdlib.h> #include <unistd.h> +#ifdef HAVE_ERRNO_H +#include <errno.h> +#endif #include <sys/param.h> #include <sys/stat.h> #include <linux/ext2_fs.h> @@ -264,12 +270,17 @@ static void change_attributes (const char * name) static int chattr_dir_proc (const char * dir_name, struct dirent * de, void * private) { - char path[MAXPATHLEN]; - if (strcmp (de->d_name, ".") && strcmp (de->d_name, "..")) { + char *path; + + path = malloc(strlen (dir_name) + 1 + strlen (de->d_name) + 1); + if (!path) + fatal_error("Couldn't allocate path variable " + "in chattr_dir_proc", 1); sprintf (path, "%s/%s", dir_name, de->d_name); change_attributes (path); + free(path); } return 0; } diff --git a/misc/dumpe2fs.8 b/misc/dumpe2fs.8 index 8cb25cc6..f54928d4 100644 --- a/misc/dumpe2fs.8 +++ b/misc/dumpe2fs.8 @@ -1,5 +1,8 @@ -.TH DUMPE2FS 8 "November 1994" "Version 0.5b" - +.\" -*- nroff -*- +.\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved. +.\" This file may be copied under the terms of the GNU Public License. +.\" +.TH DUMPE2FS 8 "October 1995" "Version 0.5c" .SH NAME dumpe2fs \- dump filesystem information .SH SYNOPSIS diff --git a/misc/dumpe2fs.c b/misc/dumpe2fs.c index d820613e..b7a50b3e 100644 --- a/misc/dumpe2fs.c +++ b/misc/dumpe2fs.c @@ -16,7 +16,9 @@ * 94/02/27 - Ported to use the ext2fs library */ +#ifdef HAVE_GETOPT_H #include <getopt.h> +#endif #include <fcntl.h> #include <stdio.h> #include <stdlib.h> @@ -78,8 +80,8 @@ static void list_desc (ext2_filsys fs) for (i = 0; i < fs->group_desc_count; i++) { printf ("Group %lu:\n", i); - printf (" Block bitmap at %lu, Inode bitmap at %lu, " - "Inode table at %lu\n", + printf (" Block bitmap at %u, Inode bitmap at %u, " + "Inode table at %u\n", fs->group_desc[i].bg_block_bitmap, fs->group_desc[i].bg_inode_bitmap, fs->group_desc[i].bg_inode_table); @@ -118,9 +120,9 @@ static void list_bad_blocks(ext2_filsys fs) exit(1); } if (badblocks_list_iterate(bb_iter, &blk)) - printf("Bad blocks: %ld", blk); + printf("Bad blocks: %d", blk); while (badblocks_list_iterate(bb_iter, &blk)) - printf(", %ld", blk); + printf(", %d", blk); badblocks_list_iterate_end(bb_iter); printf("\n"); } @@ -144,7 +146,7 @@ static void dump_bad_blocks(ext2_filsys fs) exit(1); } while (badblocks_list_iterate(bb_iter, &blk)) - printf("%ld\n", blk); + printf("%d\n", blk); badblocks_list_iterate_end(bb_iter); } diff --git a/misc/fsck.8 b/misc/fsck.8 index cfc88326..7b78a682 100644 --- a/misc/fsck.8 +++ b/misc/fsck.8 @@ -1,5 +1,8 @@ .\" -*- nroff -*- -.TH FSCK 8 "November 1994" "Version 0.5b" +.\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved. +.\" This file may be copied under the terms of the GNU Public License. +.\" +.TH FSCK 8 "October 1995" "Version 0.5c" .SH NAME fsck \- check and repair a Linux file system .SH SYNOPSIS diff --git a/misc/fsck.c b/misc/fsck.c index 40f715f1..ef210245 100644 --- a/misc/fsck.c +++ b/misc/fsck.c @@ -26,15 +26,28 @@ #include <sys/wait.h> #include <sys/signal.h> #include <sys/stat.h> -#include <errno.h> #include <limits.h> #include <stdio.h> -#include <stdlib.h> #include <string.h> +#if HAVE_STDLIB_H +#include <stdlib.h> +#endif +#if HAVE_ERRNO_H #include <errno.h> +#endif +#if HAVE_MNTENT_H #include <mntent.h> +#endif +#if HAVE_UNISTD_H #include <unistd.h> +#endif +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#include <malloc.h> +#ifdef HAVE_GETOPT_H #include <getopt.h> +#endif #include "../version.h" #include "fsck.h" @@ -114,9 +127,15 @@ char *progname; char *fstype = NULL; struct fs_info *filesys_info; struct fsck_instance *instance_list; -static char fsck_path[PATH_MAX + 32]; +const char *fsck_prefix_path = "/sbin:/sbin/fs.d:/sbin/fs:/etc/fs:/etc"; +char *fsck_path = 0; static int ignore(struct fs_info *); +#ifdef HAVE_STRDUP +#ifdef _POSIX_SOURCE +extern char *strdup(const char *s); +#endif +#else static char *strdup(const char *s) { char *ret; @@ -126,6 +145,7 @@ static char *strdup(const char *s) strcpy(ret, s); return ret; } +#endif static void free_instance(struct fsck_instance *i) { @@ -142,9 +162,11 @@ static void free_instance(struct fsck_instance *i) */ static void load_fs_info(NOARGS) { +#if HAVE_MNTENT_H FILE *mntfile; struct mntent *mp; struct fs_info *fs; + struct fs_info *fs_last = NULL; int old_fstab = 1; filesys_info = NULL; @@ -164,8 +186,12 @@ static void load_fs_info(NOARGS) fs->opts = strdup(mp->mnt_opts); fs->freq = mp->mnt_freq; fs->passno = mp->mnt_passno; - fs->next = filesys_info; - filesys_info = fs; + fs->next = NULL; + if (!filesys_info) + filesys_info = fs; + else + fs_last->next = fs; + fs_last = fs; if (fs->passno) old_fstab = 0; } @@ -184,6 +210,9 @@ static void load_fs_info(NOARGS) fs->passno = 1; } } +#else + filesys_info = NULL; +#endif /* HAVE_MNTENT_H */ } /* Lookup filesys in /etc/fstab and return the corresponding entry. */ @@ -366,21 +395,30 @@ static int wait_all(NOARGS) /* * Run the fsck program on a particular device + * + * If the type is specified using -t, and it isn't prefixed with "no" + * (as in "noext2") and only one filesystem type is specified, then + * use that type regardless of what is specified in /etc/fstab. + * + * If the type isn't specified by the user, then use either the type + * specified in /etc/fstab, or DEFAULT_FSTYPE. */ static void fsck_device(char *device) { - const char *type; + const char *type = 0; struct fs_info *fsent; int retval; char prog[80]; + if (fstype && strncmp(type, "no", 2) && !strchr(type, ',')) + type = fstype; + if ((fsent = lookup(device))) { device = fsent->device; - type = fsent->type; - } else if (fstype && strncmp(fstype, "no", 2) && - !strchr(fstype, ',')) - type = fstype; - else + if (!type) + type = fsent->type; + } + if (!type) type = DEFAULT_FSTYPE; sprintf(prog, "fsck.%s", type); @@ -699,9 +737,9 @@ static void PRS(int argc, char *argv[]) int main(int argc, char *argv[]) { - char *oldpath; - int status = 0; int i; + int status = 0; + char *oldpath = getenv("PATH"); PRS(argc, argv); @@ -710,10 +748,16 @@ int main(int argc, char *argv[]) E2FSPROGS_VERSION, E2FSPROGS_DATE); /* Update our search path to include uncommon directories. */ - strcpy(fsck_path, "/sbin:/sbin/fs.d:/sbin/fs:/etc/fs:/etc:"); - if ((oldpath = getenv("PATH")) != NULL) - strcat(fsck_path, oldpath); - + if (oldpath) { + fsck_path = malloc (strlen (fsck_prefix_path) + 1 + + strlen (oldpath) + 1); + strcpy (fsck_path, fsck_prefix_path); + strcat (fsck_path, ":"); + strcat (fsck_path, oldpath); + } else { + fsck_path = strdup(oldpath); + } + /* If -A was specified ("check all"), do that! */ if (doall) return check_all(); @@ -730,7 +774,7 @@ int main(int argc, char *argv[]) } } } - status |= wait_all(); + free(fsck_path); return status; } diff --git a/misc/lsattr.1 b/misc/lsattr.1 index ea61acd0..5b634312 100644 --- a/misc/lsattr.1 +++ b/misc/lsattr.1 @@ -1,5 +1,5 @@ .\" -*- nroff -*- -.TH LSATTR 1 "November 1994" "Version 0.5b" +.TH LSATTR 1 "October 1995" "Version 0.5c" .SH NAME lsattr \- list file attributes on a Linux second extended file system .SH SYNOPSIS @@ -12,7 +12,7 @@ files... ] .SH DESCRIPTION .B lsattr -lists the files attributes on an second extended file system. +lists the file attributes on a second extended file system. .SH OPTIONS .TP .I -R diff --git a/misc/lsattr.c b/misc/lsattr.c index 6ce190c4..3fe4b9a0 100644 --- a/misc/lsattr.c +++ b/misc/lsattr.c @@ -16,12 +16,21 @@ * 94/02/27 - Integrated in Ted's distribution */ +#include <sys/types.h> #include <dirent.h> +#ifdef HAVE_ERRNO_H #include <errno.h> +#endif #include <fcntl.h> +#ifdef HAVE_GETOPT_H #include <getopt.h> +#else +extern int optind; +extern char *optarg; +#endif #include <stdio.h> #include <unistd.h> +#include <stdlib.h> #include <sys/param.h> #include <sys/stat.h> #include <linux/ext2_fs.h> @@ -84,26 +93,28 @@ static void lsattr_args (const char * name) static int lsattr_dir_proc (const char * dir_name, struct dirent * de, void * private) { - char path [MAXPATHLEN]; struct stat st; + char *path; + + path = malloc(strlen (dir_name) + 1 + strlen (de->d_name) + 1); sprintf (path, "%s/%s", dir_name, de->d_name); if (lstat (path, &st) == -1) perror (path); - else - { - if (de->d_name[0] != '.' || all) - { + else { + if (de->d_name[0] != '.' || all) { list_attributes (path); if (S_ISDIR(st.st_mode) && recursive && - strcmp (de->d_name, ".") && strcmp (de->d_name, "..")) - { + strcmp(de->d_name, ".") && + strcmp(de->d_name, "..")) { printf ("\n%s:\n", path); - iterate_on_dir (path, lsattr_dir_proc, (void *) NULL); + iterate_on_dir (path, lsattr_dir_proc, + (void *) NULL); printf ("\n"); } } } + free(path); return 0; } diff --git a/misc/mke2fs.8 b/misc/mke2fs.8 index c398986b..16976857 100644 --- a/misc/mke2fs.8 +++ b/misc/mke2fs.8 @@ -1,5 +1,8 @@ .\" -*- nroff -*- -.TH MKE2FS 8 "November 1994" "Version 0.5b" +.\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved. +.\" This file may be copied under the terms of the GNU Public License. +.\" +.TH MKE2FS 8 "October 1995" "Version 0.5c" .SH NAME mke2fs \- create a Linux second extended file system .SH SYNOPSIS @@ -106,7 +109,7 @@ is no gaurantee that any data will be salvageable. .SH AUTHOR This version of .B mke2fs -has been written by Theodore T'so <tytso@mit.edu>. +has been written by Theodore Ts'o <tytso@mit.edu>. .SH BUGS .B mke2fs accepts the -f option but currently ignores it because the second diff --git a/misc/mke2fs.c b/misc/mke2fs.c index 13f536ab..687deba6 100644 --- a/misc/mke2fs.c +++ b/misc/mke2fs.c @@ -11,20 +11,35 @@ * enforced (but it's not much fun on a character device :-). */ +#include <stdio.h> #include <string.h> #include <fcntl.h> #include <ctype.h> #include <termios.h> #include <time.h> +#ifdef HAVE_GETOPT_H #include <getopt.h> +#endif +#ifdef HAVE_UNISTD_H #include <unistd.h> +#endif +#ifdef HAVE_STDLIB_H #include <stdlib.h> +#endif +#ifdef HAVE_ERRNO_H +#include <errno.h> +#endif +#ifdef HAVE_MNTENT_H #include <mntent.h> +#endif #include <malloc.h> #include <sys/ioctl.h> #include <sys/types.h> +#include <stdio.h> +#ifdef HAVE_LINUX_FS_H #include <linux/fs.h> +#endif #include <linux/ext2_fs.h> #include "et/com_err.h" @@ -71,72 +86,21 @@ static int log2(int arg) return l; } -static long valid_offset (int fd, ext2_loff_t offset) -{ - char ch; - - if (ext2_llseek (fd, offset, 0) < 0) - return 0; - if (read (fd, &ch, 1) < 1) - return 0; - return 1; -} - -static int count_blocks (int fd) -{ - ext2_loff_t high, low; - - low = 0; - for (high = 1; valid_offset (fd, high); high *= 2) - low = high; - while (low < high - 1) - { - const ext2_loff_t mid = (low + high) / 2; - - if (valid_offset (fd, mid)) - low = mid; - else - high = mid; - } - valid_offset (fd, 0); - return (low + 1) / 1024; -} - -static int get_size(const char *file) -{ - int fd; - int size; - - fd = open(file, O_RDWR); - if (fd < 0) { - com_err("open", errno, "while trying to determine size of %s", - file); - exit(1); - } - if (ioctl(fd, BLKGETSIZE, &size) >= 0) { - close(fd); - return size / (EXT2_BLOCK_SIZE(¶m) / 512); - } - - size = count_blocks(fd); - close(fd); - return size; -} - static void check_mount(NOARGS) { - FILE * f; - struct mntent * mnt; + errcode_t retval; + int mount_flags; - if ((f = setmntent (MOUNTED, "r")) == NULL) + retval = ext2fs_check_if_mounted(device_name, &mount_flags); + if (retval) { + com_err("ext2fs_check_if_mount", retval, + "while determining whether %s is mounted.", + device_name); return; - while ((mnt = getmntent (f)) != NULL) - if (strcmp (device_name, mnt->mnt_fsname) == 0) - break; - endmntent (f); - if (!mnt) + } + if (!(mount_flags & EXT2_MF_MOUNTED)) return; - + fprintf(stderr, "%s is mounted; will not make a filesystem here!\n", device_name); exit(1); @@ -147,7 +111,7 @@ static void check_mount(NOARGS) */ static void invalid_block(ext2_filsys fs, blk_t blk) { - printf("Bad block %lu out of range; ignored.\n", blk); + printf("Bad block %u out of range; ignored.\n", blk); return; } @@ -184,7 +148,7 @@ static void test_disk(ext2_filsys fs, badblocks_list *bb_list) errcode_t retval; char buf[1024]; - sprintf(buf, "badblocks %s%s %ld", quiet ? "" : "-s ", + sprintf(buf, "badblocks %s%s %d", quiet ? "" : "-s ", fs->device_name, fs->super->s_blocks_count); if (verbose) @@ -227,7 +191,7 @@ static void handle_bad_blocks(ext2_filsys fs, badblocks_list bb_list) if (badblocks_list_test(bb_list, i)) { fprintf(stderr, "Block %d in primary superblock/group " "descriptor area bad.\n", i); - fprintf(stderr, "Blocks %ld through %d must be good " + fprintf(stderr, "Blocks %d through %d must be good " "in order to build a filesystem.\n", fs->super->s_first_data_block, must_be_good); fprintf(stderr, "Aborting....\n"); @@ -250,7 +214,7 @@ static void handle_bad_blocks(ext2_filsys fs, badblocks_list bb_list) j)) { if (!group_bad) fprintf(stderr, -"Warning: the backup superblock/group descriptors at block %ld contain\n" +"Warning: the backup superblock/group descriptors at block %d contain\n" " bad blocks.\n\n", group_block); group_bad++; @@ -304,7 +268,7 @@ static void new_table_block(ext2_filsys fs, blk_t first_block, retval = io_channel_write_blk(fs->io, blk, count, buf); if (retval) printf("Warning: could not write %d blocks " - "starting at %ld for %s: %s\n", + "starting at %d for %s: %s\n", count, blk, name, error_message(retval)); } @@ -457,24 +421,24 @@ static void show_stats(ext2_filsys fs) int i, col_left; if (param.s_blocks_count != s->s_blocks_count) - printf("warning: %ld blocks unused.\n\n", + printf("warning: %d blocks unused.\n\n", param.s_blocks_count - s->s_blocks_count); - printf("%lu inodes, %lu blocks\n", s->s_inodes_count, + printf("%u inodes, %u blocks\n", s->s_inodes_count, s->s_blocks_count); - printf("%lu blocks (%2.2f%%) reserved for the super user\n", + printf("%u blocks (%2.2f%%) reserved for the super user\n", s->s_r_blocks_count, 100.0 * s->s_r_blocks_count / s->s_blocks_count); - printf("First data block=%lu\n", s->s_first_data_block); - printf("Block size=%u (log=%lu)\n", fs->blocksize, + printf("First data block=%u\n", s->s_first_data_block); + printf("Block size=%u (log=%u)\n", fs->blocksize, s->s_log_block_size); - printf("Fragment size=%u (log=%lu)\n", fs->fragsize, + printf("Fragment size=%u (log=%u)\n", fs->fragsize, s->s_log_frag_size); printf("%lu block group%s\n", fs->group_desc_count, (fs->group_desc_count > 1) ? "s" : ""); - printf("%lu blocks per group, %lu fragments per group\n", + printf("%u blocks per group, %u fragments per group\n", s->s_blocks_per_group, s->s_frags_per_group); - printf("%lu inodes per group\n", s->s_inodes_per_group); + printf("%u inodes per group\n", s->s_inodes_per_group); if (fs->group_desc_count == 1) { printf("\n"); @@ -490,28 +454,36 @@ static void show_stats(ext2_filsys fs) printf("\n\t"); col_left = 8; } - printf("%lu", group_block); + printf("%u", group_block); if (i != fs->group_desc_count - 1) printf(", "); } printf("\n\n"); } +#define PATH_SET "PATH=/sbin" + static void PRS(int argc, char *argv[]) { char c; int size; char * tmp; - char *oldpath; - static char newpath[PATH_MAX]; int inode_ratio = 4096; int reserved_ratio = 5; + errcode_t retval; + char *oldpath = getenv("PATH"); /* Update our PATH to include /sbin */ - strcpy(newpath, "PATH=/sbin:"); - if ((oldpath = getenv("PATH")) != NULL) - strcat(newpath, oldpath); - putenv(newpath); + if (oldpath) { + char *newpath; + + newpath = malloc(sizeof (PATH_SET) + 1 + strlen (oldpath)); + strcpy (newpath, PATH_SET); + strcat (newpath, ":"); + strcat (newpath, oldpath); + putenv (newpath); + } else + putenv (PATH_SET); setbuf(stdout, NULL); setbuf(stderr, NULL); @@ -623,10 +595,21 @@ static void PRS(int argc, char *argv[]) } if (optind < argc) usage(); + + check_mount(); + param.s_log_frag_size = param.s_log_block_size; - if (!param.s_blocks_count) - param.s_blocks_count = get_size(device_name); + if (!param.s_blocks_count) { + retval = ext2fs_get_device_size(device_name, + EXT2_BLOCK_SIZE(¶m), + ¶m.s_blocks_count); + if (retval) { + com_err(program_name, 0, + "while trying to determine filesystem size"); + exit(1); + } + } /* * Calculate number of inodes based on the inode ratio @@ -649,8 +632,6 @@ int main (int argc, char *argv[]) PRS(argc, argv); - check_mount(); - /* * Initialize the superblock.... */ diff --git a/misc/mklost+found.8 b/misc/mklost+found.8 index e757ff80..a7fabd11 100644 --- a/misc/mklost+found.8 +++ b/misc/mklost+found.8 @@ -1,5 +1,8 @@ .\" -*- nroff -*- -.TH MKLOST+FOUND 8 "November 1994" "Version 0.5b" +.\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved. +.\" This file may be copied under the terms of the GNU Public License. +.\" +.TH MKLOST+FOUND 8 "October 1995" "Version 0.5c" .SH NAME mklost+found \- create a lost+found directory on a mounted Linux second extended file system diff --git a/misc/mklost+found.c b/misc/mklost+found.c index 299e47c9..2a960c45 100644 --- a/misc/mklost+found.c +++ b/misc/mklost+found.c @@ -30,7 +30,7 @@ void main (int argc, char ** argv) { char name [EXT2_NAME_LEN]; - char path [MAXPATHLEN]; + char path [sizeof (LPF) + 1 + 256]; struct stat st; int i, j; int d; diff --git a/misc/tune2fs.8 b/misc/tune2fs.8 index a3cbf35b..a4cc0752 100644 --- a/misc/tune2fs.8 +++ b/misc/tune2fs.8 @@ -2,7 +2,7 @@ .\" Initial revision .\" .\" -.TH TUNE2FS 8 "November 1994" "Version 0.5b" +.TH TUNE2FS 8 "October 1995" "Version 0.5c" .SH NAME tune2fs \- adjust tunable filesystem parameters on second extended filesystems @@ -98,7 +98,7 @@ has been written by Remy Card <card@masi.ibp.fr>, the developer and maintainer of the ext2 fs. .br .B tune2fs -uses the ext2fs library written by Theodore T'so <tytso@mit.edu>. +uses the ext2fs library written by Theodore Ts'o <tytso@mit.edu>. .br This manual page was written by Christian Kuhtz <chk@data-hh.Hanse.DE>. .br diff --git a/misc/tune2fs.c b/misc/tune2fs.c index cd2d622a..1576ce44 100644 --- a/misc/tune2fs.c +++ b/misc/tune2fs.c @@ -24,7 +24,9 @@ #include <fcntl.h> #include <grp.h> +#ifdef HAVE_GETOPT_H #include <getopt.h> +#endif #include <pwd.h> #include <stdio.h> #include <stdlib.h> @@ -120,8 +122,10 @@ void main (int argc, char ** argv) gr = getgrnam (optarg); if (gr == NULL) tmp = optarg; - else + else { resgid = gr->gr_gid; + *tmp =0; + } } if (*tmp) { @@ -194,8 +198,10 @@ void main (int argc, char ** argv) pw = getpwnam (optarg); if (pw == NULL) tmp = optarg; - else + else { resuid = pw->pw_uid; + *tmp = 0; + } } if (*tmp) { diff --git a/tests/ChangeLog b/tests/ChangeLog new file mode 100644 index 00000000..f50ef6c3 --- /dev/null +++ b/tests/ChangeLog @@ -0,0 +1,16 @@ +Mon Sep 4 23:06:06 1995 Remy Card <card@bbj> + + * Makefile.in (clean, distclean): Use the -f option when removing + files. + +Fri Aug 11 10:10:30 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> + + * test_script: Count up the number of passed and failed tests by + tallying the *.ok and *.failed files. + + * run_e2fsck: Create foo.ok and foo.failed files when tests + succeed or fail, respectively. + + * test_config (TZ): Set the timezone to be GMT, so that test + results are consistent. + diff --git a/tests/Makefile.in b/tests/Makefile.in new file mode 100644 index 00000000..4c776663 --- /dev/null +++ b/tests/Makefile.in @@ -0,0 +1,23 @@ +# +# Makefile for the tests directory +# + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +top_builddir = .. +INSTALL = @INSTALL@ + +all:: @DO_TEST_SUITE@ + +check:: + @echo "Running e2fsprogs test suite..." + @echo " " + @$(srcdir)/test_script $(srcdir) + +clean:: + $(RM) -f *.log *.new *.failed *.ok test.img + +distclean:: clean + $(RM) -f Makefile + diff --git a/tests/README b/tests/README new file mode 100644 index 00000000..73e26817 --- /dev/null +++ b/tests/README @@ -0,0 +1,67 @@ +These images contain various forms of corrupted filesystem which +e2fsck will correct. They are used as a regression test for e2fsck. + +The test_script program will automatically run e2fsck against the +filesystem images. It will run them two times, and display the exit +status for each run. The meaning of the exit status codes are as +follows: + + 0 No filesystem errors were detected + 1 Filesystem errors detected, but corrected + 2 System should be rebooted + 4 Filesystem errors left uncorrected + 8 Operational error (generally means internal error, + or filesystem error that the e2fsck was not + prepared to deal with) + 16 Usage or syntax error + +During the regression test, the first exit code should be 1, and the +second exit code should be 0. In other words, all (with one +exception) of the test filesystems in this directory have some sort of +filesystem corruption, which e2fsck should fix on the first pass. +After the first pass, e2fsck should leave a fully consistent +filesystem with no detectable errors found in the second pass. The +exception is the okgroup.img filesystem, which contains no errors, and +so both exit codes should be 0. + +NOTE: It appears that at least some versions of the original e2fsck do +not exit with an exit status code of 1 after correcting filesystem +errors. So if you modify the test_script to try running these +filesystems against the original e2fsck, you will have to inspect the +test_script.log file manually. + +-------------------------------------------------------------- +Here's a one-line descriptons of the various test images in this +directory: + +baddir.img Filesystem with a corrupted directory +badbblocks.img Filesystem with illegal blocks in the bad block inode. +badinode.img Filesystem with various different corrupted inode + entries. +badlkcnt.img Filesystem with deleted files with non-zero link count +badroot.img Filesystem with a file for a root directory +badtable.img Filesystem with blocks shared between the bitmaps and + inode table blocks and the bad block inode +bbfile.img Filesystem with files containing bad blocks +bitmaps.img Filesystem with corrupted inode and block bitmaps +dirlink.img Filesystem with a hard link to a directory +dup.img Filesystem with blocks claimed by two different files +dup2.img Filesystem with blocks claimed by three different files +dupfsblks.img Filesystem with blocks claimed by a file and + inode/block bitmaps and inode tables +dupsuper.img Filesystem with blocks claimed by a file and + the superblock / group descriptors +end-bitmap.img Filesystem with corruption at the end of the block + bitmap +expand.img Tests e2fsck's ability to expand lost+found if + necessary +lpf.img Filesystem with disconnected files and no /lost+found + directory +mke2fs2b.img Filesystem with corruption similar to that + created by mke2fs version 0.2b +noroot.img Filesystem with a deleted root directory +okgroup.img Filesystem that's exactly 8193 blocks long + (otherwise OK) +overfsblks.img Filesystem with overlapping inode and block bitmaps + + diff --git a/tests/defaults/f_script b/tests/defaults/f_script new file mode 100644 index 00000000..7a3b34f8 --- /dev/null +++ b/tests/defaults/f_script @@ -0,0 +1 @@ +. $cmd_dir/run_e2fsck diff --git a/tests/f_badbblocks/expect.1 b/tests/f_badbblocks/expect.1 new file mode 100644 index 00000000..d819f652 --- /dev/null +++ b/tests/f_badbblocks/expect.1 @@ -0,0 +1,20 @@ +Pass 1: Checking inodes, blocks, and sizes +Remove illegal block(s) in bad block inode? yes + +Illegal block 101 in bad block inode. CLEARED +Illegal block 103 in bad block inode. CLEARED +Illegal block 234523 in bad block inode. CLEARED +Illegal block 200 in bad block inode. CLEARED +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Block bitmap differences: +50. FIXED +Free blocks count wrong for group 0 (78, counted=77). FIXED +Free blocks count wrong (78, counted=77). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/32 files, 23/100 blocks +Exit status is 1 diff --git a/tests/f_badbblocks/expect.2 b/tests/f_badbblocks/expect.2 new file mode 100644 index 00000000..f18e3083 --- /dev/null +++ b/tests/f_badbblocks/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 11/32 files, 23/100 blocks +Exit status is 0 diff --git a/tests/f_badbblocks/image.gz b/tests/f_badbblocks/image.gz Binary files differnew file mode 100644 index 00000000..fe39b7fe --- /dev/null +++ b/tests/f_badbblocks/image.gz diff --git a/tests/f_badbblocks/name b/tests/f_badbblocks/name new file mode 100644 index 00000000..ab20f389 --- /dev/null +++ b/tests/f_badbblocks/name @@ -0,0 +1 @@ +illegal blocks in bad block inode diff --git a/tests/f_baddir/expect.1 b/tests/f_baddir/expect.1 new file mode 100644 index 00000000..8ac16b88 --- /dev/null +++ b/tests/f_baddir/expect.1 @@ -0,0 +1,39 @@ +Pass 1: Checking inodes, blocks, and sizes +Directory 12, incorrect size, 182 (counted = 1024). Set size to counted? yes + +Inode 13 is a zero length directory. Clear? yes + +Pass 2: Checking directory structure +Entry 'zero' in / (2) has deleted/unused inode 13. +Clear? yes + +Directory inode 12, block 0, offset 0: directory corrupted +Salvage? yes + +Missing '.' in directory inode 12. +Fix? yes + +Missing '..' in directory inode 12. +Fix? yes + +Pass 3: Checking directory connectivity +'..' in /block.h (12) is . (0), should be / (2). +Fix? yes + +Pass 4: Checking reference counts +Inode 12 has ref count 1, expecting 2. +Set i_nlinks to count? yes + +Pass 5: Checking group summary information +Fix summary information? yes + +Block bitmap differences: -22. FIXED +Free blocks count wrong (76, counted=77). FIXED +Inode bitmap differences: -13. FIXED +Free inodes count wrong for group #0 (19, counted=20). FIXED +Directories count wrong for group #0 (4, counted=3). FIXED +Free inodes count wrong (19, counted=20). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 12/32 files, 23/100 blocks +Exit status is 1 diff --git a/tests/f_baddir/expect.2 b/tests/f_baddir/expect.2 new file mode 100644 index 00000000..c21acaf8 --- /dev/null +++ b/tests/f_baddir/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 12/32 files, 23/100 blocks +Exit status is 0 diff --git a/tests/f_baddir/image.gz b/tests/f_baddir/image.gz Binary files differnew file mode 100644 index 00000000..7f6a7827 --- /dev/null +++ b/tests/f_baddir/image.gz diff --git a/tests/f_baddir/name b/tests/f_baddir/name new file mode 100644 index 00000000..ee1947a5 --- /dev/null +++ b/tests/f_baddir/name @@ -0,0 +1 @@ +corrupted directory diff --git a/tests/f_baddotdir/expect.1 b/tests/f_baddotdir/expect.1 new file mode 100644 index 00000000..657ccb46 --- /dev/null +++ b/tests/f_baddotdir/expect.1 @@ -0,0 +1,48 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Missing '.' in directory inode 12. +Fix? yes + +Missing '..' in directory inode 12. +Fix? yes + +First entry in directory inode 13 contains 'X' (inode=11) +instead of '.'. +Change to be '.'? yes + +Missing '..' in directory inode 14. +Fix? yes + +Second entry in directory inode 15 contains 'XX' (inode=11) +instead of '..'. +Change to be '..'? yes + +Missing '.' in directory inode 16. +Fix? yes + +Missing '..' in directory inode 16. +Fix? yes + +Pass 3: Checking directory connectivity +'..' in /a (12) is . (0), should be / (2). +Fix? yes + +'..' in /c (14) is . (0), should be / (2). +Fix? yes + +'..' in /d (15) is . (0), should be / (2). +Fix? yes + +'..' in /e (16) is . (0), should be / (2). +Fix? yes + +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Free blocks count wrong for group 0 (72, counted=73). FIXED +Free blocks count wrong (72, counted=73). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 16/32 files, 27/100 blocks +Exit status is 1 diff --git a/tests/f_baddotdir/expect.2 b/tests/f_baddotdir/expect.2 new file mode 100644 index 00000000..862f94f2 --- /dev/null +++ b/tests/f_baddotdir/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 16/32 files, 27/100 blocks +Exit status is 0 diff --git a/tests/f_baddotdir/image.gz b/tests/f_baddotdir/image.gz Binary files differnew file mode 100644 index 00000000..a52bfb1f --- /dev/null +++ b/tests/f_baddotdir/image.gz diff --git a/tests/f_baddotdir/name b/tests/f_baddotdir/name new file mode 100644 index 00000000..c13ba757 --- /dev/null +++ b/tests/f_baddotdir/name @@ -0,0 +1 @@ +bad '.' and '..' entries diff --git a/tests/f_badinode/expect.1 b/tests/f_badinode/expect.1 new file mode 100644 index 00000000..7ed7b542 --- /dev/null +++ b/tests/f_badinode/expect.1 @@ -0,0 +1,25 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Inode 12 (/motd) has a bad mode (0110444). +Clear? yes + +i_fsize for inode 13 (/timings) is 4, should be zero. +Clear i_fsize? yes + +i_file_acl for inode 13 (/timings) is 39, should be zero. +Clear i_file_acl? yes + +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Block bitmap differences: -25. FIXED +Free blocks count wrong for group 0 (76, counted=77). FIXED +Free blocks count wrong (76, counted=77). FIXED +Free inodes count wrong for group #0 (19, counted=20). FIXED +Free inodes count wrong (19, counted=20). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 12/32 files, 23/100 blocks +Exit status is 1 diff --git a/tests/f_badinode/expect.2 b/tests/f_badinode/expect.2 new file mode 100644 index 00000000..c21acaf8 --- /dev/null +++ b/tests/f_badinode/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 12/32 files, 23/100 blocks +Exit status is 0 diff --git a/tests/f_badinode/image.gz b/tests/f_badinode/image.gz Binary files differnew file mode 100644 index 00000000..7b3ccd2a --- /dev/null +++ b/tests/f_badinode/image.gz diff --git a/tests/f_badinode/name b/tests/f_badinode/name new file mode 100644 index 00000000..38ee2d9b --- /dev/null +++ b/tests/f_badinode/name @@ -0,0 +1 @@ +corrupted inode entries diff --git a/tests/f_badlkcnt/expect.1 b/tests/f_badlkcnt/expect.1 new file mode 100644 index 00000000..d3ad6a71 --- /dev/null +++ b/tests/f_badlkcnt/expect.1 @@ -0,0 +1,17 @@ +Pass 1: Checking inodes, blocks, and sizes + +Deleted inode detected with non-zero link count. +This is probably due to old ext2fs kernel code. +Fix inode(s)? yes + +Inode 13 is deleted w/ non-zero link_count. CLEARED +Inode 15 is deleted w/ non-zero link_count. CLEARED +Inode 16 is deleted w/ non-zero link_count. CLEARED +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 29/32 files, 32/100 blocks +Exit status is 1 diff --git a/tests/f_badlkcnt/expect.2 b/tests/f_badlkcnt/expect.2 new file mode 100644 index 00000000..6b2ea70e --- /dev/null +++ b/tests/f_badlkcnt/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 29/32 files, 32/100 blocks +Exit status is 0 diff --git a/tests/f_badlkcnt/image.gz b/tests/f_badlkcnt/image.gz Binary files differnew file mode 100644 index 00000000..3ba07cc2 --- /dev/null +++ b/tests/f_badlkcnt/image.gz diff --git a/tests/f_badlkcnt/name b/tests/f_badlkcnt/name new file mode 100644 index 00000000..d57851d2 --- /dev/null +++ b/tests/f_badlkcnt/name @@ -0,0 +1 @@ +deleted files with non-zero link count diff --git a/tests/f_badprimary/expect.1 b/tests/f_badprimary/expect.1 new file mode 100644 index 00000000..54106736 --- /dev/null +++ b/tests/f_badprimary/expect.1 @@ -0,0 +1,25 @@ +Pass 1: Checking inodes, blocks, and sizes +The primary superblock (1) is on the bad block list. + +If the block is really bad, the filesystem can not be fixed. +You can clear the this block from the bad block list +and hope that block is really OK, but there are no guarantees. + +Clear (and hope for the best)? yes + +Block 2 in the primary group descriptors is on the bad block list + +If the block is really bad, the filesystem can not be fixed. +You can clear the this block from the bad block list +and hope that block is really OK, but there are no guarantees. + +Clear (and hope for the best)? yes + +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/32 files, 22/100 blocks +Exit status is 1 diff --git a/tests/f_badprimary/expect.2 b/tests/f_badprimary/expect.2 new file mode 100644 index 00000000..b8b19f83 --- /dev/null +++ b/tests/f_badprimary/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 11/32 files, 22/100 blocks +Exit status is 0 diff --git a/tests/f_badprimary/image.gz b/tests/f_badprimary/image.gz Binary files differnew file mode 100644 index 00000000..7aeb6110 --- /dev/null +++ b/tests/f_badprimary/image.gz diff --git a/tests/f_badprimary/name b/tests/f_badprimary/name new file mode 100644 index 00000000..dacce312 --- /dev/null +++ b/tests/f_badprimary/name @@ -0,0 +1 @@ +bad blocks in the primary superblock and group descriptors diff --git a/tests/f_badroot/expect.1 b/tests/f_badroot/expect.1 new file mode 100644 index 00000000..e04d9ccb --- /dev/null +++ b/tests/f_badroot/expect.1 @@ -0,0 +1,37 @@ +Pass 1: Checking inodes, blocks, and sizes +Root inode is not a directory. Clear? yes + +Pass 2: Checking directory structure +Entry '..' in ??? (11) has deleted/unused inode 2. +Clear? yes + +Pass 3: Checking directory connectivity +Root inode not allocated. Rellocate? yes + +Unconnected directory inode 11 (...) +Connect to /lost+found? yes + +/lost+found not found. Create? yes + +Pass 4: Checking reference counts +Inode 11 has ref count 3, expecting 2. +Set i_nlinks to count? yes + +Unattached inode 12 +Connect to /lost+found? yes + +Inode 12 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Pass 5: Checking group summary information +Fix summary information? yes + +Free blocks count wrong for group 0 (77, counted=76). FIXED +Free blocks count wrong (77, counted=76). FIXED +Free inodes count wrong for group #0 (20, counted=19). FIXED +Directories count wrong for group #0 (2, counted=3). FIXED +Free inodes count wrong (20, counted=19). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 13/32 files, 24/100 blocks +Exit status is 1 diff --git a/tests/f_badroot/expect.2 b/tests/f_badroot/expect.2 new file mode 100644 index 00000000..7871e7d2 --- /dev/null +++ b/tests/f_badroot/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 13/32 files, 24/100 blocks +Exit status is 0 diff --git a/tests/f_badroot/image.gz b/tests/f_badroot/image.gz Binary files differnew file mode 100644 index 00000000..72980a35 --- /dev/null +++ b/tests/f_badroot/image.gz diff --git a/tests/f_badroot/name b/tests/f_badroot/name new file mode 100644 index 00000000..399e4f29 --- /dev/null +++ b/tests/f_badroot/name @@ -0,0 +1 @@ +file in root directory inode diff --git a/tests/f_badtable/expect.1 b/tests/f_badtable/expect.1 new file mode 100644 index 00000000..f1c00e15 --- /dev/null +++ b/tests/f_badtable/expect.1 @@ -0,0 +1,29 @@ +Pass 1: Checking inodes, blocks, and sizes +Group 0's block bitmap (3) is bad. Relocate? yes + +Group 0's inode bitmap (4) is bad. Relocate? yes + +WARNING: Severe data loss possible!!!! +Bad block 6 in group 0's inode table. Relocate? yes + +WARNING: Severe data loss possible!!!! +Bad block 8 in group 0's inode table. Relocate? yes + +Relocating group 0's block bitmap from 3 to 22... +Relocating group 0's inode bitmap from 4 to 23... +Relocating group 0's inode table from 5 to 24... +Restarting e2fsck from the beginning... +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Block bitmap differences: -5 -7 +22 +23 +24 +25 +26 +27. FIXED +Free blocks count wrong for group 0 (78, counted=74). FIXED +Free blocks count wrong (78, counted=74). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/32 files, 26/100 blocks +Exit status is 1 diff --git a/tests/f_badtable/expect.2 b/tests/f_badtable/expect.2 new file mode 100644 index 00000000..d6a69dd5 --- /dev/null +++ b/tests/f_badtable/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 11/32 files, 26/100 blocks +Exit status is 0 diff --git a/tests/f_badtable/image.gz b/tests/f_badtable/image.gz Binary files differnew file mode 100644 index 00000000..48dbac15 --- /dev/null +++ b/tests/f_badtable/image.gz diff --git a/tests/f_badtable/name b/tests/f_badtable/name new file mode 100644 index 00000000..e4a8baea --- /dev/null +++ b/tests/f_badtable/name @@ -0,0 +1 @@ +bad blocks in bitmaps and inode table diff --git a/tests/f_bbfile/expect.1 b/tests/f_bbfile/expect.1 new file mode 100644 index 00000000..7b6088bc --- /dev/null +++ b/tests/f_bbfile/expect.1 @@ -0,0 +1,44 @@ +Pass 1: Checking inodes, blocks, and sizes +Group 0's inode bitmap (4) is bad. Relocate? yes + +Relocating group 0's inode bitmap from 4 to 43... +Duplicate blocks found... invoking duplicate block passes. +Pass 1B: Rescan for duplicate/bad blocks +Duplicate/bad block(s) in inode 2: 21 +Duplicate/bad block(s) in inode 11: 9 10 11 12 13 14 15 16 17 18 19 20 +Duplicate/bad block(s) in inode 12: 25 26 +Pass 1C: Scan directories for inodes with dup blocks. +Pass 1D: Reconciling duplicate blocks +(There are 3 inodes containing duplicate/bad blocks.) + +File /termcap (inode #12, mod time Sun Jan 2 08:29:13 1994) + has 2 duplicate blocks, shared with 1 file: + <The bad blocks inode> (inode #1, mod time Sun Jul 17 00:47:58 1994) +Clone duplicate/bad blocks? yes + + +File /lost+found (inode #11, mod time Sun Jan 2 08:28:40 1994) + has 12 duplicate blocks, shared with 1 file: + <The bad blocks inode> (inode #1, mod time Sun Jul 17 00:47:58 1994) +Clone duplicate/bad blocks? yes + + +File / (inode #2, mod time Sun Jan 2 08:29:13 1994) + has 1 duplicate blocks, shared with 1 file: + <The bad blocks inode> (inode #1, mod time Sun Jul 17 00:47:58 1994) +Clone duplicate/bad blocks? yes + + +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Block bitmap differences: +43. FIXED +Free blocks count wrong for group 0 (57, counted=41). FIXED +Free blocks count wrong (57, counted=41). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 12/32 files, 59/100 blocks +Exit status is 1 diff --git a/tests/f_bbfile/expect.2 b/tests/f_bbfile/expect.2 new file mode 100644 index 00000000..3ddc85d3 --- /dev/null +++ b/tests/f_bbfile/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 12/32 files, 59/100 blocks +Exit status is 0 diff --git a/tests/f_bbfile/image.gz b/tests/f_bbfile/image.gz Binary files differnew file mode 100644 index 00000000..3b013816 --- /dev/null +++ b/tests/f_bbfile/image.gz diff --git a/tests/f_bbfile/name b/tests/f_bbfile/name new file mode 100644 index 00000000..8843fbb0 --- /dev/null +++ b/tests/f_bbfile/name @@ -0,0 +1 @@ +bad blocks in files diff --git a/tests/f_bitmaps/expect.1 b/tests/f_bitmaps/expect.1 new file mode 100644 index 00000000..0e0b74ba --- /dev/null +++ b/tests/f_bitmaps/expect.1 @@ -0,0 +1,13 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Block bitmap differences: +12 -20 +41 -50. FIXED +Inode bitmap differences: +11 -15. FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/32 files, 22/100 blocks +Exit status is 1 diff --git a/tests/f_bitmaps/expect.2 b/tests/f_bitmaps/expect.2 new file mode 100644 index 00000000..b8b19f83 --- /dev/null +++ b/tests/f_bitmaps/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 11/32 files, 22/100 blocks +Exit status is 0 diff --git a/tests/f_bitmaps/image.gz b/tests/f_bitmaps/image.gz Binary files differnew file mode 100644 index 00000000..1c533ebc --- /dev/null +++ b/tests/f_bitmaps/image.gz diff --git a/tests/f_bitmaps/name b/tests/f_bitmaps/name new file mode 100644 index 00000000..a309bfaf --- /dev/null +++ b/tests/f_bitmaps/name @@ -0,0 +1 @@ +corrupted inode and block bitmaps diff --git a/tests/f_dirlink/expect.1 b/tests/f_dirlink/expect.1 new file mode 100644 index 00000000..c89f34bb --- /dev/null +++ b/tests/f_dirlink/expect.1 @@ -0,0 +1,12 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Entry 'quux' in /foo (12) is a link to directory /bar (13). +Clear? yes + +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 13/32 files, 24/100 blocks +Exit status is 1 diff --git a/tests/f_dirlink/expect.2 b/tests/f_dirlink/expect.2 new file mode 100644 index 00000000..7871e7d2 --- /dev/null +++ b/tests/f_dirlink/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 13/32 files, 24/100 blocks +Exit status is 0 diff --git a/tests/f_dirlink/image.gz b/tests/f_dirlink/image.gz Binary files differnew file mode 100644 index 00000000..2e8def47 --- /dev/null +++ b/tests/f_dirlink/image.gz diff --git a/tests/f_dirlink/name b/tests/f_dirlink/name new file mode 100644 index 00000000..30dbdce0 --- /dev/null +++ b/tests/f_dirlink/name @@ -0,0 +1 @@ +directory hard links diff --git a/tests/f_dup/expect.1 b/tests/f_dup/expect.1 new file mode 100644 index 00000000..996eb075 --- /dev/null +++ b/tests/f_dup/expect.1 @@ -0,0 +1,34 @@ +Pass 1: Checking inodes, blocks, and sizes +Duplicate blocks found... invoking duplicate block passes. +Pass 1B: Rescan for duplicate/bad blocks +Duplicate/bad block(s) in inode 12: 25 26 +Duplicate/bad block(s) in inode 13: 25 26 +Pass 1C: Scan directories for inodes with dup blocks. +Pass 1D: Reconciling duplicate blocks +(There are 2 inodes containing duplicate/bad blocks.) + +File /motd (inode #13, mod time Tue Sep 21 03:19:20 1993) + has 2 duplicate blocks, shared with 1 file: + /termcap (inode #12, mod time Tue Sep 21 03:19:14 1993) +Clone duplicate/bad blocks? yes + + +File /termcap (inode #12, mod time Tue Sep 21 03:19:14 1993) + has 2 duplicate blocks, shared with 1 file: + /motd (inode #13, mod time Tue Sep 21 03:19:20 1993) +Duplicated blocks already reassigned or cloned. + +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Free blocks count wrong for group 0 (44, counted=60). FIXED +Free blocks count wrong (62, counted=60). FIXED +Padding at end of block bitmap is not set. Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 13/16 files, 40/100 blocks +Exit status is 1 diff --git a/tests/f_dup/expect.2 b/tests/f_dup/expect.2 new file mode 100644 index 00000000..e65d6922 --- /dev/null +++ b/tests/f_dup/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 13/16 files, 40/100 blocks +Exit status is 0 diff --git a/tests/f_dup/image.gz b/tests/f_dup/image.gz Binary files differnew file mode 100644 index 00000000..3e04690e --- /dev/null +++ b/tests/f_dup/image.gz diff --git a/tests/f_dup/name b/tests/f_dup/name new file mode 100644 index 00000000..6296b83f --- /dev/null +++ b/tests/f_dup/name @@ -0,0 +1 @@ +blocks claimed by two different files diff --git a/tests/f_dup2/expect.1 b/tests/f_dup2/expect.1 new file mode 100644 index 00000000..6625f2fc --- /dev/null +++ b/tests/f_dup2/expect.1 @@ -0,0 +1,42 @@ +Pass 1: Checking inodes, blocks, and sizes +Duplicate blocks found... invoking duplicate block passes. +Pass 1B: Rescan for duplicate/bad blocks +Duplicate/bad block(s) in inode 12: 25 26 +Duplicate/bad block(s) in inode 13: 25 26 57 58 +Duplicate/bad block(s) in inode 14: 57 58 +Pass 1C: Scan directories for inodes with dup blocks. +Pass 1D: Reconciling duplicate blocks +(There are 3 inodes containing duplicate/bad blocks.) + +File /pass1.c (inode #14, mod time Tue Sep 21 04:28:37 1993) + has 2 duplicate blocks, shared with 1 file: + /motd (inode #13, mod time Tue Sep 21 03:19:20 1993) +Clone duplicate/bad blocks? yes + + +File /motd (inode #13, mod time Tue Sep 21 03:19:20 1993) + has 4 duplicate blocks, shared with 2 files: + /pass1.c (inode #14, mod time Tue Sep 21 04:28:37 1993) + /termcap (inode #12, mod time Tue Sep 21 03:19:14 1993) +Clone duplicate/bad blocks? yes + + +File /termcap (inode #12, mod time Tue Sep 21 03:19:14 1993) + has 2 duplicate blocks, shared with 1 file: + /motd (inode #13, mod time Tue Sep 21 03:19:20 1993) +Duplicated blocks already reassigned or cloned. + +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Free blocks count wrong for group 0 (8, counted=22). FIXED +Free blocks count wrong (26, counted=22). FIXED +Padding at end of block bitmap is not set. Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 16/16 files, 78/100 blocks +Exit status is 1 diff --git a/tests/f_dup2/expect.2 b/tests/f_dup2/expect.2 new file mode 100644 index 00000000..0700500b --- /dev/null +++ b/tests/f_dup2/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 16/16 files, 78/100 blocks +Exit status is 0 diff --git a/tests/f_dup2/image.gz b/tests/f_dup2/image.gz Binary files differnew file mode 100644 index 00000000..e9b853d6 --- /dev/null +++ b/tests/f_dup2/image.gz diff --git a/tests/f_dup2/name b/tests/f_dup2/name new file mode 100644 index 00000000..3d636e0b --- /dev/null +++ b/tests/f_dup2/name @@ -0,0 +1 @@ +blocks claimed by three different files diff --git a/tests/f_dupfsblks/expect.1 b/tests/f_dupfsblks/expect.1 new file mode 100644 index 00000000..1ff77acb --- /dev/null +++ b/tests/f_dupfsblks/expect.1 @@ -0,0 +1,31 @@ +Pass 1: Checking inodes, blocks, and sizes +Remove illegal block(s) in inode 12? yes + +Block #1 (3) is the block bitmap of group 0. CLEARED +Block #2 (4) is the inode bitmap of group 0. CLEARED +Block #3 (6) is in the inode table of group 0. CLEARED +Directory 12, incorrect size, 4096 (counted = 1024). Set size to counted? yes + +Inode 12, i_blocks wrong 8 (counted=2). Set i_blocks to counted? yes + +Pass 2: Checking directory structure +Directory inode 12 has a hole at block #1 +Allocate block? yes + +Directory inode 12 has a hole at block #2 +Allocate block? yes + +Directory inode 12 has a hole at block #3 +Allocate block? yes + +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Free blocks count wrong for group 0 (77, counted=74). FIXED +Free blocks count wrong (77, counted=74). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 12/32 files, 26/100 blocks +Exit status is 1 diff --git a/tests/f_dupfsblks/expect.2 b/tests/f_dupfsblks/expect.2 new file mode 100644 index 00000000..e506f233 --- /dev/null +++ b/tests/f_dupfsblks/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 12/32 files, 26/100 blocks +Exit status is 0 diff --git a/tests/f_dupfsblks/image.gz b/tests/f_dupfsblks/image.gz Binary files differnew file mode 100644 index 00000000..5514de43 --- /dev/null +++ b/tests/f_dupfsblks/image.gz diff --git a/tests/f_dupfsblks/name b/tests/f_dupfsblks/name new file mode 100644 index 00000000..84124c9a --- /dev/null +++ b/tests/f_dupfsblks/name @@ -0,0 +1 @@ +blocks claimed by a file and bitmaps or inode tables diff --git a/tests/f_dupsuper/expect.1 b/tests/f_dupsuper/expect.1 new file mode 100644 index 00000000..274744a3 --- /dev/null +++ b/tests/f_dupsuper/expect.1 @@ -0,0 +1,21 @@ +Pass 1: Checking inodes, blocks, and sizes +Remove illegal block(s) in inode 12? yes + +Block #4 (2) is in the group descriptors of group 0. CLEARED +Block #5 (3) is the block bitmap of group 0. CLEARED +Block #6 (1) is the superblock in group 0. CLEARED +Inode 12, i_blocks wrong 34 (counted=28). Set i_blocks to counted? yes + +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Block bitmap differences: -29 -30 -31. FIXED +Free blocks count wrong for group 0 (61, counted=64). FIXED +Free blocks count wrong (61, counted=64). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 12/32 files, 36/100 blocks +Exit status is 1 diff --git a/tests/f_dupsuper/expect.2 b/tests/f_dupsuper/expect.2 new file mode 100644 index 00000000..4ab97943 --- /dev/null +++ b/tests/f_dupsuper/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 12/32 files, 36/100 blocks +Exit status is 0 diff --git a/tests/f_dupsuper/image.gz b/tests/f_dupsuper/image.gz Binary files differnew file mode 100644 index 00000000..d919e07a --- /dev/null +++ b/tests/f_dupsuper/image.gz diff --git a/tests/f_dupsuper/name b/tests/f_dupsuper/name new file mode 100644 index 00000000..560a707e --- /dev/null +++ b/tests/f_dupsuper/name @@ -0,0 +1 @@ +blocks claimed by a file and superblock or group descriptors diff --git a/tests/f_end-bitmap/expect.1 b/tests/f_end-bitmap/expect.1 new file mode 100644 index 00000000..71eb6b6a --- /dev/null +++ b/tests/f_end-bitmap/expect.1 @@ -0,0 +1,14 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Free blocks count wrong for group 0 (44, counted=63). FIXED +Padding at end of block bitmap is not set. Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 12/16 files, 37/100 blocks +Exit status is 1 diff --git a/tests/f_end-bitmap/expect.2 b/tests/f_end-bitmap/expect.2 new file mode 100644 index 00000000..a4c2f736 --- /dev/null +++ b/tests/f_end-bitmap/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 12/16 files, 37/100 blocks +Exit status is 0 diff --git a/tests/f_end-bitmap/image.gz b/tests/f_end-bitmap/image.gz Binary files differnew file mode 100644 index 00000000..cb20d0a2 --- /dev/null +++ b/tests/f_end-bitmap/image.gz diff --git a/tests/f_end-bitmap/name b/tests/f_end-bitmap/name new file mode 100644 index 00000000..16baec6a --- /dev/null +++ b/tests/f_end-bitmap/name @@ -0,0 +1,2 @@ +corruption at end of block bitmap + diff --git a/tests/f_expand/expect.1 b/tests/f_expand/expect.1 new file mode 100644 index 00000000..11263585 --- /dev/null +++ b/tests/f_expand/expect.1 @@ -0,0 +1,587 @@ +Pass 1: Checking inodes, blocks, and sizes +Deleted inode 2 has zero dtime. +Set dtime? yes + +Pass 2: Checking directory structure +Entry '..' in /lost+found (11) has deleted/unused inode 2. +Clear? yes + +Pass 3: Checking directory connectivity +Root inode not allocated. Rellocate? yes + +Unconnected directory inode 11 (...) +Connect to /lost+found? yes + +/lost+found not found. Create? yes + +Pass 4: Checking reference counts +Inode 11 has ref count 3, expecting 2. +Set i_nlinks to count? yes + +Unattached inode 12 +Connect to /lost+found? yes + +Inode 12 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 13 +Connect to /lost+found? yes + +Inode 13 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 14 +Connect to /lost+found? yes + +Inode 14 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 15 +Connect to /lost+found? yes + +Inode 15 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 16 +Connect to /lost+found? yes + +Inode 16 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 17 +Connect to /lost+found? yes + +Inode 17 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 18 +Connect to /lost+found? yes + +Inode 18 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 19 +Connect to /lost+found? yes + +Inode 19 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 20 +Connect to /lost+found? yes + +Inode 20 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 21 +Connect to /lost+found? yes + +Inode 21 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 22 +Connect to /lost+found? yes + +Inode 22 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 23 +Connect to /lost+found? yes + +Inode 23 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 24 +Connect to /lost+found? yes + +Inode 24 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 25 +Connect to /lost+found? yes + +Inode 25 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 26 +Connect to /lost+found? yes + +Inode 26 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 27 +Connect to /lost+found? yes + +Inode 27 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 28 +Connect to /lost+found? yes + +Inode 28 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 29 +Connect to /lost+found? yes + +Inode 29 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 30 +Connect to /lost+found? yes + +Inode 30 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 31 +Connect to /lost+found? yes + +Inode 31 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 32 +Connect to /lost+found? yes + +Inode 32 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 33 +Connect to /lost+found? yes + +Inode 33 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 34 +Connect to /lost+found? yes + +Inode 34 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 35 +Connect to /lost+found? yes + +Inode 35 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 36 +Connect to /lost+found? yes + +Inode 36 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 37 +Connect to /lost+found? yes + +Inode 37 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 38 +Connect to /lost+found? yes + +Inode 38 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 39 +Connect to /lost+found? yes + +Inode 39 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 40 +Connect to /lost+found? yes + +Inode 40 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 41 +Connect to /lost+found? yes + +Inode 41 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 42 +Connect to /lost+found? yes + +Inode 42 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 43 +Connect to /lost+found? yes + +Inode 43 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 44 +Connect to /lost+found? yes + +Inode 44 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 45 +Connect to /lost+found? yes + +Inode 45 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 46 +Connect to /lost+found? yes + +Inode 46 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 47 +Connect to /lost+found? yes + +Inode 47 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 48 +Connect to /lost+found? yes + +Inode 48 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 49 +Connect to /lost+found? yes + +Inode 49 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 50 +Connect to /lost+found? yes + +Inode 50 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 51 +Connect to /lost+found? yes + +Inode 51 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 52 +Connect to /lost+found? yes + +Inode 52 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 53 +Connect to /lost+found? yes + +Inode 53 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 54 +Connect to /lost+found? yes + +Inode 54 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 55 +Connect to /lost+found? yes + +Inode 55 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 56 +Connect to /lost+found? yes + +Inode 56 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 57 +Connect to /lost+found? yes + +Inode 57 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 58 +Connect to /lost+found? yes + +Inode 58 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 59 +Connect to /lost+found? yes + +Inode 59 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 60 +Connect to /lost+found? yes + +Inode 60 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 61 +Connect to /lost+found? yes + +Inode 61 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 62 +Connect to /lost+found? yes + +Inode 62 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 63 +Connect to /lost+found? yes + +Inode 63 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 64 +Connect to /lost+found? yes + +Inode 64 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 65 +Connect to /lost+found? yes + +Inode 65 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 66 +Connect to /lost+found? yes + +Inode 66 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 67 +Connect to /lost+found? yes + +Inode 67 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 68 +Connect to /lost+found? yes + +Inode 68 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 69 +Connect to /lost+found? yes + +Inode 69 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 70 +Connect to /lost+found? yes + +Inode 70 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 71 +Connect to /lost+found? yes + +Inode 71 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 72 +Connect to /lost+found? yes + +Inode 72 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 73 +Connect to /lost+found? yes + +Inode 73 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 74 +Connect to /lost+found? yes + +Inode 74 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 75 +Connect to /lost+found? yes + +Inode 75 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 76 +Connect to /lost+found? yes + +Inode 76 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 77 +Connect to /lost+found? yes + +Inode 77 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 78 +Connect to /lost+found? yes + +Inode 78 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 79 +Connect to /lost+found? yes + +Inode 79 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 80 +Connect to /lost+found? yes + +Inode 80 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 81 +Connect to /lost+found? yes + +Inode 81 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 82 +Connect to /lost+found? yes + +Inode 82 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 83 +Connect to /lost+found? yes + +Inode 83 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 84 +Connect to /lost+found? yes + +Inode 84 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 85 +Connect to /lost+found? yes + +Inode 85 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 86 +Connect to /lost+found? yes + +Inode 86 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 87 +Connect to /lost+found? yes + +Inode 87 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 88 +Connect to /lost+found? yes + +Inode 88 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 89 +Connect to /lost+found? yes + +Inode 89 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 90 +Connect to /lost+found? yes + +Inode 90 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 91 +Connect to /lost+found? yes + +Inode 91 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 92 +Connect to /lost+found? yes + +Inode 92 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 93 +Connect to /lost+found? yes + +Inode 93 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 94 +Connect to /lost+found? yes + +No room in /lost+found; expand /lost+found? yes + +Inode 94 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 95 +Connect to /lost+found? yes + +Inode 95 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 96 +Connect to /lost+found? yes + +Inode 96 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 97 +Connect to /lost+found? yes + +Inode 97 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 98 +Connect to /lost+found? yes + +Inode 98 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 99 +Connect to /lost+found? yes + +Inode 99 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 100 +Connect to /lost+found? yes + +Inode 100 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 102 +Connect to /lost+found? yes + +Inode 102 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 103 +Connect to /lost+found? yes + +Inode 103 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 104 +Connect to /lost+found? yes + +Inode 104 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Pass 5: Checking group summary information +Fix summary information? yes + +Block bitmap differences: -33. FIXED +Free blocks count wrong for group 0 (68, counted=67). FIXED +Free blocks count wrong (68, counted=67). FIXED +Free inodes count wrong for group #0 (1, counted=0). FIXED +Directories count wrong for group #0 (2, counted=3). FIXED +Free inodes count wrong (1, counted=0). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 104/104 files, 33/100 blocks +Exit status is 1 diff --git a/tests/f_expand/expect.2 b/tests/f_expand/expect.2 new file mode 100644 index 00000000..49395f23 --- /dev/null +++ b/tests/f_expand/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 104/104 files, 33/100 blocks +Exit status is 0 diff --git a/tests/f_expand/image.gz b/tests/f_expand/image.gz Binary files differnew file mode 100644 index 00000000..e79eb327 --- /dev/null +++ b/tests/f_expand/image.gz diff --git a/tests/f_expand/name b/tests/f_expand/name new file mode 100644 index 00000000..feebe0fc --- /dev/null +++ b/tests/f_expand/name @@ -0,0 +1 @@ +expanding lost+found diff --git a/tests/f_holedir/expect.1 b/tests/f_holedir/expect.1 new file mode 100644 index 00000000..b0af9488 --- /dev/null +++ b/tests/f_holedir/expect.1 @@ -0,0 +1,31 @@ +Pass 1: Checking inodes, blocks, and sizes +Hole found in directory inode 11! (blkcnt=0) +Hole found in directory inode 11! (blkcnt=3) +Remove illegal block(s) in inode 11? yes + +Block #6 (200) > BLOCKS (100). CLEARED +Hole found in directory inode 11! (blkcnt=11) +Directory 11, incorrect size, 12288 (counted = 11264). Set size to counted? yes + +Inode 11, i_blocks wrong 24 (counted=16). Set i_blocks to counted? yes + +Pass 2: Checking directory structure +Directory inode 11 has a hole at block #0 +Allocate block? yes + +Directory inode 11 has a hole at block #3 +Allocate block? yes + +Directory inode 11 has a hole at block #6 +Allocate block? yes + +Directory inode 11 has a hole at block #11 +Allocate block? yes + +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/32 files, 22/100 blocks +Exit status is 1 diff --git a/tests/f_holedir/expect.2 b/tests/f_holedir/expect.2 new file mode 100644 index 00000000..b8b19f83 --- /dev/null +++ b/tests/f_holedir/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 11/32 files, 22/100 blocks +Exit status is 0 diff --git a/tests/f_holedir/image.gz b/tests/f_holedir/image.gz Binary files differnew file mode 100644 index 00000000..ee26ab8d --- /dev/null +++ b/tests/f_holedir/image.gz diff --git a/tests/f_holedir/name b/tests/f_holedir/name new file mode 100644 index 00000000..411f656f --- /dev/null +++ b/tests/f_holedir/name @@ -0,0 +1 @@ +directory with holes and illegal blocks diff --git a/tests/f_illbbitmap/expect.1 b/tests/f_illbbitmap/expect.1 new file mode 100644 index 00000000..4b3b6c32 --- /dev/null +++ b/tests/f_illbbitmap/expect.1 @@ -0,0 +1,19 @@ +Block bitmap for group 0 is not in group. (block 4096) +Relocate? yes + +Pass 1: Checking inodes, blocks, and sizes +Relocating group 0's block bitmap to 4... +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Block bitmap differences: +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21. FIXED +Inode bitmap differences: -12 -13 -14 -15 -16 -17 -18 -19 -20 -21. FIXED +Padding at end of block bitmap is not set. Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/32 files, 22/100 blocks +Exit status is 1 diff --git a/tests/f_illbbitmap/expect.2 b/tests/f_illbbitmap/expect.2 new file mode 100644 index 00000000..b8b19f83 --- /dev/null +++ b/tests/f_illbbitmap/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 11/32 files, 22/100 blocks +Exit status is 0 diff --git a/tests/f_illbbitmap/image.gz b/tests/f_illbbitmap/image.gz Binary files differnew file mode 100644 index 00000000..fb16ebc4 --- /dev/null +++ b/tests/f_illbbitmap/image.gz diff --git a/tests/f_illbbitmap/name b/tests/f_illbbitmap/name new file mode 100644 index 00000000..5ed4f591 --- /dev/null +++ b/tests/f_illbbitmap/name @@ -0,0 +1 @@ +illegal block bitmap diff --git a/tests/f_illibitmap/expect.1 b/tests/f_illibitmap/expect.1 new file mode 100644 index 00000000..15fe3931 --- /dev/null +++ b/tests/f_illibitmap/expect.1 @@ -0,0 +1,16 @@ +Inode bitmap group 0 not in group. (block 4000) +Relocate? yes + +Pass 1: Checking inodes, blocks, and sizes +Relocating group 0's inode bitmap to 4... +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Inode bitmap differences: +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11. FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/32 files, 22/100 blocks +Exit status is 1 diff --git a/tests/f_illibitmap/expect.2 b/tests/f_illibitmap/expect.2 new file mode 100644 index 00000000..b8b19f83 --- /dev/null +++ b/tests/f_illibitmap/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 11/32 files, 22/100 blocks +Exit status is 0 diff --git a/tests/f_illibitmap/image.gz b/tests/f_illibitmap/image.gz Binary files differnew file mode 100644 index 00000000..3e0892d4 --- /dev/null +++ b/tests/f_illibitmap/image.gz diff --git a/tests/f_illibitmap/name b/tests/f_illibitmap/name new file mode 100644 index 00000000..bac40035 --- /dev/null +++ b/tests/f_illibitmap/name @@ -0,0 +1 @@ +illegal inode bitmap diff --git a/tests/f_lotsbad/expect.1 b/tests/f_lotsbad/expect.1 new file mode 100644 index 00000000..33079f1e --- /dev/null +++ b/tests/f_lotsbad/expect.1 @@ -0,0 +1,46 @@ +Pass 1: Checking inodes, blocks, and sizes +Remove illegal block(s) in inode 12? yes + +Block #12 (778398818) > BLOCKS (100). CLEARED +Block #13 (1768444960) > BLOCKS (100). CLEARED +Block #14 (1752375411) > BLOCKS (100). CLEARED +Block #15 (1684829551) > BLOCKS (100). CLEARED +Block #16 (1886349344) > BLOCKS (100). CLEARED +Block #17 (1819633253) > BLOCKS (100). CLEARED +Block #18 (1663072620) > BLOCKS (100). CLEARED +Block #19 (1735287144) > BLOCKS (100). CLEARED +Block #20 (1310731877) > BLOCKS (100). CLEARED +Block #21 (560297071) > BLOCKS (100). CLEARED +Block #22 (543512352) > BLOCKS (100). CLEARED +Block #23 (1869835361) > BLOCKS (100). CLEARED +Block #24 (1634231072) > BLOCKS (100). CLEARED +Block #25 (543516526) > BLOCKS (100). CLEARED +Block #26 (174418036) > BLOCKS (100). CLEARED +Block #27 (1919819811) > BLOCKS (100). CLEARED +Block #28 (543584032) > BLOCKS (100). CLEARED +Block #29 (1701734764) > BLOCKS (100). CLEARED +Block #30 (1869881459) > BLOCKS (100). CLEARED +Too many illegal blocks in inode 12. +Clear inode? yes + +Restarting e2fsck from the beginning... +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Entry 'termcap' in / (2) has deleted/unused inode 12. +Clear? yes + +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Block bitmap differences: -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -44 -45. FIXED +Free blocks count wrong for group 0 (41, counted=58). FIXED +Free blocks count wrong (41, counted=58). FIXED +Inode bitmap differences: -12. FIXED +Free inodes count wrong for group #0 (20, counted=21). FIXED +Free inodes count wrong (20, counted=21). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/32 files, 42/100 blocks +Exit status is 1 diff --git a/tests/f_lotsbad/expect.2 b/tests/f_lotsbad/expect.2 new file mode 100644 index 00000000..3257a84e --- /dev/null +++ b/tests/f_lotsbad/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 11/32 files, 42/100 blocks +Exit status is 0 diff --git a/tests/f_lotsbad/image.gz b/tests/f_lotsbad/image.gz Binary files differnew file mode 100644 index 00000000..9386a9e9 --- /dev/null +++ b/tests/f_lotsbad/image.gz diff --git a/tests/f_lotsbad/name b/tests/f_lotsbad/name new file mode 100644 index 00000000..16b77c10 --- /dev/null +++ b/tests/f_lotsbad/name @@ -0,0 +1 @@ +too many illegal blocks in inode diff --git a/tests/f_lpf/expect.1 b/tests/f_lpf/expect.1 new file mode 100644 index 00000000..b2cef783 --- /dev/null +++ b/tests/f_lpf/expect.1 @@ -0,0 +1,39 @@ +Pass 1: Checking inodes, blocks, and sizes + +Deleted inode detected with non-zero link count. +This is probably due to old ext2fs kernel code. +Fix inode(s)? yes + +Inode 11 is deleted w/ non-zero link_count. CLEARED +Inode 13 is deleted w/ non-zero link_count. CLEARED +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Unattached inode 14 +Connect to /lost+found? yes + +/lost+found not found. Create? yes + +Inode 14 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Unattached inode 15 +Connect to /lost+found? yes + +Inode 15 has ref count 2, expecting 1. +Set i_nlinks to count? yes + +Pass 5: Checking group summary information +Fix summary information? yes + +Free blocks count wrong for group 0 (25, counted=38). FIXED +Free blocks count wrong (39, counted=38). FIXED +Free inodes count wrong for group #0 (2, counted=1). FIXED +Directories count wrong for group #0 (1, counted=2). FIXED +Free inodes count wrong (2, counted=1). FIXED +Padding at end of block bitmap is not set. Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 15/16 files, 62/100 blocks +Exit status is 1 diff --git a/tests/f_lpf/expect.2 b/tests/f_lpf/expect.2 new file mode 100644 index 00000000..800fd55a --- /dev/null +++ b/tests/f_lpf/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 15/16 files, 62/100 blocks +Exit status is 0 diff --git a/tests/f_lpf/image.gz b/tests/f_lpf/image.gz Binary files differnew file mode 100644 index 00000000..659b2785 --- /dev/null +++ b/tests/f_lpf/image.gz diff --git a/tests/f_lpf/name b/tests/f_lpf/name new file mode 100644 index 00000000..ac2dbab4 --- /dev/null +++ b/tests/f_lpf/name @@ -0,0 +1 @@ +missing lost+found diff --git a/tests/f_messy_inode/expect.1 b/tests/f_messy_inode/expect.1 new file mode 100644 index 00000000..170bac9e --- /dev/null +++ b/tests/f_messy_inode/expect.1 @@ -0,0 +1,33 @@ +Pass 1: Checking inodes, blocks, and sizes +Remove illegal block(s) in inode 14? yes + +Block #2 (4294901760) > BLOCKS (100). CLEARED +Block #3 (4294901760) > BLOCKS (100). CLEARED +Block #4 (4294901760) > BLOCKS (100). CLEARED +Block #5 (4294901760) > BLOCKS (100). CLEARED +Block #6 (4294901760) > BLOCKS (100). CLEARED +Block #7 (4294901760) > BLOCKS (100). CLEARED +Block #8 (4294901760) > BLOCKS (100). CLEARED +Block #9 (4294901760) > BLOCKS (100). CLEARED +Block #10 (4294901760) > BLOCKS (100). CLEARED +Inode 14, i_blocks wrong 18 (counted=4). Set i_blocks to counted? yes + +Pass 2: Checking directory structure +i_file_acl for inode 14 (/MAKEDEV) is 4294901760, should be zero. +Clear i_file_acl? yes + +i_dir_acl for inode 14 (/MAKEDEV) is 4294901760, should be zero. +Clear i_dir_acl? yes + +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Block bitmap differences: -43 -44 -45 -46 -47 -48 -49. FIXED +Free blocks count wrong for group 0 (68, counted=75). FIXED +Free blocks count wrong (68, counted=75). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 29/32 files, 25/100 blocks +Exit status is 1 diff --git a/tests/f_messy_inode/expect.2 b/tests/f_messy_inode/expect.2 new file mode 100644 index 00000000..e9c78809 --- /dev/null +++ b/tests/f_messy_inode/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 29/32 files, 25/100 blocks +Exit status is 0 diff --git a/tests/f_messy_inode/image.gz b/tests/f_messy_inode/image.gz Binary files differnew file mode 100644 index 00000000..630a6898 --- /dev/null +++ b/tests/f_messy_inode/image.gz diff --git a/tests/f_messy_inode/name b/tests/f_messy_inode/name new file mode 100644 index 00000000..f1485eae --- /dev/null +++ b/tests/f_messy_inode/name @@ -0,0 +1 @@ +bad file and directory acl pointers diff --git a/tests/f_mke2fs2b/expect.1 b/tests/f_mke2fs2b/expect.1 new file mode 100644 index 00000000..e60580c5 --- /dev/null +++ b/tests/f_mke2fs2b/expect.1 @@ -0,0 +1,36 @@ +Pass 1: Checking inodes, blocks, and sizes +Root inode has dtime set (probably due to old mke2fs). Fix? yes + +Note: /lost+found will probably be deleted as well, due to the mke2fs bug. +Be sure to run mklost+found to recreate it after e2fsck finishes. + + +Deleted inode detected with non-zero link count. +This is probably due to old ext2fs kernel code. +Fix inode(s)? yes + +Inode 11 is deleted w/ non-zero link_count. CLEARED +Inode 15 is deleted w/ non-zero link_count. CLEARED +Pass 2: Checking directory structure +Entry 'lost+found' in / (2) has deleted/unused inode 11. +Clear? yes + +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Inode 2 has ref count 4, expecting 3. +Set i_nlinks to count? yes + +Pass 5: Checking group summary information +Fix summary information? yes + +Block bitmap differences: -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20. FIXED +Free blocks count wrong for group 0 (75, counted=87). FIXED +Free blocks count wrong (75, counted=87). FIXED +Inode bitmap differences: -11. FIXED +Free inodes count wrong for group #0 (17, counted=18). FIXED +Directories count wrong for group #0 (4, counted=3). FIXED +Free inodes count wrong (17, counted=18). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 14/32 files, 13/100 blocks +Exit status is 1 diff --git a/tests/f_mke2fs2b/expect.2 b/tests/f_mke2fs2b/expect.2 new file mode 100644 index 00000000..447fcb58 --- /dev/null +++ b/tests/f_mke2fs2b/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 14/32 files, 13/100 blocks +Exit status is 0 diff --git a/tests/f_mke2fs2b/image.gz b/tests/f_mke2fs2b/image.gz Binary files differnew file mode 100644 index 00000000..6b7412cd --- /dev/null +++ b/tests/f_mke2fs2b/image.gz diff --git a/tests/f_mke2fs2b/name b/tests/f_mke2fs2b/name new file mode 100644 index 00000000..bf2202ac --- /dev/null +++ b/tests/f_mke2fs2b/name @@ -0,0 +1 @@ +mke2fs version 0.2b created filesystem diff --git a/tests/f_noroot/expect.1 b/tests/f_noroot/expect.1 new file mode 100644 index 00000000..df77568c --- /dev/null +++ b/tests/f_noroot/expect.1 @@ -0,0 +1,44 @@ +Pass 1: Checking inodes, blocks, and sizes + +Deleted inode detected with non-zero link count. +This is probably due to old ext2fs kernel code. +Fix inode(s)? yes + +Inode 15 is deleted w/ non-zero link_count. CLEARED +Pass 2: Checking directory structure +Entry '..' in /lost+found (11) has deleted/unused inode 2. +Clear? yes + +Entry '..' in /foo (12) has deleted/unused inode 2. +Clear? yes + +Pass 3: Checking directory connectivity +Root inode not allocated. Rellocate? yes + +Unconnected directory inode 11 (...) +Connect to /lost+found? yes + +/lost+found not found. Create? yes + +Unconnected directory inode 12 (...) +Connect to /lost+found? yes + +Pass 4: Checking reference counts +Inode 11 has ref count 3, expecting 2. +Set i_nlinks to count? yes + +Inode 12 has ref count 4, expecting 3. +Set i_nlinks to count? yes + +Pass 5: Checking group summary information +Fix summary information? yes + +Free blocks count wrong for group 0 (75, counted=74). FIXED +Free blocks count wrong (75, counted=74). FIXED +Free inodes count wrong for group #0 (17, counted=16). FIXED +Directories count wrong for group #0 (4, counted=5). FIXED +Free inodes count wrong (17, counted=16). FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 16/32 files, 26/100 blocks +Exit status is 1 diff --git a/tests/f_noroot/expect.2 b/tests/f_noroot/expect.2 new file mode 100644 index 00000000..8cf7758c --- /dev/null +++ b/tests/f_noroot/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 16/32 files, 26/100 blocks +Exit status is 0 diff --git a/tests/f_noroot/image.gz b/tests/f_noroot/image.gz Binary files differnew file mode 100644 index 00000000..0a87e996 --- /dev/null +++ b/tests/f_noroot/image.gz diff --git a/tests/f_noroot/name b/tests/f_noroot/name new file mode 100644 index 00000000..a70ebc29 --- /dev/null +++ b/tests/f_noroot/name @@ -0,0 +1 @@ +missing root directory diff --git a/tests/f_okgroup/expect.1 b/tests/f_okgroup/expect.1 new file mode 100644 index 00000000..8ee1a4b8 --- /dev/null +++ b/tests/f_okgroup/expect.1 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 11/2048 files, 274/8193 blocks +Exit status is 0 diff --git a/tests/f_okgroup/expect.2 b/tests/f_okgroup/expect.2 new file mode 100644 index 00000000..8ee1a4b8 --- /dev/null +++ b/tests/f_okgroup/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 11/2048 files, 274/8193 blocks +Exit status is 0 diff --git a/tests/f_okgroup/image.gz b/tests/f_okgroup/image.gz Binary files differnew file mode 100644 index 00000000..06b67c7a --- /dev/null +++ b/tests/f_okgroup/image.gz diff --git a/tests/f_okgroup/name b/tests/f_okgroup/name new file mode 100644 index 00000000..3da66af8 --- /dev/null +++ b/tests/f_okgroup/name @@ -0,0 +1 @@ +8193 block long filesystem diff --git a/tests/f_overfsblks/expect.1 b/tests/f_overfsblks/expect.1 new file mode 100644 index 00000000..91c9ae2c --- /dev/null +++ b/tests/f_overfsblks/expect.1 @@ -0,0 +1,16 @@ +Pass 1: Checking inodes, blocks, and sizes +Group 0's inode bitmap at 3 conflicts with some other fs block. +Relocate? yes + +Relocating group 0's inode bitmap from 3 to 4... +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Fix summary information? yes + +Inode bitmap differences: -12 -13 -14 -15 -16 -17 -18 -19 -20 -21. FIXED + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/32 files, 22/100 blocks +Exit status is 1 diff --git a/tests/f_overfsblks/expect.2 b/tests/f_overfsblks/expect.2 new file mode 100644 index 00000000..b8b19f83 --- /dev/null +++ b/tests/f_overfsblks/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 11/32 files, 22/100 blocks +Exit status is 0 diff --git a/tests/f_overfsblks/image.gz b/tests/f_overfsblks/image.gz Binary files differnew file mode 100644 index 00000000..60b6b2ea --- /dev/null +++ b/tests/f_overfsblks/image.gz diff --git a/tests/f_overfsblks/name b/tests/f_overfsblks/name new file mode 100644 index 00000000..8ab60408 --- /dev/null +++ b/tests/f_overfsblks/name @@ -0,0 +1 @@ +overlapping inode and block bitmaps diff --git a/tests/run_e2fsck b/tests/run_e2fsck new file mode 100644 index 00000000..4923c662 --- /dev/null +++ b/tests/run_e2fsck @@ -0,0 +1,72 @@ +if [ "$IMAGE"x = x ]; then + IMAGE=$test_dir/image.gz +fi + +if [ "$FSCK_OPT"x = x ]; then + FSCK_OPT=-yf +fi + +if [ "$SECOND_FSCK_OPT"x = x ]; then + SECOND_FSCK_OPT=-yf +fi + +if [ "$OUT1"x = x ]; then + OUT1=$test_name.1.log +fi + +if [ "$OUT2"x = x ]; then + OUT2=$test_name.2.log +fi + +if [ "$EXP1"x = x ]; then + EXP1=$test_dir/expect.1 +fi + +if [ "$EXP2"x = x ]; then + EXP2=$test_dir/expect.2 +fi + +gunzip < $IMAGE > $TMPFILE + +$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT1.new 2>&1 +status=$? +echo Exit status is $status >> $OUT1.new +sed -e '1d' $OUT1.new > $OUT1 +rm -f $OUT1.new + +if [ "$ONE_PASS_ONLY" != "true" ]; then + $FSCK $SECOND_FSCK_OPT -N test_filesys $TMPFILE > $OUT2.new 2>&1 + status=$? + echo Exit status is $status >> $OUT2.new + sed -e '1d' $OUT2.new > $OUT2 + rm -f $OUT2.new +fi + +rm $TMPFILE + +if [ "$SKIP_VERIFY" != "true" ] ; then + rm -f $test_name.ok $test_name.failed + cmp -s $OUT1 $EXP1 + status1=$? + if [ "$ONE_PASS_ONLY" != "true" ]; then + cmp -s $OUT2 $EXP2 + status2=$? + else + status2=0 + fi + + if [ "$status1" = 0 -a "$status2" = 0 ] ; then + echo "ok" + touch $test_name.ok + else + echo "failed" + diff -c $EXP1 $OUT1 > $test_name.failed + if [ "$ONE_PASS_ONLY" != "true" ]; then + diff -c $EXP2 $OUT2 >> $test_name.failed + fi + fi +fi + +if [ "$SKIP_CLEANUP" != "true" ] ; then + unset IMAGE FSCK_OPT SECOND_FSCK_OPT OUT1 OUT2 EXP1 EXP2 +fi diff --git a/tests/test_config b/tests/test_config new file mode 100644 index 00000000..86a5bde6 --- /dev/null +++ b/tests/test_config @@ -0,0 +1,9 @@ +# +# Test configuration +# + +FSCK=../e2fsck/e2fsck +LD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss +export LD_LIBRARY_PATH +TZ=GMT +export TZ diff --git a/tests/test_script b/tests/test_script new file mode 100644 index 00000000..dc104f43 --- /dev/null +++ b/tests/test_script @@ -0,0 +1,43 @@ +#!/bin/sh +# +# Test script for e2fsck +# + +if test "$1"x = x ; then +SRCDIR=. +else +SRCDIR=$1 +fi + +cmd_dir=$SRCDIR +TMPFILE=./test.img + +. $SRCDIR/test_config + +for test_dir in $SRCDIR/[a-zA-Z]_* +do + test_name=`echo $test_dir | sed -e 's;.*/;;'` + if [ -f $test_dir/name ]; then + test_description=`cat $test_dir/name` + echo -n "$test_name: $test_description: " + else + echo -n "$test_name: " + fi + if [ -f $test_dir/script ]; then + . $test_dir/script + else + test_base=`echo $test_name | sed -e 's/_.*//'` + default_script=$SRCDIR/defaults/${test_base}_script + if [ -f $default_script ]; then + . $SRCDIR/defaults/${test_base}_script + else + echo "Missing test script!" + fi + fi +done + +num_ok=`ls *.ok | wc -l` +num_failed=`ls *.failed 2>/dev/null | wc -l` + +echo "$num_ok tests succeeded $num_failed tests failed" + |