* Mon Jul 07 2008 Eric Sandeen <sandeen@redhat.com> 1.41-0.1.WIP.0707

- New upstream snapshot release
This commit is contained in:
Eric Sandeen 2008-07-07 22:08:08 +00:00
parent 5d6d270110
commit f114a59f53
6 changed files with 7 additions and 188 deletions

View File

@ -1 +1 @@
e2fsprogs-1.41-WIP-0617.tar.gz
e2fsprogs-1.41-WIP-0707.tar.gz

View File

@ -1,21 +0,0 @@
Index: e2fsprogs-1.41/lib/blkid/cache.c
===================================================================
--- e2fsprogs-1.41.orig/lib/blkid/cache.c
+++ e2fsprogs-1.41/lib/blkid/cache.c
@@ -154,13 +154,13 @@ void blkid_put_cache(blkid_cache cache)
void blkid_gc_cache(blkid_cache cache)
{
- struct list_head *p;
+ struct list_head *p, *n;
struct stat st;
if (!cache)
return;
- list_for_each(p, &cache->bic_devs) {
+ list_for_each_safe(p, n, &cache->bic_devs) {
blkid_dev dev = list_entry(p, struct blkid_struct_dev, bid_devs);
if (!p)
break;

View File

@ -1,49 +0,0 @@
From: Eric Sandeen <sandeen@redhat.com>
Date: Fri, 29 Feb 2008 22:10:21 +0000 (-0600)
Subject: Fix ext2fs_swap_inode_full() for in-inode xattrs on big-endian machines
X-Git-Url: http://git.kernel.org/?p=fs%2Fext2%2Fe2fsprogs.git;a=commitdiff_plain;h=82e541885ea912bc6764b97e2545f851cf7e3ff3
Fix ext2fs_swap_inode_full() for in-inode xattrs on big-endian machines
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>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
---
diff --git a/lib/ext2fs/swapfs.c b/lib/ext2fs/swapfs.c
index 6576c59..e07e87c 100644
--- a/lib/ext2fs/swapfs.c
+++ b/lib/ext2fs/swapfs.c
@@ -133,7 +133,7 @@ void ext2fs_swap_inode_full(ext2_filsys fs, struct ext2_inode_large *t,
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;
@@ -232,7 +232,11 @@ void ext2fs_swap_inode_full(ext2_filsys fs, struct ext2_inode_large *t,
eaf = (__u32 *) (((char *) f) + sizeof(struct ext2_inode) +
extra_isize);
- if (ext2fs_swab32(*eaf) != EXT2_EXT_ATTR_MAGIC)
+ attr_magic = *eaf;
+ if (!hostorder)
+ attr_magic = ext2fs_swab32(attr_magic);
+
+ if (attr_magic != EXT2_EXT_ATTR_MAGIC)
return; /* it seems no magic here */
eat = (__u32 *) (((char *) t) + sizeof(struct ext2_inode) +

View File

@ -1,108 +0,0 @@
Index: e2fsprogs-1.40.7/resize/resize2fs.c
===================================================================
--- e2fsprogs-1.40.7.orig/resize/resize2fs.c
+++ e2fsprogs-1.40.7/resize/resize2fs.c
@@ -1109,8 +1109,7 @@ static errcode_t inode_scan_and_fix(ext2
{
struct process_block_struct pb;
ext2_ino_t ino, new_inode;
- struct ext2_inode inode, *buf = NULL;
- struct ext2_inode_large *large_inode;
+ struct ext2_inode *inode = NULL;
ext2_inode_scan scan = NULL;
errcode_t retval;
int group;
@@ -1154,12 +1153,12 @@ static errcode_t inode_scan_and_fix(ext2
}
ext2fs_set_inode_callback(scan, progress_callback, (void *) rfs);
pb.rfs = rfs;
- pb.inode = &inode;
+ pb.inode = inode;
pb.error = 0;
new_inode = EXT2_FIRST_INODE(rfs->new_fs->super);
inode_size = EXT2_INODE_SIZE(rfs->new_fs->super);
- buf = malloc(inode_size);
- if (!buf) {
+ inode = malloc(inode_size);
+ if (!inode) {
retval = ENOMEM;
goto errout;
}
@@ -1168,29 +1167,29 @@ static errcode_t inode_scan_and_fix(ext2
* elsewhere in the inode table
*/
while (1) {
- retval = ext2fs_get_next_inode(scan, &ino, &inode);
+ retval = ext2fs_get_next_inode_full(scan, &ino, inode, inode_size);
if (retval) goto errout;
if (!ino)
break;
- if (inode.i_links_count == 0 && ino != EXT2_RESIZE_INO)
+ if (inode->i_links_count == 0 && ino != EXT2_RESIZE_INO)
continue; /* inode not in use */
- pb.is_dir = LINUX_S_ISDIR(inode.i_mode);
+ pb.is_dir = LINUX_S_ISDIR(inode->i_mode);
pb.changed = 0;
- if (inode.i_file_acl && rfs->bmap) {
+ if (inode->i_file_acl && rfs->bmap) {
new_block = ext2fs_extent_translate(rfs->bmap,
- inode.i_file_acl);
+ inode->i_file_acl);
if (new_block) {
- inode.i_file_acl = new_block;
- retval = ext2fs_write_inode(rfs->old_fs,
- ino, &inode);
+ inode->i_file_acl = new_block;
+ retval = ext2fs_write_inode_full(rfs->old_fs,
+ ino, inode, inode_size);
if (retval) goto errout;
}
}
- if (ext2fs_inode_has_valid_blocks(&inode) &&
+ if (ext2fs_inode_has_valid_blocks(inode) &&
(rfs->bmap || pb.is_dir)) {
pb.ino = ino;
retval = ext2fs_block_iterate2(rfs->old_fs,
@@ -1221,23 +1220,19 @@ static errcode_t inode_scan_and_fix(ext2
}
}
ext2fs_mark_inode_bitmap(rfs->new_fs->inode_map, new_inode);
- memcpy(buf, &inode, sizeof(struct ext2_inode));
- large_inode = (struct ext2_inode_large *)buf;
- large_inode->i_extra_isize = sizeof(struct ext2_inode_large) -
- EXT2_GOOD_OLD_INODE_SIZE;
if (pb.changed) {
/* Get the new version of the inode */
retval = ext2fs_read_inode_full(rfs->old_fs, ino,
- buf, inode_size);
+ inode, inode_size);
if (retval) goto errout;
}
- inode.i_ctime = time(0);
+ inode->i_ctime = time(0);
retval = ext2fs_write_inode_full(rfs->old_fs, new_inode,
- buf, inode_size);
+ inode, inode_size);
if (retval) goto errout;
group = (new_inode-1) / EXT2_INODES_PER_GROUP(rfs->new_fs->super);
- if (LINUX_S_ISDIR(inode.i_mode))
+ if (LINUX_S_ISDIR(inode->i_mode))
rfs->new_fs->group_desc[group].bg_used_dirs_count++;
#ifdef RESIZE2FS_DEBUG
@@ -1263,8 +1258,8 @@ errout:
ext2fs_close_inode_scan(scan);
if (block_buf)
ext2fs_free_mem(&block_buf);
- if (buf)
- free(buf);
+ if (inode)
+ free(inode);
return retval;
}

View File

@ -4,20 +4,17 @@
Summary: Utilities for managing the second and third extended (ext2/ext3) filesystems
Name: e2fsprogs
Version: 1.41
Release: 0.WIP.0617.1%{?dist}
Release: 0.1.WIP.0707{?dist}
# License based on upstream-modified COPYING file,
# which clearly states "V2" intent.
License: GPLv2
Group: System Environment/Base
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}-WIP-0617.tar.gz
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}-WIP-0707.tar.gz
Source1: ext2_types-wrapper.h
Source2: blkid_types-wrapper.h
Source3: uuidd.init
Patch1: e2fsprogs-1.38-etcblkid.patch
Patch2: e2fsprogs-1.40.4-sb_feature_check_ignore.patch
Patch3: e2fsprogs-1.41-buildfix
Patch4: e2fsprogs-1.41-fix-mkswap-tests
Patch5: e2fsprogs-1.40-list_for_each_safe.patch
Url: http://e2fsprogs.sourceforge.net/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -94,9 +91,6 @@ SMP systems.
# mildly unsafe but 'til I get something better, avoid full fsck
# after an selinux install...
%patch2 -p1 -b .featurecheck
%patch3 -p1 -b .buildfix
%patch4 -p1 -b .mkswap
%patch5 -p1 -b .listsafe
%build
%configure --enable-elf-shlibs --enable-nls --disable-e2initrd-helper --enable-blkid-devmapper --enable-blkid-selinux
@ -295,6 +289,9 @@ fi
%dir %attr(2775, uuidd, uuidd) /var/lib/libuuid
%changelog
* Mon Jul 07 2008 Eric Sandeen <sandeen@redhat.com> 1.41-0.1.WIP.0707
- New upstream snapshot release
* Fri Jun 20 2008 Eric Sandeen <sandeen@redhat.com> 1.41-0.WIP.0617.1
- Fix blkid -g segfault when clearing entries (#452333)

View File

@ -1 +1 @@
d70dfeec52ba75b99b3306c8a6680fcb e2fsprogs-1.41-WIP-0617.tar.gz
95bb57e8e59ba24d380da855fa3f971b e2fsprogs-1.41-WIP-0707.tar.gz