summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChuck Ebbert <cebbert@redhat.com>2011-02-04 20:11:50 -0500
committerChuck Ebbert <cebbert@redhat.com>2011-02-04 20:11:50 -0500
commit3b6f1e555c3b1c0ecfe7d2ea3b726600cd7da869 (patch)
tree226422b71209f0159605467afa8274a0aa07801c
parent9fd29980ae4c3d3fc3849c0bbaa76dcc69416afb (diff)
Linux 2.6.38-rc3-git4
-rw-r--r--atl1c-add-missing-pci-id.patch17
-rw-r--r--can-softing-depend-on-iomem.patch17
-rw-r--r--hfsplus-01-dont-leak-buffer.patch24
-rw-r--r--hfsplus-03-zero-vhdr-on-free.patch24
-rw-r--r--hfsplus-05-fix-failed-mount.patch209
-rw-r--r--kernel.spec27
-rw-r--r--sources2
7 files changed, 5 insertions, 315 deletions
diff --git a/atl1c-add-missing-pci-id.patch b/atl1c-add-missing-pci-id.patch
deleted file mode 100644
index 236319b7..00000000
--- a/atl1c-add-missing-pci-id.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-atl1c: Add missing PCI device ID
-
-Commit 8f574b35f22fbb9b5e5f1d11ad6b55b6f35f4533 added support for a new
-adapter but failed to add it to the PCI device table.
-
-Signed-Off-By: Chuck Ebbert <cebbert@redhat.com>
-
---- vanilla-2.6.38-rc3.orig/drivers/net/atl1c/atl1c_main.c
-+++ vanilla-2.6.38-rc3/drivers/net/atl1c/atl1c_main.c
-@@ -48,6 +48,7 @@ static DEFINE_PCI_DEVICE_TABLE(atl1c_pci
- {PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATHEROS_L2C_B)},
- {PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATHEROS_L2C_B2)},
- {PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATHEROS_L1D)},
-+ {PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATHEROS_L1D_2_0)},
- /* required last entry */
- { 0 }
- };
diff --git a/can-softing-depend-on-iomem.patch b/can-softing-depend-on-iomem.patch
deleted file mode 100644
index 9b944ef7..00000000
--- a/can-softing-depend-on-iomem.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-CAN: softing driver needs IOMEM
-
-Without this dependency the softing driver will be buildable on s390,
-where it fails.
-
-Signed-Off-By: Chuck Ebbert <cebbert@redhat.com>
-
---- a/drivers/net/can/softing/Kconfig
-+++ b/drivers/net/can/softing/Kconfig
-@@ -1,6 +1,6 @@
- config CAN_SOFTING
- tristate "Softing Gmbh CAN generic support"
-- depends on CAN_DEV
-+ depends on CAN_DEV && HAS_IOMEM
- ---help---
- Support for CAN cards from Softing Gmbh & some cards
- from Vector Gmbh.
diff --git a/hfsplus-01-dont-leak-buffer.patch b/hfsplus-01-dont-leak-buffer.patch
deleted file mode 100644
index 22516680..00000000
--- a/hfsplus-01-dont-leak-buffer.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-hfsplus: Don't leak buffer on error
-
-Signed-Off-By: Chuck Ebbert <cebbert@redhat.com>
-
---- vanilla-2.6.38-rc2-git9.orig/fs/hfsplus/part_tbl.c
-+++ vanilla-2.6.38-rc2-git9/fs/hfsplus/part_tbl.c
-@@ -134,7 +134,7 @@ int hfs_part_find(struct super_block *sb
- res = hfsplus_submit_bio(sb->s_bdev, *part_start + HFS_PMAP_BLK,
- data, READ);
- if (res)
-- return res;
-+ goto out;
-
- switch (be16_to_cpu(*((__be16 *)data))) {
- case HFS_OLD_PMAP_MAGIC:
-@@ -147,7 +147,7 @@ int hfs_part_find(struct super_block *sb
- res = -ENOENT;
- break;
- }
--
-+out:
- kfree(data);
- return res;
- }
diff --git a/hfsplus-03-zero-vhdr-on-free.patch b/hfsplus-03-zero-vhdr-on-free.patch
deleted file mode 100644
index 020789ec..00000000
--- a/hfsplus-03-zero-vhdr-on-free.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-hfsplus: Fix two memory leaks in wrapper.c
-
-Signed-Off-By: Chuck Ebbert <cebbert@redhat.com>
-
---- vanilla-2.6.38-rc2-git9.orig/fs/hfsplus/wrapper.c
-+++ vanilla-2.6.38-rc2-git9/fs/hfsplus/wrapper.c
-@@ -167,7 +167,7 @@ reread:
- break;
- case cpu_to_be16(HFSP_WRAP_MAGIC):
- if (!hfsplus_read_mdb(sbi->s_vhdr, &wd))
-- goto out;
-+ goto out_free_backup_vhdr;
- wd.ablk_size >>= HFSPLUS_SECTOR_SHIFT;
- part_start += wd.ablk_start + wd.embed_start * wd.ablk_size;
- part_size = wd.embed_count * wd.ablk_size;
-@@ -179,7 +179,7 @@ reread:
- * (should do this only for cdrom/loop though)
- */
- if (hfs_part_find(sb, &part_start, &part_size))
-- goto out;
-+ goto out_free_backup_vhdr;
- goto reread;
- }
-
diff --git a/hfsplus-05-fix-failed-mount.patch b/hfsplus-05-fix-failed-mount.patch
deleted file mode 100644
index 10fdad4b..00000000
--- a/hfsplus-05-fix-failed-mount.patch
+++ /dev/null
@@ -1,209 +0,0 @@
-From: Christoph Hellwig <hch@tuxera.com>
-Subject: hfsplus: fix failed mount handling
-
-Currently the error handling in hfsplus_fill_super is a mess, and can
-lead to accessing fields in the superblock that haven't been even set
-up yet. Fix this by making sure we do not set up sb->s_root until we
-have the mount fully set up, and before that do proper step by step
-unwinding instead of using hfsplus_put_super as a big hammer.
-
-Reported-by: Dan Williams <dcbw@redhat.com>
-Signed-off-by: Christoph Hellwig <hch@tuxera.com>
-
-Index: linux-2.6/fs/hfsplus/super.c
-===================================================================
---- linux-2.6.orig/fs/hfsplus/super.c 2011-02-01 12:48:09.984663687 -0700
-+++ linux-2.6/fs/hfsplus/super.c 2011-02-01 13:17:41.803164619 -0700
-@@ -338,20 +338,28 @@ static int hfsplus_fill_super(struct sup
- struct inode *root, *inode;
- struct qstr str;
- struct nls_table *nls = NULL;
-- int err = -EINVAL;
-+ int err;
-
-+ err = -EINVAL;
- sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
- if (!sbi)
-- return -ENOMEM;
-+ goto out;
-
- sb->s_fs_info = sbi;
- mutex_init(&sbi->alloc_mutex);
- mutex_init(&sbi->vh_mutex);
- hfsplus_fill_defaults(sbi);
-+
-+ err = -EINVAL;
- if (!hfsplus_parse_options(data, sbi)) {
- printk(KERN_ERR "hfs: unable to parse mount options\n");
-- err = -EINVAL;
-- goto cleanup;
-+
-+ /*
-+ * hfsplus_parse_options sets sbi->nls, but we are going
-+ * to free the localy cached nls in the cleanup path.
-+ */
-+ nls = sbi->nls;
-+ goto out_unload_nls;
- }
-
- /* temporarily use utf8 to correctly find the hidden dir below */
-@@ -359,16 +367,14 @@ static int hfsplus_fill_super(struct sup
- sbi->nls = load_nls("utf8");
- if (!sbi->nls) {
- printk(KERN_ERR "hfs: unable to load nls for utf8\n");
-- err = -EINVAL;
-- goto cleanup;
-+ goto out_unload_nls;
- }
-
- /* Grab the volume header */
- if (hfsplus_read_wrapper(sb)) {
- if (!silent)
- printk(KERN_WARNING "hfs: unable to find HFS+ superblock\n");
-- err = -EINVAL;
-- goto cleanup;
-+ goto out_free_vhdr;
- }
- vhdr = sbi->s_vhdr;
-
-@@ -377,7 +383,7 @@ static int hfsplus_fill_super(struct sup
- if (be16_to_cpu(vhdr->version) < HFSPLUS_MIN_VERSION ||
- be16_to_cpu(vhdr->version) > HFSPLUS_CURRENT_VERSION) {
- printk(KERN_ERR "hfs: wrong filesystem version\n");
-- goto cleanup;
-+ goto out_free_vhdr;
- }
- sbi->total_blocks = be32_to_cpu(vhdr->total_blocks);
- sbi->free_blocks = be32_to_cpu(vhdr->free_blocks);
-@@ -421,19 +427,19 @@ static int hfsplus_fill_super(struct sup
- sbi->ext_tree = hfs_btree_open(sb, HFSPLUS_EXT_CNID);
- if (!sbi->ext_tree) {
- printk(KERN_ERR "hfs: failed to load extents file\n");
-- goto cleanup;
-+ goto out_free_vhdr;
- }
- sbi->cat_tree = hfs_btree_open(sb, HFSPLUS_CAT_CNID);
- if (!sbi->cat_tree) {
- printk(KERN_ERR "hfs: failed to load catalog file\n");
-- goto cleanup;
-+ goto out_close_ext_tree;
- }
-
- inode = hfsplus_iget(sb, HFSPLUS_ALLOC_CNID);
- if (IS_ERR(inode)) {
- printk(KERN_ERR "hfs: failed to load allocation file\n");
- err = PTR_ERR(inode);
-- goto cleanup;
-+ goto out_close_cat_tree;
- }
- sbi->alloc_file = inode;
-
-@@ -442,14 +448,7 @@ static int hfsplus_fill_super(struct sup
- if (IS_ERR(root)) {
- printk(KERN_ERR "hfs: failed to load root directory\n");
- err = PTR_ERR(root);
-- goto cleanup;
-- }
-- sb->s_d_op = &hfsplus_dentry_operations;
-- sb->s_root = d_alloc_root(root);
-- if (!sb->s_root) {
-- iput(root);
-- err = -ENOMEM;
-- goto cleanup;
-+ goto out_put_alloc_file;
- }
-
- str.len = sizeof(HFSP_HIDDENDIR_NAME) - 1;
-@@ -459,46 +458,68 @@ static int hfsplus_fill_super(struct sup
- if (!hfs_brec_read(&fd, &entry, sizeof(entry))) {
- hfs_find_exit(&fd);
- if (entry.type != cpu_to_be16(HFSPLUS_FOLDER))
-- goto cleanup;
-+ goto out_put_root;
- inode = hfsplus_iget(sb, be32_to_cpu(entry.folder.id));
- if (IS_ERR(inode)) {
- err = PTR_ERR(inode);
-- goto cleanup;
-+ goto out_put_root;
- }
- sbi->hidden_dir = inode;
- } else
- hfs_find_exit(&fd);
-
-- if (sb->s_flags & MS_RDONLY)
-- goto out;
-+ if (!(sb->s_flags & MS_RDONLY)) {
-+ /*
-+ * H+LX == hfsplusutils, H+Lx == this driver, H+lx is unused
-+ * all three are registered with Apple for our use
-+ */
-+ vhdr->last_mount_vers = cpu_to_be32(HFSP_MOUNT_VERSION);
-+ vhdr->modify_date = hfsp_now2mt();
-+ be32_add_cpu(&vhdr->write_count, 1);
-+ vhdr->attributes &= cpu_to_be32(~HFSPLUS_VOL_UNMNT);
-+ vhdr->attributes |= cpu_to_be32(HFSPLUS_VOL_INCNSTNT);
-+ hfsplus_sync_fs(sb, 1);
-+
-+ if (!sbi->hidden_dir) {
-+ mutex_lock(&sbi->vh_mutex);
-+ sbi->hidden_dir = hfsplus_new_inode(sb, S_IFDIR);
-+ hfsplus_create_cat(sbi->hidden_dir->i_ino, root, &str,
-+ sbi->hidden_dir);
-+ mutex_unlock(&sbi->vh_mutex);
-
-- /* H+LX == hfsplusutils, H+Lx == this driver, H+lx is unused
-- * all three are registered with Apple for our use
-- */
-- vhdr->last_mount_vers = cpu_to_be32(HFSP_MOUNT_VERSION);
-- vhdr->modify_date = hfsp_now2mt();
-- be32_add_cpu(&vhdr->write_count, 1);
-- vhdr->attributes &= cpu_to_be32(~HFSPLUS_VOL_UNMNT);
-- vhdr->attributes |= cpu_to_be32(HFSPLUS_VOL_INCNSTNT);
-- hfsplus_sync_fs(sb, 1);
--
-- if (!sbi->hidden_dir) {
-- mutex_lock(&sbi->vh_mutex);
-- sbi->hidden_dir = hfsplus_new_inode(sb, S_IFDIR);
-- hfsplus_create_cat(sbi->hidden_dir->i_ino, sb->s_root->d_inode,
-- &str, sbi->hidden_dir);
-- mutex_unlock(&sbi->vh_mutex);
-+ hfsplus_mark_inode_dirty(sbi->hidden_dir,
-+ HFSPLUS_I_CAT_DIRTY);
-+ }
-+ }
-
-- hfsplus_mark_inode_dirty(sbi->hidden_dir, HFSPLUS_I_CAT_DIRTY);
-+ sb->s_d_op = &hfsplus_dentry_operations;
-+ sb->s_root = d_alloc_root(root);
-+ if (!sb->s_root) {
-+ err = -ENOMEM;
-+ goto out_put_hidden_dir;
- }
--out:
-+
- unload_nls(sbi->nls);
- sbi->nls = nls;
- return 0;
-
--cleanup:
-- hfsplus_put_super(sb);
-+out_put_hidden_dir:
-+ iput(sbi->hidden_dir);
-+out_put_root:
-+ iput(sbi->alloc_file);
-+out_put_alloc_file:
-+ iput(sbi->alloc_file);
-+out_close_cat_tree:
-+ hfs_btree_close(sbi->cat_tree);
-+out_close_ext_tree:
-+ hfs_btree_close(sbi->ext_tree);
-+out_free_vhdr:
-+ kfree(sbi->s_vhdr);
-+ kfree(sbi->s_backup_vhdr);
-+out_unload_nls:
- unload_nls(nls);
-+ kfree(sbi);
-+out:
- return err;
- }
-
diff --git a/kernel.spec b/kernel.spec
index 71cf21e9..a581fde2 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -84,7 +84,7 @@ Summary: The Linux kernel
# The rc snapshot level
%define rcrev 3
# The git snapshot level
-%define gitrev 3
+%define gitrev 4
# Set rpm version accordingly
%define rpmversion 2.6.%{upstream_sublevel}
%endif
@@ -731,16 +731,6 @@ Patch12303: dmar-disable-when-ricoh-multifunction.patch
Patch12421: fs-call-security_d_instantiate-in-d_obtain_alias.patch
-Patch12430: can-softing-depend-on-iomem.patch
-
-# rhbz#673857
-Patch12432: hfsplus-01-dont-leak-buffer.patch
-Patch12434: hfsplus-03-zero-vhdr-on-free.patch
-Patch12436: hfsplus-05-fix-failed-mount.patch
-
-# rhbz#607499
-Patch12437: atl1c-add-missing-pci-id.patch
-
Patch12438: ath5k-fix-fast-channel-change.patch
%endif
@@ -1355,18 +1345,6 @@ ApplyPatch dmar-disable-when-ricoh-multifunction.patch
# rhbz#662344,600690
ApplyPatch fs-call-security_d_instantiate-in-d_obtain_alias.patch
-# Fix build failure on s390
-# accepted upstream
-ApplyPatch can-softing-depend-on-iomem.patch
-
-# rhbz#673857
-ApplyPatch hfsplus-01-dont-leak-buffer.patch
-ApplyPatch hfsplus-03-zero-vhdr-on-free.patch
-ApplyPatch hfsplus-05-fix-failed-mount.patch
-
-# rhbz#607499
-ApplyPatch atl1c-add-missing-pci-id.patch
-
# rhbz#672778
ApplyPatch ath5k-fix-fast-channel-change.patch
@@ -1982,6 +1960,9 @@ fi
# ||----w |
# || ||
%changelog
+* Fri Feb 04 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-0.rc3.git4.1
+- Linux 2.6.38-rc3-git4
+
* Thu Feb 03 2011 Chuck Ebbert <cebbert@redhat.com>
- Linux 2.6.38-rc3-git3
- Enable Advansys SCSI driver on x86_64 (#589115)
diff --git a/sources b/sources
index 8f07f2c5..4d841566 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
c8ee37b4fdccdb651e0603d35350b434 linux-2.6.37.tar.bz2
5d036903b2be555ee94078e5ef594c1d patch-2.6.38-rc3.bz2
-934f6001d3443fa90da7fcf629c00aee patch-2.6.38-rc3-git3.bz2
+32b200b529363e971a91706dd251fd4e patch-2.6.38-rc3-git4.bz2