Rev openSUSE:Factory/21 Md5 73b605b9b983529dfdde9fa43c5ec782 2008-03-07 19:27:55 unknown None

This commit is contained in:
OBS User unknown 2008-03-07 19:27:55 +00:00 committed by Git OBS Bridge
parent ca2f34433a
commit 7f79e6b6f4
8 changed files with 195 additions and 245 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:29c72055c3f79b0fe41556b1dc887a0806a4e7b1670c345dc10f0582294ced04
size 3663614

View File

@ -0,0 +1,50 @@
After the fix for resize2fs's inode mover losing in-inode
extended attributes, the regression test I wrote caught
that the attrs were still getting lost on powerpc.
Looks like the problem is that ext2fs_swap_inode_full()
isn't paying attention to whether or not the EA magic is
in hostorder, so it's not recognized (and not swapped)
on BE machines. Patch below seems to fix it.
Yay for regression tests. ;)
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---
Index: e2fsprogs-1.40.7/lib/ext2fs/swapfs.c
===================================================================
--- e2fsprogs-1.40.7.orig/lib/ext2fs/swapfs.c
+++ e2fsprogs-1.40.7/lib/ext2fs/swapfs.c
@@ -133,7 +133,7 @@ void ext2fs_swap_inode_full(ext2_filsys
struct ext2_inode_large *f, int hostorder,
int bufsize)
{
- unsigned i, has_data_blocks, extra_isize;
+ unsigned i, has_data_blocks, extra_isize, attr_magic;
int islnk = 0;
__u32 *eaf, *eat;
@@ -231,13 +231,17 @@ void ext2fs_swap_inode_full(ext2_filsys
eaf = (__u32 *) (((char *) f) + sizeof(struct ext2_inode) +
extra_isize);
-
- if (ext2fs_swab32(*eaf) != EXT2_EXT_ATTR_MAGIC)
- return; /* it seems no magic here */
-
eat = (__u32 *) (((char *) t) + sizeof(struct ext2_inode) +
extra_isize);
+
+ if (hostorder)
+ attr_magic = *eaf;
*eat = ext2fs_swab32(*eaf);
+ if (!hostorder)
+ attr_magic = *eat;
+
+ if (attr_magic != EXT2_EXT_ATTR_MAGIC)
+ return; /* it seems no magic here */
/* convert EA(s) */
ext2fs_swap_ext_attr((char *) (eat + 1), (char *) (eaf + 1),

3
e2fsprogs-1.40.7.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:02491e8e0dd569fa0762556632b8a562c794a902d4881fa0420cebae52926e54
size 3681509

View File

@ -6,8 +6,8 @@ Index: misc/Makefile.in
DUMPE2FS_OBJS= dumpe2fs.o
BADBLOCKS_OBJS= badblocks.o
E2IMAGE_OBJS= e2image.o
-FSCK_OBJS= fsck.o base_device.o
+FSCK_OBJS= fsck.o base_device.o fsck_udev.o
-FSCK_OBJS= fsck.o base_device.o ismounted.o
+FSCK_OBJS= fsck.o base_device.o ismounted.o fsck_udev.o
BLKID_OBJS= blkid.o
FILEFRAG_OBJS= filefrag.o
@ -57,34 +57,6 @@ Index: misc/base_device.c
#include "fsck.h"
Index: misc/fsck.8.in
===================================================================
--- misc/fsck.8.in.orig
+++ misc/fsck.8.in
@@ -8,7 +8,7 @@ fsck \- check and repair a Linux file sy
.SH SYNOPSIS
.B fsck
[
-.B \-sAVRTNP
+.B \-sAVRTMNP
]
[
.B \-C
@@ -236,6 +236,14 @@ in which case the progress bar informati
.B \-N
Don't execute, just show what would be done.
.TP
+.B \-M
+Emulate
+.BR mount (1)
+behaviour; do not check the filesystem if it's not listed in
+/etc/fstab or if
+.I fs_pass_no
+of the corresponding entry is zero.
+.TP
.B \-P
When the
.B \-A
Index: misc/fsck.c
===================================================================
--- misc/fsck.c.orig
@ -123,16 +95,7 @@ Index: misc/fsck.c
if (t) {
free(fs->type);
fs->type = t;
@@ -1058,7 +1056,7 @@ static int check_all(NOARGS)
static void usage(NOARGS)
{
- fputs(_("Usage: fsck [-ANPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"), stderr);
+ fputs(_("Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"), stderr);
exit(EXIT_USAGE);
}
@@ -1104,7 +1102,7 @@ static void PRS(int argc, char *argv[])
@@ -1106,7 +1104,7 @@ static void PRS(int argc, char *argv[])
progname);
exit(EXIT_ERROR);
}
@ -141,7 +104,7 @@ Index: misc/fsck.c
if (!dev && strchr(arg, '=')) {
/*
* Check to see if we failed because
@@ -1250,7 +1248,7 @@ int main(int argc, char *argv[])
@@ -1252,7 +1250,7 @@ int main(int argc, char *argv[])
bindtextdomain(NLS_CAT_NAME, LOCALEDIR);
textdomain(NLS_CAT_NAME);
#endif
@ -150,24 +113,7 @@ Index: misc/fsck.c
PRS(argc, argv);
if (!notitle)
@@ -1297,6 +1295,16 @@ int main(int argc, char *argv[])
break;
}
fs = lookup(devices[i]);
+ if (like_mount) {
+ /*
+ * Emulate mount behaviour:
+ * Do not check device if not found
+ * in /etc/fstab or if the passno
+ * is set to '0'
+ */
+ if (!fs || ignore(fs))
+ continue;
+ }
if (!fs) {
fs = create_fs_device(devices[i], 0, "auto",
0, -1, -1);
@@ -1319,6 +1327,6 @@ int main(int argc, char *argv[])
@@ -1323,6 +1321,6 @@ int main(int argc, char *argv[])
}
status |= wait_many(FLAG_WAIT_ALL);
free(fsck_path);

View File

@ -1,7 +1,7 @@
Index: e2fsprogs-1.40.6/lib/Makefile.elf-lib
Index: e2fsprogs-1.40.7/lib/Makefile.elf-lib
===================================================================
--- e2fsprogs-1.40.6.orig/lib/Makefile.elf-lib
+++ e2fsprogs-1.40.6/lib/Makefile.elf-lib
--- e2fsprogs-1.40.7.orig/lib/Makefile.elf-lib
+++ e2fsprogs-1.40.7/lib/Makefile.elf-lib
@@ -15,7 +15,7 @@ all:: image
real-subdirs:: Makefile
@ -11,10 +11,10 @@ Index: e2fsprogs-1.40.6/lib/Makefile.elf-lib
ELF_LIB = $(ELF_IMAGE).so.$(ELF_VERSION)
ELF_SONAME = $(ELF_IMAGE).so.$(ELF_SO_VERSION)
Index: e2fsprogs-1.40.6/lib/ext2fs/Makefile.in
Index: e2fsprogs-1.40.7/lib/ext2fs/Makefile.in
===================================================================
--- e2fsprogs-1.40.6.orig/lib/ext2fs/Makefile.in
+++ e2fsprogs-1.40.6/lib/ext2fs/Makefile.in
--- e2fsprogs-1.40.7.orig/lib/ext2fs/Makefile.in
+++ e2fsprogs-1.40.7/lib/ext2fs/Makefile.in
@@ -164,12 +164,11 @@ BSDLIB_INSTALL_DIR = $(root_libdir)
all:: ext2fs.pc
@ -123,10 +123,10 @@ Index: e2fsprogs-1.40.6/lib/ext2fs/Makefile.in
@-$(RANLIB) $(DESTDIR)$(libdir)/libext2fs.a
@$(CHMOD) $(LIBMODE) $(DESTDIR)$(libdir)/libext2fs.a
@for i in $(HFILES); do \
Index: e2fsprogs-1.40.6/lib/blkid/Makefile.in
Index: e2fsprogs-1.40.7/lib/blkid/Makefile.in
===================================================================
--- e2fsprogs-1.40.6.orig/lib/blkid/Makefile.in
+++ e2fsprogs-1.40.6/lib/blkid/Makefile.in
--- e2fsprogs-1.40.7.orig/lib/blkid/Makefile.in
+++ e2fsprogs-1.40.7/lib/blkid/Makefile.in
@@ -54,8 +54,7 @@ LIBS_BLKID= $(STATIC_LIBBLKID) $(STATIC_
DEPLIBS_BLKID= $(DEPSTATIC_LIBBLKID) $(DEPSTATIC_LIBUUID)
@ -208,10 +208,10 @@ Index: e2fsprogs-1.40.6/lib/blkid/Makefile.in
test_probe: test_probe.in Makefile
@echo "Creating test_probe..."
Index: e2fsprogs-1.40.6/lib/e2p/Makefile.in
Index: e2fsprogs-1.40.7/lib/e2p/Makefile.in
===================================================================
--- e2fsprogs-1.40.6.orig/lib/e2p/Makefile.in
+++ e2fsprogs-1.40.6/lib/e2p/Makefile.in
--- e2fsprogs-1.40.7.orig/lib/e2p/Makefile.in
+++ e2fsprogs-1.40.7/lib/e2p/Makefile.in
@@ -53,8 +53,7 @@ BSDLIB_INSTALL_DIR = $(root_libdir)
@MAKEFILE_CHECKER@
@ -232,10 +232,10 @@ Index: e2fsprogs-1.40.6/lib/e2p/Makefile.in
$(srcdir)/ostype.c $(ALL_CFLAGS)
check:: tst_ostype
Index: e2fsprogs-1.40.6/lib/ss/Makefile.in
Index: e2fsprogs-1.40.7/lib/ss/Makefile.in
===================================================================
--- e2fsprogs-1.40.6.orig/lib/ss/Makefile.in
+++ e2fsprogs-1.40.6/lib/ss/Makefile.in
--- e2fsprogs-1.40.7.orig/lib/ss/Makefile.in
+++ e2fsprogs-1.40.7/lib/ss/Makefile.in
@@ -37,12 +37,11 @@ MK_CMDS=_SS_DIR_OVERRIDE=. ./mk_cmds
XTRA_CFLAGS= -I$(srcdir)/../et
@ -287,10 +287,10 @@ Index: e2fsprogs-1.40.6/lib/ss/Makefile.in
$(LIBSS) $(LIBCOM_ERR)
check:: all test_ss
Index: e2fsprogs-1.40.6/lib/uuid/Makefile.in
Index: e2fsprogs-1.40.7/lib/uuid/Makefile.in
===================================================================
--- e2fsprogs-1.40.6.orig/lib/uuid/Makefile.in
+++ e2fsprogs-1.40.6/lib/uuid/Makefile.in
--- e2fsprogs-1.40.7.orig/lib/uuid/Makefile.in
+++ e2fsprogs-1.40.7/lib/uuid/Makefile.in
@@ -60,12 +60,11 @@ BSDLIB_INSTALL_DIR = $(root_libdir)
@MAKEFILE_CHECKER@
@ -375,10 +375,10 @@ Index: e2fsprogs-1.40.6/lib/uuid/Makefile.in
uuid.pc: $(srcdir)/uuid.pc.in $(top_builddir)/config.status
@echo " CONFIG.STATUS $@"
Index: e2fsprogs-1.40.6/e2fsck/Makefile.in
Index: e2fsprogs-1.40.7/e2fsck/Makefile.in
===================================================================
--- e2fsprogs-1.40.6.orig/e2fsck/Makefile.in
+++ e2fsprogs-1.40.6/e2fsck/Makefile.in
--- e2fsprogs-1.40.7.orig/e2fsck/Makefile.in
+++ e2fsprogs-1.40.7/e2fsck/Makefile.in
@@ -33,9 +33,8 @@ PROFILED_DEPLIBS= $(PROFILED_LIBEXT2FS)
COMPILE_ET=$(top_builddir)/lib/et/compile_et --build-tree
@ -465,8 +465,8 @@ Index: e2fsprogs-1.40.6/e2fsck/Makefile.in
+ $(MKINSTALLDIRS) $(DESTDIR)$(root_sbindir) \
$(DESTDIR)$(man8dir) $(DESTDIR)$(man5dir)
install: $(PROGS) $(MANPAGES) installdirs
@@ -177,11 +164,9 @@ install: $(PROGS) $(MANPAGES) installdir
install: $(PROGS) $(MANPAGES) $(FMANPAGES) installdirs
@@ -177,11 +164,9 @@ install: $(PROGS) $(MANPAGES) $(FMANPAGE
echo " INSTALL $(root_sbindir)/$$i"; \
$(INSTALL_PROGRAM) $$i $(DESTDIR)$(root_sbindir)/$$i; \
done
@ -480,7 +480,7 @@ Index: e2fsprogs-1.40.6/e2fsck/Makefile.in
$(DESTDIR)$(root_sbindir)/fsck.ext3
@for i in $(MANPAGES); do \
for j in $(COMPRESS_EXT); do \
@@ -197,11 +182,9 @@ install: $(PROGS) $(MANPAGES) installdir
@@ -197,11 +182,9 @@ install: $(PROGS) $(MANPAGES) $(FMANPAGE
echo " INSTALL_DATA $(man5dir)/$$i"; \
$(INSTALL_DATA) $$i $(DESTDIR)$(man5dir)/$$i; \
done
@ -494,10 +494,10 @@ Index: e2fsprogs-1.40.6/e2fsck/Makefile.in
$(DESTDIR)$(man8dir)/fsck.ext3.8
install-strip: install
Index: e2fsprogs-1.40.6/debugfs/Makefile.in
Index: e2fsprogs-1.40.7/debugfs/Makefile.in
===================================================================
--- e2fsprogs-1.40.6.orig/debugfs/Makefile.in
+++ e2fsprogs-1.40.6/debugfs/Makefile.in
--- e2fsprogs-1.40.7.orig/debugfs/Makefile.in
+++ e2fsprogs-1.40.7/debugfs/Makefile.in
@@ -30,26 +30,21 @@ LIBS= $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(
DEPLIBS= $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(LIBCOM_ERR) $(DEPLIBBLKID) $(DEPLIBUUID)
@ -530,10 +530,10 @@ Index: e2fsprogs-1.40.6/debugfs/Makefile.in
$(DESTDIR)$(man8dir)
install: $(PROGS) $(MANPAGES) installdirs
Index: e2fsprogs-1.40.6/resize/Makefile.in
Index: e2fsprogs-1.40.7/resize/Makefile.in
===================================================================
--- e2fsprogs-1.40.6.orig/resize/Makefile.in
+++ e2fsprogs-1.40.6/resize/Makefile.in
--- e2fsprogs-1.40.7.orig/resize/Makefile.in
+++ e2fsprogs-1.40.7/resize/Makefile.in
@@ -34,31 +34,25 @@ STATIC_LIBS= $(STATIC_LIBE2P) $(STATIC_L
STATIC_DEPLIBS= $(STATIC_LIBE2P) $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR)
@ -572,10 +572,10 @@ Index: e2fsprogs-1.40.6/resize/Makefile.in
$(DESTDIR)$(man8dir)
install: $(PROGS) $(MANPAGES) installdirs
Index: e2fsprogs-1.40.6/util/Makefile.in
Index: e2fsprogs-1.40.7/util/Makefile.in
===================================================================
--- e2fsprogs-1.40.6.orig/util/Makefile.in
+++ e2fsprogs-1.40.6/util/Makefile.in
--- e2fsprogs-1.40.7.orig/util/Makefile.in
+++ e2fsprogs-1.40.7/util/Makefile.in
@@ -14,20 +14,17 @@ SRCS = $(srcdir)/subst.c
@MCONFIG@
@ -600,10 +600,10 @@ Index: e2fsprogs-1.40.6/util/Makefile.in
gen-tarball: $(srcdir)/gen-tarball.in $(top_builddir)/config.status
@echo " CONFIG.STATUS $@"
Index: e2fsprogs-1.40.6/tests/progs/Makefile.in
Index: e2fsprogs-1.40.7/tests/progs/Makefile.in
===================================================================
--- e2fsprogs-1.40.6.orig/tests/progs/Makefile.in
+++ e2fsprogs-1.40.6/tests/progs/Makefile.in
--- e2fsprogs-1.40.7.orig/tests/progs/Makefile.in
+++ e2fsprogs-1.40.7/tests/progs/Makefile.in
@@ -25,26 +25,21 @@ LIBS= $(LIBEXT2FS) $(LIBSS) $(LIBCOM_ERR
DEPLIBS= $(LIBEXT2FS) $(LIBSS) $(LIBCOM_ERR)
@ -636,10 +636,10 @@ Index: e2fsprogs-1.40.6/tests/progs/Makefile.in
clean:
$(RM) -f $(PROGS) test_rel_cmds.c test_icount_cmds.c \
Index: e2fsprogs-1.40.6/lib/et/Makefile.in
Index: e2fsprogs-1.40.7/lib/et/Makefile.in
===================================================================
--- e2fsprogs-1.40.6.orig/lib/et/Makefile.in
+++ e2fsprogs-1.40.6/lib/et/Makefile.in
--- e2fsprogs-1.40.7.orig/lib/et/Makefile.in
+++ e2fsprogs-1.40.7/lib/et/Makefile.in
@@ -41,12 +41,11 @@ BSDLIB_INSTALL_DIR = $(root_libdir)
# what to build...
#
@ -658,10 +658,10 @@ Index: e2fsprogs-1.40.6/lib/et/Makefile.in
@MAKEFILE_LIBRARY@
@MAKEFILE_ELF@
Index: e2fsprogs-1.40.6/misc/Makefile.in
Index: e2fsprogs-1.40.7/misc/Makefile.in
===================================================================
--- e2fsprogs-1.40.6.orig/misc/Makefile.in
+++ e2fsprogs-1.40.6/misc/Makefile.in
--- e2fsprogs-1.40.7.orig/misc/Makefile.in
+++ e2fsprogs-1.40.7/misc/Makefile.in
@@ -71,8 +71,7 @@ DEPLIBS_E2P= $(LIBE2P) $(LIBCOM_ERR)
COMPILE_ET=$(top_builddir)/lib/et/compile_et --build-tree
@ -782,5 +782,5 @@ Index: e2fsprogs-1.40.6/misc/Makefile.in
- @$(CC) $(ALL_LDFLAGS) -o filefrag $(FILEFRAG_OBJS)
+ $(CC) $(ALL_LDFLAGS) -o filefrag $(FILEFRAG_OBJS)
tune2fs.8: $(DEP_SUBSTITUTE) $(srcdir)/tune2fs.8.in
@echo " SUBST $@"
tst_ismounted: $(srcdir)/ismounted.c $(STATIC_LIBEXT2FS)
@echo " LD $@"

View File

@ -1,3 +1,49 @@
-------------------------------------------------------------------
Tue Mar 4 15:36:51 CET 2008 - mkoenig@suse.de
- update to version 1.40.7
* Remove support for clearing the SPARSE_SUPER feature from tune2fs, and
depreciate the -s option, since it can result in filesystems which
e2fsck can't fix easily. There are very good reasons for wanting to
disable sparse_super; users who wants to turn off sparse_super can use
debugfs.
* Add missing options to mke2fs's usage message
* Fix bug in resize2fs when large (greater than 128 byte) inodes are
moved when a filesystem is shrunk
* E2fsck now prints an explicit message when the bad block inode is
updated, to avoid confusion about why the filesystem was modified.
* Allow mke2fs and tune2fs manipulate the large_file feature.
Previously we just let the kernel and e2fsck do this automatically,
but e2fsck will no longer automatically clear the large_file feature
* Suppress message about an old-style fstab if the fstab file is empty
* Change e2fsck to no longer clear the LARGE_FILES feature flag
automatically, when there are no more > 2GB files in the filesystem.
* Fix bug which could cause libblkid to seg fault if a device mapper
volume disappears while it is being probed.
* Enhance e2fsck's reporting of unsupported filesystem feature flags
* Fix option syntax in dumpe2fs for explicit superblock and blocksize
parameters
* Add support to tune2fs to clear the resize_inode feature
* Teach blkid to detect LVM2 physical volumes
* Add support for setting RAID stride and stripe-width via mke2fs and
tune2fs. Teach dumpe2fs to print the RAID parameters
* Add support for setting new superblock fields to debugfs's
set_super_value
* Add support for printing "mostly-printable" extended attributes in
Debugfs
* Add support for the -M option to fsck, which causes it to ignore
mounted filesystem
* Fix uuidd so that it creates the pid file with the correct pid number
- The -M option is now used upstream to ignore mounted filesystems,
this has previously been in SuSE with -m. This has to be changed
since lower case characters are reserved for filesystem specific
checker options. The "like mount" behaviour previously in SuSE
with -M has been removed.
- add patch from Eric Sandeen to fix the loss of extended attributes
in large inodes upon resize
- removed patches
fsck-ignore-mounted.patch
-------------------------------------------------------------------
Wed Feb 27 15:52:04 CET 2008 - mkoenig@suse.de

View File

@ -1,5 +1,5 @@
#
# spec file for package e2fsprogs (Version 1.40.6)
# spec file for package e2fsprogs (Version 1.40.7)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@ -19,7 +19,7 @@ Group: System/Filesystems
Supplements: filesystem(ext2) filesystem(ext3)
PreReq: %install_info_prereq
AutoReqProv: on
Version: 1.40.6
Version: 1.40.7
Release: 1
Summary: Utilities for the Second Extended File System
Url: http://e2fsprogs.sourceforge.net
@ -31,14 +31,11 @@ Source4: sysconfig.uuidd
#
# e2fsprogs patches
#
# 100530 - not all installed partitions offered for upgrade
Patch1: e2fsprogs-mdraid.patch
Patch2: e2fsprogs-base_devt.patch
Patch3: e2fsprogs-libvolume_id-support.patch
# 145400 - boot.localfs: Tries to check r/w mounted systems
# 146606 - /boot and other file systems mounted, not check-able after installation
Patch4: fsck-ignore-mounted.patch
Patch5: e2fsprogs-1.40.4-uuidd_pid_path.patch
Patch6: e2fsprogs-1.40.7-fix_ext2fs_swap_inode_full.patch
# libcom_err patches
# 66534 - [SL 10.0] et_list handling of krb5 and libcom_err.so.2 conflict
Patch31: libcom_err-no-init_error_table.patch
@ -231,8 +228,8 @@ Authors:
%patch1
%patch2 -p1
%patch3 -p0
%patch4
%patch5 -p1
%patch6 -p1
# libcom_err patches
%patch31 -p1
%patch32 -p1
@ -443,6 +440,49 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man3/com_err.3.gz
%changelog
* Tue Mar 04 2008 mkoenig@suse.de
- update to version 1.40.7
* Remove support for clearing the SPARSE_SUPER feature from tune2fs, and
depreciate the -s option, since it can result in filesystems which
e2fsck can't fix easily. There are very good reasons for wanting to
disable sparse_super; users who wants to turn off sparse_super can use
debugfs.
* Add missing options to mke2fs's usage message
* Fix bug in resize2fs when large (greater than 128 byte) inodes are
moved when a filesystem is shrunk
* E2fsck now prints an explicit message when the bad block inode is
updated, to avoid confusion about why the filesystem was modified.
* Allow mke2fs and tune2fs manipulate the large_file feature.
Previously we just let the kernel and e2fsck do this automatically,
but e2fsck will no longer automatically clear the large_file feature
* Suppress message about an old-style fstab if the fstab file is empty
* Change e2fsck to no longer clear the LARGE_FILES feature flag
automatically, when there are no more > 2GB files in the filesystem.
* Fix bug which could cause libblkid to seg fault if a device mapper
volume disappears while it is being probed.
* Enhance e2fsck's reporting of unsupported filesystem feature flags
* Fix option syntax in dumpe2fs for explicit superblock and blocksize
parameters
* Add support to tune2fs to clear the resize_inode feature
* Teach blkid to detect LVM2 physical volumes
* Add support for setting RAID stride and stripe-width via mke2fs and
tune2fs. Teach dumpe2fs to print the RAID parameters
* Add support for setting new superblock fields to debugfs's
set_super_value
* Add support for printing "mostly-printable" extended attributes in
Debugfs
* Add support for the -M option to fsck, which causes it to ignore
mounted filesystem
* Fix uuidd so that it creates the pid file with the correct pid number
- The -M option is now used upstream to ignore mounted filesystems,
this has previously been in SuSE with -m. This has to be changed
since lower case characters are reserved for filesystem specific
checker options. The "like mount" behaviour previously in SuSE
with -M has been removed.
- add patch from Eric Sandeen to fix the loss of extended attributes
in large inodes upon resize
- removed patches
fsck-ignore-mounted.patch
* Wed Feb 27 2008 mkoenig@suse.de
- update to version 1.40.6
* Add support for returning labels for UDF filesystems in the blkid

View File

@ -1,132 +0,0 @@
--- misc/fsck.8.in
+++ misc/fsck.8.in
@@ -180,6 +180,10 @@
will use the specified filesystem type. If this type is not
available, then the default file system type (currently ext2) is used.
.TP
+.B \-m
+Do not check mounted filesystems and return an exit code of 0
+for mounted filesystems.
+.TP
.B \-A
Walk through the
.I /etc/fstab
--- misc/fsck.c
+++ misc/fsck.c
@@ -102,6 +102,7 @@
int serialize = 0;
int skip_root = 0;
int like_mount = 0;
+int ignore_mounted = 0;
int notitle = 0;
int parallel_root = 0;
int progress = 0;
@@ -851,6 +852,56 @@
return (cmp->negate ? !ret : ret);
}
+/* Check to see whether a filesystem is already mounted */
+static int is_mounted(struct fs_info *fs)
+{
+ struct stat st_buf;
+ dev_t fs_rdev;
+ char *testdir;
+ int retval = 0;
+
+ if (!fs->mountpt) {
+ /*
+ * We have already read /proc/mounts
+ * so any device without a mountpoint
+ * is indeed not mounted.
+ */
+ return 0;
+ }
+
+ if (!strcmp(fs->mountpt,"/")) {
+ /* Root should be always mounted */
+ return 1;
+ }
+
+ if (stat(fs->mountpt, &st_buf) < 0)
+ return 0;
+
+ if (!S_ISDIR(st_buf.st_mode)) {
+ /* This is not a directory, cannot be mounted */
+ return 0;
+ }
+
+ fs_rdev = st_buf.st_dev;
+
+ /* Compare with the upper directory */
+ testdir = malloc(strlen(fs->mountpt) + 4);
+ strcpy(testdir,fs->mountpt);
+ if (fs->mountpt[strlen(fs->mountpt) - 1] == '/')
+ strcat(testdir,"..");
+ else
+ strcat(testdir,"/..");
+
+ if (stat(testdir, &st_buf) == 0) {
+ if (st_buf.st_dev != fs_rdev) {
+ retval = 1;
+ }
+ }
+ free(testdir);
+
+ return retval;
+}
+
/* Check if we should ignore this filesystem. */
static int ignore(struct fs_info *fs)
{
@@ -997,6 +1048,15 @@
not_done_yet++;
continue;
}
+ if (ignore_mounted) {
+ /*
+ * Ignore mounted devices.
+ */
+ if (is_mounted(fs)) {
+ fs->flags |= FLAG_DONE;
+ continue;
+ }
+ }
/*
* If a filesystem on a particular device has
* already been spawned, then we need to defer
@@ -1174,6 +1234,9 @@
case 'P':
parallel_root++;
break;
+ case 'm':
+ ignore_mounted++;
+ break;
case 's':
serialize++;
break;
@@ -1249,6 +1312,10 @@
fstab = _PATH_MNTTAB;
load_fs_info(fstab);
+ /* Load info from /proc/mounts, too */
+ if (ignore_mounted)
+ load_fs_info("/proc/mounts");
+
/* Update our search path to include uncommon directories. */
if (oldpath) {
fsck_path = malloc (strlen (fsck_prefix_path) + 1 +
@@ -1301,6 +1368,14 @@
if (!fs)
continue;
}
+ if (ignore_mounted) {
+ /*
+ * Ignore mounted devices.
+ */
+ if (is_mounted(fs)) {
+ continue;
+ }
+ }
fsck_device(fs, interactive);
if (serialize ||
(max_running && (num_running >= max_running))) {