rpms/e2fsprogs/FC-3 e2fsprogs-1.37-blkid-ext23.patch, NONE, 1.1 e2fsprogs-1.37-blkid-nomagicvfat.patch, NONE, 1.1 e2fsprogs-1.37-blkid-swsuspend.patch, NONE, 1.1 e2fsprogs-1.38-close-on-error.patch, NONE, 1.1 e2fsprogs-1.38-man_no_ext2resize.patch, NONE, 1.1 e2fsprogs-1.38-resize-inode.patch, NONE, 1.1 e2fsprogs.spec, 1.25, 1.26

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Sep 9 09:32:59 UTC 2005


Author: twoerner

Update of /cvs/dist/rpms/e2fsprogs/FC-3
In directory cvs.devel.redhat.com:/tmp/cvs-serv3734

Modified Files:
	e2fsprogs.spec 
Added Files:
	e2fsprogs-1.37-blkid-ext23.patch 
	e2fsprogs-1.37-blkid-nomagicvfat.patch 
	e2fsprogs-1.37-blkid-swsuspend.patch 
	e2fsprogs-1.38-close-on-error.patch 
	e2fsprogs-1.38-man_no_ext2resize.patch 
	e2fsprogs-1.38-resize-inode.patch 
Log Message:
[tw]
- new version 1.38
- Close File descriptor for unregognized devices (#159878)
  Thanks to David Milburn for the patch.
  Merged from RHEL-4
- Enable tune2fs to set and clear feature resize_inode (#167816)
- Removed outdated information from ext2online man page (#164383)
- Merged in fixes from Karel Zak for Fedora Core Development:
  - fix swsuspend partition detection (#165863)
  - fix revalidate from ext2 to ext3 (#162927)
  - fix vfat without magic detection (#161873)



e2fsprogs-1.37-blkid-ext23.patch:
 probe.c |    5 +++++
 1 files changed, 5 insertions(+)

--- NEW FILE e2fsprogs-1.37-blkid-ext23.patch ---
--- e2fsprogs-1.37/lib/blkid/probe.c.ext23	2005-07-13 14:04:26.000000000 +0200
+++ e2fsprogs-1.37/lib/blkid/probe.c	2005-07-13 14:04:56.000000000 +0200
@@ -135,6 +135,11 @@
 	if (blkid_le32(es->s_feature_incompat) & 
 	    EXT3_FEATURE_INCOMPAT_JOURNAL_DEV)
 		return -BLKID_ERR_PARAM;
+	
+	/* Distinguish between ext3 and ext2 */
+	if ((blkid_le32(es->s_feature_compat) &
+	      EXT3_FEATURE_COMPAT_HAS_JOURNAL))
+		return -BLKID_ERR_PARAM;
 
 	get_ext2_info(dev, buf);
 

e2fsprogs-1.37-blkid-nomagicvfat.patch:
 probe.c |   79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 probe.h |   19 +++++++++++++++
 2 files changed, 98 insertions(+)

--- NEW FILE e2fsprogs-1.37-blkid-nomagicvfat.patch ---
--- e2fsprogs-1.37/lib/blkid/probe.c.vfat	2005-07-07 17:24:59.000000000 +0200
+++ e2fsprogs-1.37/lib/blkid/probe.c	2005-07-07 17:23:40.000000000 +0200
@@ -223,6 +223,83 @@
 	return 0;
 }
 
+/*
+ * The FAT filesystem could be without a magic string in superblock (e.g. old floppies). 
+ * This heuristic for FAT detection is inspired by http://vrfy.org/projects/volume_id/ 
+ * and Linux kernel.           
+ *                                             [7-Jul-2005, Karel Zak <kzak at redhat.com>]
+ */
+static int probe_vfat_nomagic(int fd __BLKID_ATTR((unused)), 
+		      blkid_cache cache __BLKID_ATTR((unused)), 
+		      blkid_dev dev,
+		      struct blkid_magic *id __BLKID_ATTR((unused)), 
+		      unsigned char *buf)
+{
+	struct vfat_super_block *vs;
+	__u16 sector_size;
+	__u16 dir_entries;
+	__u32 sect_count;
+	__u16 reserved;
+	__u32 fat_size;
+	__u32 dir_size;
+	__u32 cluster_count;
+	__u32 fat_length;
+
+	vs = (struct vfat_super_block *)buf;
+
+	/* boot jump address check */
+	if ((vs->vs_ignored[0] != 0xeb || vs->vs_ignored[2] != 0x90) &&
+	     vs->vs_ignored[0] != 0xe9)
+		return 1;
+
+	/* heads check */
+	if (vs->vs_heads == 0)
+		return 1;
+
+	/* cluster size check*/	
+	if (vs->vs_cluster_size == 0 ||
+	    (vs->vs_cluster_size & (vs->vs_cluster_size-1)))
+		return 1;
+
+	/* media check */
+	if (vs->vs_media < 0xf8 && vs->vs_media != 0xf0)
+		return 1;
+
+	/* fat counts(Linux kernel expects at least 1 FAT table) */
+	if (!vs->vs_fats)
+		return 1;
+
+	/* sector size check */
+	sector_size = blkid_le16(*((__u16 *) &vs->vs_sector_size));
+	if (sector_size != 0x200 && sector_size != 0x400 &&
+	    sector_size != 0x800 && sector_size != 0x1000)
+		return 1;
+
+	dir_entries = blkid_le16(*((__u16 *) &vs->vs_dir_entries));
+	reserved =  blkid_le16(vs->vs_reserved);
+	sect_count = blkid_le16(*((__u16 *) &vs->vs_sectors));
+	if (sect_count == 0)
+		sect_count = blkid_le32(vs->vs_total_sect);
+
+	fat_length = blkid_le16(vs->vs_fat_length);
+	if (fat_length == 0)
+		fat_length = blkid_le32(vs->vs_fat32_length);
+
+	fat_size = fat_length * vs->vs_fats;
+	dir_size = ((dir_entries * sizeof(struct vfat_dir_entry)) +
+			(sector_size-1)) / sector_size;
+
+	cluster_count = sect_count - (reserved + fat_size + dir_size);
+	cluster_count /= vs->vs_cluster_size;
+
+	if (cluster_count <= FAT12_MAX || cluster_count <= FAT16_MAX)
+		return probe_msdos(fd, cache, dev, id, buf);
+
+	else if (cluster_count <= FAT32_MAX)
+		return probe_vfat(fd, cache, dev, id, buf);
+	
+	return 1; 	/* FAT detection failed */
+}
 static int probe_xfs(int fd __BLKID_ATTR((unused)), 
 		     blkid_cache cache __BLKID_ATTR((unused)), 
 		     blkid_dev dev,
@@ -481,6 +558,8 @@
   { "vfat",      0,   0x36,  5, "MSDOS",                probe_msdos },
   { "vfat",      0,   0x36,  8, "FAT16   ",             probe_msdos },
   { "vfat",      0,   0x36,  8, "FAT12   ",             probe_msdos },
+  { "vfat",      0,      0,  1, "\353",                 probe_vfat_nomagic },
+  { "vfat",      0,      0,  1, "\351",                 probe_vfat_nomagic },
   { "minix",     1,   0x10,  2, "\177\023",             0 },
   { "minix",     1,   0x10,  2, "\217\023",             0 },
   { "minix",	 1,   0x10,  2, "\150\044",		0 },
--- e2fsprogs-1.37/lib/blkid/probe.h.vfat	2005-07-07 13:19:44.000000000 +0200
+++ e2fsprogs-1.37/lib/blkid/probe.h	2005-07-07 14:48:49.000000000 +0200
@@ -174,6 +174,25 @@
 /*1fe*/	unsigned char	ms_pmagic[2];
 };
 
+struct vfat_dir_entry {
+	__u8	name[11];
+	__u8	attr;
+	__u16	time_creat;
+	__u16	date_creat;
+	__u16	time_acc;
+	__u16	date_acc;
+	__u16	cluster_high;
+	__u16	time_write;
+	__u16	date_write;
+	__u16	cluster_low;
+	__u32	size;
+};
+
+/* maximum number of clusters */
+#define FAT12_MAX 0xFF4
+#define FAT16_MAX 0xFFF4
+#define FAT32_MAX 0x0FFFFFF6
+
 struct minix_super_block {
 	__u16		ms_ninodes;
 	__u16		ms_nzones;

e2fsprogs-1.37-blkid-swsuspend.patch:
 probe.c |   10 ++++++++++
 1 files changed, 10 insertions(+)

--- NEW FILE e2fsprogs-1.37-blkid-swsuspend.patch ---
--- e2fsprogs-1.37/lib/blkid/probe.c.swsuspend	2005-09-01 17:28:11.000000000 +0200
+++ e2fsprogs-1.37/lib/blkid/probe.c	2005-09-02 10:26:12.000000000 +0200
@@ -507,14 +507,24 @@
   { "sysv",	 0,  0x3f8,  4, "\020~\030\375",	0 },
   { "swap",	 0,  0xff6, 10, "SWAP-SPACE",		probe_swap0 },
   { "swap",	 0,  0xff6, 10, "SWAPSPACE2",		probe_swap1 },
+  { "swsuspend", 0,  0xff6,  9, "S1SUSPEND",		probe_swap1 },
+  { "swsuspend", 0,  0xff6,  9, "S2SUSPEND",		probe_swap1 },
   { "swap",	 0, 0x1ff6, 10, "SWAP-SPACE",		probe_swap0 },
   { "swap",	 0, 0x1ff6, 10, "SWAPSPACE2",		probe_swap1 },
+  { "swsuspend", 0, 0x1ff6,  9, "S1SUSPEND",		probe_swap1 },
+  { "swsuspend", 0, 0x1ff6,  9, "S2SUSPEND",		probe_swap1 },
   { "swap",	 0, 0x3ff6, 10, "SWAP-SPACE",		probe_swap0 },
   { "swap",	 0, 0x3ff6, 10, "SWAPSPACE2",		probe_swap1 },
+  { "swsuspend", 0, 0x3ff6,  9, "S1SUSPEND",		probe_swap1 },
+  { "swsuspend", 0, 0x3ff6,  9, "S2SUSPEND",		probe_swap1 },
   { "swap",	 0, 0x7ff6, 10, "SWAP-SPACE",		probe_swap0 },
   { "swap",	 0, 0x7ff6, 10, "SWAPSPACE2",		probe_swap1 },
+  { "swsuspend", 0, 0x7ff6,  9, "S1SUSPEND",		probe_swap1 },
+  { "swsuspend", 0, 0x7ff6,  9, "S2SUSPEND",		probe_swap1 },
   { "swap",	 0, 0xfff6, 10, "SWAP-SPACE",		probe_swap0 },
   { "swap",	 0, 0xfff6, 10, "SWAPSPACE2",		probe_swap1 },
+  { "swsuspend", 0, 0xfff6,  9, "S1SUSPEND",		probe_swap1 },
+  { "swsuspend", 0, 0xfff6,  9, "S2SUSPEND",		probe_swap1 },
   { "ocfs",	 0,	 8,  9,	"OracleCFS",		probe_ocfs },
   { "ocfs2",	 1,	 0,  6,	"OCFSV2",		probe_ocfs2 },
   { "ocfs2",	 2,	 0,  6,	"OCFSV2",		probe_ocfs2 },

e2fsprogs-1.38-close-on-error.patch:
 blkid/probe.c    |    3 +++
 ext2fs/getsize.c |    4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)

--- NEW FILE e2fsprogs-1.38-close-on-error.patch ---
--- e2fsprogs-1.38/lib/ext2fs/getsize.c.close-on-error	2005-03-19 02:11:59.000000000 +0100
+++ e2fsprogs-1.38/lib/ext2fs/getsize.c	2005-09-08 15:22:59.000000000 +0200
@@ -165,10 +165,10 @@
 
 #ifdef DKIOCGETBLOCKCOUNT	/* For Apple Darwin */
 	if (ioctl(fd, DKIOCGETBLOCKCOUNT, &size64) >= 0) {
+		close(fd);
 		if ((sizeof(*retblocks) < sizeof(unsigned long long))
 		    && ((size64 / (blocksize / 512)) > 0xFFFFFFFF))
 			return EFBIG;
-		close(fd);
 		*retblocks = size64 / (blocksize / 512);
 		return 0;
 	}
@@ -183,10 +183,10 @@
 #endif
 	if (valid_blkgetsize64 &&
 	    ioctl(fd, BLKGETSIZE64, &size64) >= 0) {
+		close(fd);
 		if ((sizeof(*retblocks) < sizeof(unsigned long long))
 		    && ((size64 / blocksize) > 0xFFFFFFFF))
 			return EFBIG;
-		close(fd);
 		*retblocks = size64 / blocksize;
 		return 0;
 	}
--- e2fsprogs-1.38/lib/blkid/probe.c.close-on-error	2005-05-07 20:35:15.000000000 +0200
+++ e2fsprogs-1.38/lib/blkid/probe.c	2005-09-08 15:20:34.000000000 +0200
@@ -576,6 +576,8 @@
 
 	if (((fd = open(dev->bid_name, O_RDONLY)) < 0) ||
 	    (fstat(fd, &st) < 0)) {
+		/* Don't need fd any more */
+		if (fd >= 0) close(fd);
 		if (errno == ENXIO || errno == ENODEV || errno == ENOENT) {
 			blkid_free_dev(dev);
 			return NULL;
@@ -652,6 +654,7 @@
 	}
 
 	if (!dev->bid_type) {
+		if (fd >= 0) close(fd);
 		blkid_free_dev(dev);
 		return NULL;
 	}

e2fsprogs-1.38-man_no_ext2resize.patch:
 ext2online.8 |   18 ++----------------
 1 files changed, 2 insertions(+), 16 deletions(-)

--- NEW FILE e2fsprogs-1.38-man_no_ext2resize.patch ---
--- e2fsprogs-1.38/ext2resize-1.1.17/doc/ext2online.8.no_ext2resize	2005-09-08 15:53:34.000000000 +0200
+++ e2fsprogs-1.38/ext2resize-1.1.17/doc/ext2online.8	2005-09-08 17:58:43.000000000 +0200
@@ -12,9 +12,7 @@
 tool resizes ext2 file systems while they are mounted and in use by the
 system.  It is OK to resize the filesystem even while programs have open
 files and are writing into the filesystem.  It is only possible to enlarge
-a mounted filesystem.  It is possible to use
-.BR ext2resize (8)
-to shrink and enlarge an unmounted filesystem.  To be able to use
+a mounted filesystem.  To be able to use
 .BR ext2online ,
 you need to have the
 .B "Online ext2 resize support"
@@ -78,13 +76,7 @@
 .PP
 With no filesystem preparation, it is always possible to resize to the
 next 256MB boundary for 1k filesystems, the next 2GB boundary for for 2k
-filesystems, and the next 16GB boundary for 4k filesystems.  By using the
-.BR ext2prepare (8)
-program on an
-.I unmounted
-filesystem, it is possible for
-.B ext2online
-to increase the size of a mounted ext2 filesystem to almost any size.
+filesystems, and the next 16GB boundary for 4k filesystems.
 
 .SH OPTIONS
 .TP
@@ -181,9 +173,6 @@
 .BR ext2online ,
 as the limit is about 60GB larger than the current filesystem size for 1k
 block filesystems.
-The ext2resize programs do
-.B not
-work on big\-endian machines (Alpha, SPARC, PPC, etc).
 
 .SH COPYRIGHT
 .B ext2online
@@ -191,8 +180,5 @@
 under the terms of the GNU General Public License.
 .SH "SEE ALSO"
 .BR dumpe2fs (8)
-.BR ext2prepare (8)
-.BR ext2resize (8)
-.BR e2fsadm (8)
 .BR e2fsck (8)
 .BR lvextend (8)

e2fsprogs-1.38-resize-inode.patch:
 tune2fs.c |    1 +
 1 files changed, 1 insertion(+)

--- NEW FILE e2fsprogs-1.38-resize-inode.patch ---
--- e2fsprogs-1.38/misc/tune2fs.c.resize_inode	2005-06-20 14:35:27.000000000 +0200
+++ e2fsprogs-1.38/misc/tune2fs.c	2005-09-08 15:51:38.000000000 +0200
@@ -95,6 +95,7 @@
 
 static __u32 ok_features[3] = {
 	EXT3_FEATURE_COMPAT_HAS_JOURNAL |
+                EXT2_FEATURE_COMPAT_RESIZE_INODE |
 		EXT2_FEATURE_COMPAT_DIR_INDEX,	/* Compat */
 	EXT2_FEATURE_INCOMPAT_FILETYPE,		/* Incompat */
 	EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER	/* R/O compat */


Index: e2fsprogs.spec
===================================================================
RCS file: /cvs/dist/rpms/e2fsprogs/FC-3/e2fsprogs.spec,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- e2fsprogs.spec	8 Mar 2005 12:55:14 -0000	1.25
+++ e2fsprogs.spec	9 Sep 2005 09:32:49 -0000	1.26
@@ -3,13 +3,12 @@
 
 Summary: Utilities for managing the second extended (ext2) filesystem.
 Name: e2fsprogs
-Version: 1.36
-Release: 1.FC3.1
+Version: 1.38
+Release: 0.FC3.1
 License: GPL
 Group: System Environment/Base
 Source:  ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/e2fsprogs-%{version}.tar.gz
 Source1: http://sourceforge.net/projects/ext2resize/ext2resize-1.1.17.tar.bz2
-Patch1: e2fsprogs-1.36-getsize-wrap.patch
 Patch9: e2fsprogs-enable-resize.patch
 Patch10: ext2resize-cvs-20040419.patch
 Patch11: ext2resize-gcc34-fixes.patch
@@ -19,6 +18,12 @@
 Patch19: ext2resize-byteorder.patch
 Patch20: ext2resize-nofallback.patch
 Patch21: ext2resize-nowrite.patch
+Patch26: e2fsprogs-1.37-blkid-swsuspend.patch
+Patch27: e2fsprogs-1.37-blkid-ext23.patch
+Patch28: e2fsprogs-1.37-blkid-nomagicvfat.patch
+Patch29: e2fsprogs-1.38-close-on-error.patch
+Patch30: e2fsprogs-1.38-resize-inode.patch
+Patch31: e2fsprogs-1.38-man_no_ext2resize.patch
 Url: http://e2fsprogs.sourceforge.net/
 Prereq: /sbin/ldconfig
 BuildRoot: %{_tmppath}/%{name}-root
@@ -57,10 +62,18 @@
 
 %prep
 %setup -q -n e2fsprogs-%{version}
-# Fix size-estimations of >=4TB partitions
-%patch1 -p1 -b .getsize
 # Enable the resize inode by default
 %patch9 -p1 -b .resize-on
+# fix swsuspend partition detection (#165863)
+%patch26 -p1 -b .swsuspend
+# fix revalidate from ext2 to ext3 (#162927)
+%patch27 -p1 -b .ext23
+# fix vfat without magic detection (#161873)
+%patch28 -p1 -b .vfatnomagic
+# clode fd's on error
+%patch29 -p1 -b .close-on-error
+# enable tune2fs to set and clear the resize inode
+%patch30 -p1 -b .resize-inode
 
 # Now unpack the ext2resize online resize tarball...
 %setup -T -D -q -a 1
@@ -84,6 +97,9 @@
 %patch21 -p2 -b .nowrite
 popd
 
+# drop ext2resize, ext2prepare and e2fsadm from man page of ext2online
+%patch31 -p1 -b .man_no_ext2resize
+
 %build
 %configure --enable-elf-shlibs --enable-nls --disable-e2initrd-helper
 # --enable-dynamic-e2fsck
@@ -219,6 +235,7 @@
 %{_bindir}/mk_cmds
 
 %{_libdir}/libblkid.a
+%{_libdir}/libblkid.so
 %{_libdir}/libcom_err.a
 %{_libdir}/libcom_err.so
 %{_libdir}/libe2p.a
@@ -256,6 +273,18 @@
 %{_mandir}/man3/uuid_unparse.3*
 
 %changelog
+* Fri Sep  9 2005 Thomas Woerner <twoerner at redhat.com> 1.38-0.FC3.1
+- new version 1.38
+- Close File descriptor for unregognized devices (#159878)
+  Thanks to David Milburn for the patch.
+  Merged from RHEL-4
+- Enable tune2fs to set and clear feature resize_inode (#167816)
+- Removed outdated information from ext2online man page (#164383)
+- Merged in fixes from Karel Zak for Fedora Core Development:
+  - fix swsuspend partition detection (#165863)
+  - fix revalidate from ext2 to ext3 (#162927)
+  - fix vfat without magic detection (#161873)
+
 * Tue Mar  8 2005 Thomas Woerner <twoerner at redhat.com> 1.36-1.FC3.1
 - Integrated changes from Stephen C. Tweedie for FC4:
   - Re-enable resize2fs




More information about the fedora-cvs-commits mailing list