summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--configure.in2
-rw-r--r--e2fsck/ChangeLog13
-rw-r--r--e2fsck/Makefile.in43
-rw-r--r--e2fsck/pass3.c6
-rw-r--r--e2fsck/problem.c2
-rw-r--r--lib/e2p/ChangeLog4
-rw-r--r--lib/e2p/Makefile.in10
-rw-r--r--lib/ext2fs/ChangeLog4
-rw-r--r--lib/ext2fs/Makefile.in268
-rw-r--r--misc/ChangeLog10
-rw-r--r--misc/Makefile.in9
-rw-r--r--misc/fsck.c140
13 files changed, 287 insertions, 228 deletions
diff --git a/ChangeLog b/ChangeLog
index 171bbd27..7df042d6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+1998-11-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * configure.in: Add paths.h to header files for which we search.
+
1998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
* Release of E2fsprogs 1.12
diff --git a/configure.in b/configure.in
index 1b1a9f4c..63609f62 100644
--- a/configure.in
+++ b/configure.in
@@ -316,7 +316,7 @@ AC_CHECK_TOOL(STRIP, strip, :)
AC_PROG_CC
AC_PROG_INSTALL
AC_C_CROSS
-AC_CHECK_HEADERS(stdlib.h unistd.h stdarg.h errno.h mntent.h dirent.h getopt.h setjmp.h linux/fd.h linux/major.h sys/disklabel.h sys/sockio.h sys/time.h sys/stat.h sys/types.h net/if.h netinet/in.h)
+AC_CHECK_HEADERS(stdlib.h unistd.h stdarg.h errno.h mntent.h paths.h dirent.h getopt.h setjmp.h linux/fd.h linux/major.h sys/disklabel.h sys/sockio.h sys/time.h sys/stat.h sys/types.h net/if.h netinet/in.h)
AC_FUNC_VPRINTF
dnl
dnl See if struct dirent has a d_namlen field (like bsd systems), implying
diff --git a/e2fsck/ChangeLog b/e2fsck/ChangeLog
index 0e651f57..b569938e 100644
--- a/e2fsck/ChangeLog
+++ b/e2fsck/ChangeLog
@@ -1,3 +1,16 @@
+1998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * Makefile.in: Updated dependencies.
+
+1998-11-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * pass3.c (get_lost_and_found): If the filesystem is not opened
+ read-only, then force /lost+found to be created if it is
+ not present.
+
+ * problem.c: Allow PR_3_NO_LF_DIR to be handled during a preen
+ operation.
+
1998-10-28 Theodore Ts'o <tytso@rsts-11.mit.edu>
* unix.c (main): Move ext2fs_close() after e2fsck_free_context()
diff --git a/e2fsck/Makefile.in b/e2fsck/Makefile.in
index d93624cc..cec98e71 100644
--- a/e2fsck/Makefile.in
+++ b/e2fsck/Makefile.in
@@ -151,25 +151,23 @@ distclean: clean
# Makefile dependencies follow. This must be the last section in
# the Makefile.in file
#
-e2fsck.o: $(srcdir)/e2fsck.c $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/e2fsck.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
+e2fsck.o: $(srcdir)/e2fsck.c $(srcdir)/e2fsck.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/problem.h
super.o: $(srcdir)/super.c $(top_srcdir)/lib/uuid/uuid.h $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/problem.h \
- $(srcdir)/../version.h
+ $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/problem.h
pass1.o: $(srcdir)/pass1.c $(srcdir)/e2fsck.h \
- $(top_srcdir)/lib/ext2fs/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/problem.h
pass1b.o: $(srcdir)/pass1b.c $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/e2fsck.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
$(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/problem.h
-pass2.o: $(srcdir)/pass2.c $(srcdir)/e2fsck.h \
+pass2.o: $(srcdir)/pass2.c $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/problem.h
@@ -189,24 +187,23 @@ badblocks.o: $(srcdir)/badblocks.c $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/e2fsck.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
$(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/bitops.h
-util.o: $(srcdir)/util.c $(srcdir)/e2fsck.h \
+util.o: $(srcdir)/util.c $(srcdir)/e2fsck.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(top_srcdir)/lib/ext2fs/bitops.h
+unix.o: $(srcdir)/unix.c $(top_srcdir)/lib/et/com_err.h $(srcdir)/e2fsck.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(srcdir)/problem.h $(srcdir)/../version.h
+dirinfo.o: $(srcdir)/dirinfo.c $(srcdir)/e2fsck.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/bitops.h
-unix.o: $(srcdir)/unix.c $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/e2fsck.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
- $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/problem.h \
- $(srcdir)/../version.h
-dirinfo.o: $(srcdir)/dirinfo.c $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/e2fsck.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
- $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/bitops.h
ehandler.o: $(srcdir)/ehandler.c $(srcdir)/e2fsck.h \
- $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
- $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/bitops.h
+ $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(top_srcdir)/lib/ext2fs/bitops.h
problem.o: $(srcdir)/problem.c $(srcdir)/e2fsck.h \
- $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
- $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/problem.h
+ $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(srcdir)/problem.h $(srcdir)/problemP.h
diff --git a/e2fsck/pass3.c b/e2fsck/pass3.c
index 07006982..560f291c 100644
--- a/e2fsck/pass3.c
+++ b/e2fsck/pass3.c
@@ -124,6 +124,12 @@ void e2fsck_pass3(e2fsck_t ctx)
check_directory(ctx, dir, &pctx);
}
+ /*
+ * Force the creation of /lost+found if not present
+ */
+ if ((ctx->flags & E2F_OPT_READONLY) == 0)
+ get_lost_and_found(ctx);
+
abort_exit:
e2fsck_free_dir_info(ctx);
if (inode_loop_detect)
diff --git a/e2fsck/problem.c b/e2fsck/problem.c
index e9ef1cff..5113d4a3 100644
--- a/e2fsck/problem.c
+++ b/e2fsck/problem.c
@@ -710,7 +710,7 @@ static const struct e2fsck_problem problem_table[] = {
/* /lost+found not found */
{ PR_3_NO_LF_DIR,
"/@l not found. ",
- PROMPT_CREATE, 0 },
+ PROMPT_CREATE, PR_PREEN_OK },
/* .. entry is incorrect */
{ PR_3_BAD_DOT_DOT,
diff --git a/lib/e2p/ChangeLog b/lib/e2p/ChangeLog
index f042efea..8e0656b6 100644
--- a/lib/e2p/ChangeLog
+++ b/lib/e2p/ChangeLog
@@ -1,3 +1,7 @@
+1998-12-02 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * Makefile.in: Updated dependencies.
+
1998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>
* Release of E2fsprogs 1.12
diff --git a/lib/e2p/Makefile.in b/lib/e2p/Makefile.in
index b9366843..3bf404c7 100644
--- a/lib/e2p/Makefile.in
+++ b/lib/e2p/Makefile.in
@@ -92,17 +92,19 @@ distclean:: clean
# Makefile dependencies follow. This must be the last section in
# the Makefile.in file
#
-fgetflags.o: $(srcdir)/fgetflags.c $(srcdir)/e2p.h
-fsetflags.o: $(srcdir)/fsetflags.c $(srcdir)/e2p.h
+fgetflags.o: $(srcdir)/fgetflags.c $(srcdir)/e2p.h
+fsetflags.o: $(srcdir)/fsetflags.c $(srcdir)/e2p.h
fgetversion.o: $(srcdir)/fgetversion.c $(srcdir)/e2p.h
fsetversion.o: $(srcdir)/fsetversion.c $(srcdir)/e2p.h
getflags.o: $(srcdir)/getflags.c $(srcdir)/e2p.h
getversion.o: $(srcdir)/getversion.c $(srcdir)/e2p.h
-iod.o: $(srcdir)/iod.c $(srcdir)/e2p.h
+iod.o: $(srcdir)/iod.c $(srcdir)/e2p.h
ls.o: $(srcdir)/ls.c $(srcdir)/e2p.h
pe.o: $(srcdir)/pe.c $(srcdir)/e2p.h
pf.o: $(srcdir)/pf.c $(srcdir)/e2p.h
ps.o: $(srcdir)/ps.c $(srcdir)/e2p.h
setflags.o: $(srcdir)/setflags.c $(srcdir)/e2p.h
setversion.o: $(srcdir)/setversion.c $(srcdir)/e2p.h
-uuid.o: $(srcdir)/uuid.c
+uuid.o: $(srcdir)/uuid.c $(srcdir)/e2p.h
+
+
diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog
index 5353ef96..8844c170 100644
--- a/lib/ext2fs/ChangeLog
+++ b/lib/ext2fs/ChangeLog
@@ -1,3 +1,7 @@
+1998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * Makefile.in: Updated dependencies.
+
1998-09-22 Theodore Ts'o <tytso@rsts-11.mit.edu>
* initialize.c (ext2fs_initialize): Make sure that we allocate
diff --git a/lib/ext2fs/Makefile.in b/lib/ext2fs/Makefile.in
index 962d843d..6171d9b8 100644
--- a/lib/ext2fs/Makefile.in
+++ b/lib/ext2fs/Makefile.in
@@ -63,9 +63,7 @@ SRCS= ext2_err.c \
$(srcdir)/bitmaps.c \
$(srcdir)/bitops.c \
$(srcdir)/block.c \
-# $(srcdir)/brel_ma.c \
$(srcdir)/bmap.c \
-# $(srcdir)/bmove.c \
$(srcdir)/check_desc.c \
$(srcdir)/closefs.c \
$(srcdir)/cmp_bitmaps.c \
@@ -83,7 +81,6 @@ SRCS= ext2_err.c \
$(srcdir)/initialize.c \
$(srcdir)/inline.c \
$(srcdir)/inode.c \
-# $(srcdir)/irel_ma.c \
$(srcdir)/ismounted.c \
$(srcdir)/link.c \
$(srcdir)/llseek.c \
@@ -205,197 +202,144 @@ distclean:: clean
# the Makefile.in file
#
ext2_err.o: ext2_err.c
-alloc.o: $(srcdir)/alloc.c \
- $(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-alloc_tables.o: $(srcdir)/alloc_tables.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-badblocks.o: $(srcdir)/badblocks.c \
- $(srcdir)/ext2fsP.h \
- $(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-bb_compat.o: $(srcdir)/bb_compat.c \
- $(srcdir)/ext2fsP.h \
+alloc.o: $(srcdir)/alloc.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+alloc_tables.o: $(srcdir)/alloc_tables.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+badblocks.o: $(srcdir)/badblocks.c $(srcdir)/ext2fsP.h $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+bb_compat.o: $(srcdir)/bb_compat.c $(srcdir)/ext2fsP.h $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+bb_inode.o: $(srcdir)/bb_inode.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+bitmaps.o: $(srcdir)/bitmaps.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+bitops.o: $(srcdir)/bitops.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+block.o: $(srcdir)/block.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+bmap.o: $(srcdir)/bmap.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+check_desc.o: $(srcdir)/check_desc.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+closefs.o: $(srcdir)/closefs.c $(srcdir)/ext2fsP.h \
$(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(srcdir)/bitops.h
-bb_inode.o: $(srcdir)/bb_inode.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-bitmaps.o: $(srcdir)/bitmaps.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-bitops.o: $(srcdir)/bitops.c \
+cmp_bitmaps.o: $(srcdir)/cmp_bitmaps.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+dblist.o: $(srcdir)/dblist.c $(srcdir)/ext2fsP.h \
$(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(srcdir)/bitops.h
-block.o: $(srcdir)/block.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-brel_ma.o: $(srcdir)/brel_ma.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h $(srcdir)/brel.h
-bmove.o: $(srcdir)/bmove.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-check_desc.o: $(srcdir)/check_desc.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-closefs.o: $(srcdir)/closefs.c \
- $(srcdir)/ext2fsP.h \
+dblist_dir.o: $(srcdir)/dblist_dir.c $(srcdir)/ext2fsP.h \
$(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(srcdir)/bitops.h
-cmp_bitmaps.o: $(srcdir)/cmp_bitmaps.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-dblist.o: $(srcdir)/dblist.c \
- $(srcdir)/ext2fsP.h $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-dblist_dir.o: $(srcdir)/dblist_dir.c \
- $(srcdir)/ext2fsP.h $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-dirblock.o: $(srcdir)/dirblock.c \
+dirblock.o: $(srcdir)/dirblock.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+dir_iterate.o: $(srcdir)/dir_iterate.c $(srcdir)/ext2fsP.h \
+ $(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+dupfs.o: $(srcdir)/dupfs.c $(srcdir)/ext2fsP.h \
$(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(srcdir)/bitops.h
-dir_iterate.o: $(srcdir)/dir_iterate.c \
- $(srcdir)/ext2fsP.h $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-dupfs.o: $(srcdir)/dupfs.c \
- $(srcdir)/ext2fsP.h \
+expanddir.o: $(srcdir)/expanddir.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+fileio.o: $(srcdir)/fileio.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+freefs.o: $(srcdir)/freefs.c $(srcdir)/ext2fsP.h \
$(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(srcdir)/bitops.h
-expanddir.o: $(srcdir)/expanddir.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-freefs.o: $(srcdir)/freefs.c \
- $(srcdir)/ext2fsP.h \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-get_pathname.o: $(srcdir)/get_pathname.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-getsize.o: $(srcdir)/getsize.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-icount.o: $(srcdir)/icount.c $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2fs.h \
- $(srcdir)/ext2_io.h \
+get_pathname.o: $(srcdir)/get_pathname.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
-initialize.o: $(srcdir)/initialize.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-inline.o: $(srcdir)/inline.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-inode.o: $(srcdir)/inode.c \
- $(srcdir)/ext2fsP.h $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-irel_ma.o: $(srcdir)/irel_ma.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h $(srcdir)/irel.h
-ismounted.o: $(srcdir)/ismounted.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-link.o: $(srcdir)/link.c \
- $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-llseek.o: $(srcdir)/llseek.c $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h
+getsize.o: $(srcdir)/getsize.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+icount.o: $(srcdir)/icount.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+initialize.o: $(srcdir)/initialize.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+inline.o: $(srcdir)/inline.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+inode.o: $(srcdir)/inode.c $(srcdir)/ext2fsP.h $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+ismounted.o: $(srcdir)/ismounted.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+link.o: $(srcdir)/link.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+llseek.o: $(srcdir)/llseek.c $(top_srcdir)/lib/et/com_err.h \
+ $(srcdir)/ext2_io.h
lookup.o: $(srcdir)/lookup.c $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
mkdir.o: $(srcdir)/mkdir.c $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
namei.o: $(srcdir)/namei.c $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
native.o: $(srcdir)/native.c $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
newdir.o: $(srcdir)/newdir.c $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
openfs.o: $(srcdir)/openfs.c $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
read_bb.o: $(srcdir)/read_bb.c $(srcdir)/ext2fs.h \
$(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
read_bb_file.o: $(srcdir)/read_bb_file.c $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
rs_bitmap.o: $(srcdir)/rs_bitmap.c $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
rw_bitmaps.o: $(srcdir)/rw_bitmaps.c $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
swapfs.o: $(srcdir)/swapfs.c $(srcdir)/ext2fs.h \
$(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
-test_io.o: $(srcdir)/test_io.c $(top_srcdir)/lib/et/com_err.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/ext2_io.h
-unix_io.o: $(srcdir)/unix_io.c $(top_srcdir)/lib/et/com_err.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/ext2_io.h
+test_io.o: $(srcdir)/test_io.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+unix_io.o: $(srcdir)/unix_io.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
unlink.o: $(srcdir)/unlink.c $(srcdir)/ext2fs.h \
- $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-valid_blk.o: $(srcdir)/valid_blk.c \
- $(srcdir)/ext2fs.h $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
- $(srcdir)/bitops.h
-version.o: $(srcdir)/version.c $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/ext2fs.h $(srcdir)/ext2_io.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+valid_blk.o: $(srcdir)/valid_blk.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h
+version.o: $(srcdir)/version.c $(srcdir)/ext2fs.h \
+ $(top_srcdir)/lib/et/com_err.h $(srcdir)/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h $(srcdir)/bitops.h \
$(srcdir)/../../version.h
diff --git a/misc/ChangeLog b/misc/ChangeLog
index d802b12d..888932bd 100644
--- a/misc/ChangeLog
+++ b/misc/ChangeLog
@@ -1,3 +1,13 @@
+1998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * Makefile.in: Updated dependencies.
+
+1998-11-27 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * fsck.c (load_fs_info): Parse /etc/fstab ourselves, instead of
+ relying on getmntent(). This has the advantage of
+ allowing us to properly handle missing pass numbers correctly.
+
1998-11-13 Theodore Ts'o <tytso@rsts-11.mit.edu>
* tune2fs.8.in: Fix minor display bug in the nroff.
diff --git a/misc/Makefile.in b/misc/Makefile.in
index fb56149e..83877cf6 100644
--- a/misc/Makefile.in
+++ b/misc/Makefile.in
@@ -180,10 +180,11 @@ 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/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h $(top_srcdir)/lib/ext2fs/bitops.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/ext2_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/ext2_io.h
fsck.o: $(srcdir)/fsck.c $(srcdir)/../version.h $(srcdir)/fsck.h
diff --git a/misc/fsck.c b/misc/fsck.c
index c30997e1..dac97078 100644
--- a/misc/fsck.c
+++ b/misc/fsck.c
@@ -39,8 +39,8 @@
#if HAVE_ERRNO_H
#include <errno.h>
#endif
-#if HAVE_MNTENT_H
-#include <mntent.h>
+#if HAVE_PATHS_H
+#include <paths.h>
#endif
#if HAVE_UNISTD_H
#include <unistd.h>
@@ -53,6 +53,10 @@
#include "../version.h"
#include "fsck.h"
+#ifndef _PATH_MNTTAB
+#define _PATH_MNTTAB "/etc/fstab"
+#endif
+
static const char *ignored_types[] = {
"ignore",
"iso9660",
@@ -143,6 +147,49 @@ static char *string_copy(const char *s)
return ret;
}
+static char *skip_over_blank(char *cp)
+{
+ while (*cp && isspace(*cp))
+ cp++;
+ return cp;
+}
+
+static char *skip_over_word(char *cp)
+{
+ while (*cp && !isspace(*cp))
+ cp++;
+ return cp;
+}
+
+static void strip_line(char *line)
+{
+ char *p;
+
+ while (*line) {
+ p = line + strlen(line) - 1;
+ if ((*p == '\n') || (*p == '\r'))
+ *p = 0;
+ else
+ break;
+ }
+}
+
+static char *parse_word(char **buf)
+{
+ char *word, *next;
+
+ word = *buf;
+ if (*word == 0)
+ return 0;
+
+ word = skip_over_blank(word);
+ next = skip_over_word(word);
+ if (*next)
+ *next++ = 0;
+ *buf = next;
+ return word;
+}
+
static void free_instance(struct fsck_instance *i)
{
if (i->prog)
@@ -153,47 +200,77 @@ static void free_instance(struct fsck_instance *i)
return;
}
+struct fs_info *parse_fstab_line(char *line)
+{
+ char *device, *mntpnt, *type, *opts, *freq, *passno, *cp;
+ struct fs_info *fs;
+
+ strip_line(line);
+ cp = line;
+
+ device = parse_word(&cp);
+ mntpnt = parse_word(&cp);
+ type = parse_word(&cp);
+ opts = parse_word(&cp);
+ freq = parse_word(&cp);
+ passno = parse_word(&cp);
+
+ if (!device || !mntpnt || !type)
+ return 0;
+
+ if (!(fs = malloc(sizeof(struct fs_info))))
+ return 0;
+
+ fs->device = string_copy(device);
+ fs->mountpt = string_copy(mntpnt);
+ fs->type = string_copy(type);
+ fs->opts = string_copy(opts ? opts : "");
+ fs->freq = freq ? atoi(freq) : -1;
+ fs->passno = passno ? atoi(passno) : -1;
+ fs->flags = 0;
+ fs->next = NULL;
+
+ return fs;
+}
+
/*
* Load the filesystem database from /etc/fstab
*/
-static void load_fs_info(NOARGS)
+static void load_fs_info(char *filename)
{
-#if HAVE_MNTENT_H
- FILE *mntfile;
- struct mntent *mp;
- struct fs_info *fs;
- struct fs_info *fs_last = NULL;
+ FILE *f;
+ char buf[1024];
+ int lineno = 0;
int old_fstab = 1;
+ struct fs_info *fs, *fs_last = NULL;
filesys_info = NULL;
-
- /* Open the mount table. */
- if ((mntfile = setmntent(MNTTAB, "r")) == NULL) {
- perror(MNTTAB);
- exit(EXIT_ERROR);
+ if ((f = fopen(filename, "r")) == NULL) {
+ fprintf(stderr, "WARNING: couldn't open %s: %s\n",
+ filename, strerror(errno));
+ return;
}
-
- while ((mp = getmntent(mntfile)) != NULL) {
- fs = malloc(sizeof(struct fs_info));
- memset(fs, 0, sizeof(struct fs_info));
- fs->device = string_copy(mp->mnt_fsname);
- fs->mountpt = string_copy(mp->mnt_dir);
- fs->type = string_copy(mp->mnt_type);
- fs->opts = string_copy(mp->mnt_opts);
- fs->freq = mp->mnt_freq;
- fs->passno = mp->mnt_passno;
- fs->next = NULL;
+ while (!feof(f)) {
+ lineno++;
+ if (!fgets(buf, sizeof(buf), f))
+ break;
+ buf[sizeof(buf)-1] = 0;
+ if ((fs = parse_fstab_line(buf)) == NULL) {
+ fprintf(stderr, "WARNING: bad format "
+ "on line %d of %s\n", lineno, filename);
+ continue;
+ }
if (!filesys_info)
filesys_info = fs;
else
fs_last->next = fs;
fs_last = fs;
- if (fs->passno)
+ if (fs->passno >=0)
old_fstab = 0;
}
-
- (void) endmntent(mntfile);
-
+
+ fclose(f);
+
if (old_fstab) {
fprintf(stderr, "\007\007\007"
"WARNING: Your /etc/fstab does not contain the fsck passno\n");
@@ -206,9 +283,6 @@ 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. */
@@ -642,8 +716,6 @@ static void PRS(int argc, char *argv[])
progname = argv[0];
- load_fs_info();
-
for (i=1; i < argc; i++) {
arg = argv[i];
if (!arg)
@@ -744,6 +816,8 @@ int main(int argc, char *argv[])
printf("Parallelizing fsck version %s (%s)\n",
E2FSPROGS_VERSION, E2FSPROGS_DATE);
+ load_fs_info(_PATH_MNTTAB);
+
/* Update our search path to include uncommon directories. */
if (oldpath) {
fsck_path = malloc (strlen (fsck_prefix_path) + 1 +