Hello community,
here is the log from the commit of package kernel-source for openSUSE:Factory
checked in at Mon Jan 10 10:56:08 CET 2011.
--------
--- kernel-source/kernel-debug.changes 2010-12-28 16:02:39.000000000 +0100
+++ /mounts/work_src_done/STABLE/kernel-source/kernel-debug.changes 2011-01-07 07:00:46.000000000 +0100
@@ -1,0 +2,102 @@
+Fri Jan 7 00:20:37 CET 2011 - neilb@suse.de
+
+- Remove old patch
+- commit 7fc009b
+
+-------------------------------------------------------------------
+Thu Jan 6 20:51:31 CET 2011 - jeffm@suse.com
+
+- reiserfs: Fix crash during umount (bnc#610598).
+- commit 88f26ac
+
+-------------------------------------------------------------------
+Thu Jan 6 19:48:28 CET 2011 - mmarek@suse.cz
+
+- rpm/kernel-source.spec.in: Move the source tree if %kernelrelease is
+ different from the tarball version.
+- commit 6be9ffe
+
+-------------------------------------------------------------------
+Thu Jan 6 17:44:53 CET 2011 - mmarek@suse.cz
+
+- Delete patches.suse/export-sync_page_range (unused).
+- commit d19ee6d
+
+-------------------------------------------------------------------
+Thu Jan 6 17:09:12 CET 2011 - jeffm@suse.com
+
+- Delete patches.suse/supported-flag-sysfs: Merged with patches.suse/supported-flag
+- commit 0f2e67b
+
+-------------------------------------------------------------------
+Thu Jan 6 17:08:44 CET 2011 - jeffm@suse.com
+
+- Removed unused kdb patches.
+ - Delete patches.suse/kdb-build-fixes.
+ - Delete patches.suse/kdb-common.
+ - Delete
+ patches.suse/kdb-fix-assignment-from-incompatible-pointer-warnings.
+ - Delete
+ patches.suse/kdb-fix-kdb_cmds-to-include-the-arch-common-macro.
+ - Delete patches.suse/kdb-handle-nonexistance-keyboard-controller.
+ - Delete patches.suse/kdb-ia64.
+ - Delete patches.suse/kdb-usb-rework.
+ - Delete patches.suse/kdb-vm-api-changes-for-2-6-34.
+ - Delete patches.suse/kdb-x86.
+ - Delete patches.suse/kdb-x86-build-fixes.
+ - Delete patches.suse/kdb_dont_touch_i8042_early.patch.
+ - Delete patches.suse/kdb_fix_ia64_build.patch.
+ - Delete patches.xen/xen3-kdb-x86.
+- commit c9e725d
+
+-------------------------------------------------------------------
+Thu Jan 6 16:10:26 CET 2011 - jeffm@suse.com
+
+- rpm/kernel-source.spec.in: Remove the relocation of the source tree.
+ It's expanded in-place.
+- commit 8cde941
+
+-------------------------------------------------------------------
+Thu Jan 6 15:49:34 CET 2011 - jack@suse.cz
+
+- Delete patches.suse/ext2-fsync-err as it is obsolete and unused.
+- commit c8f4ebe
+
+-------------------------------------------------------------------
+Thu Jan 6 13:56:07 CET 2011 - mmarek@suse.cz
+
+- Delete patches.fixes/kbuild-fix-generating-of-.symtypes-files.
+ Fixed upstream in commit e26d6b8.
+- commit 1b628e1
+
+-------------------------------------------------------------------
+Thu Jan 6 10:07:22 CET 2011 - mgalbraith@suse.de
+
+- Replaced autogroup patch with what will appear in 2.6.38
+- Replaced cgroup use after free fix wtih what will appear in 2.6.38
+- Refresh
+ patches.fixes/sched-cgroup-use-exit-hook-to-avoid-use-after-free-crash.
+- Refresh patches.suse/sched-automated-per-session-task-groups.
+- Delete patches.fixes/sched-fix-autogroup-proc-interface-race.
+- commit 81f018b
+
+-------------------------------------------------------------------
+Thu Jan 6 01:24:14 CET 2011 - jeffm@suse.com
+
+- Update to 2.6.37-final.
+- commit f4cd126
+
+-------------------------------------------------------------------
+Thu Dec 30 00:50:58 CET 2010 - jeffm@suse.com
+
+- taskstats: Use better ifdef for alignment (bko#24272).
+- commit 2948ffa
+
+-------------------------------------------------------------------
+Wed Dec 29 22:23:21 CET 2010 - jeffm@suse.com
+
+- Update to 2.6.37-rc8.
+ - Eliminated 1 patch.
+- commit 42518e6
+
+-------------------------------------------------------------------
kernel-default.changes: same change
kernel-desktop.changes: same change
kernel-docs.changes: same change
kernel-ec2.changes: same change
kernel-net.changes: same change
kernel-pae.changes: same change
kernel-ppc64.changes: same change
kernel-ps3.changes: same change
kernel-s390.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-trace.changes: same change
kernel-vanilla.changes: same change
kernel-vmi.changes: same change
kernel-xen.changes: same change
calling whatdependson for head-i586
Old:
----
linux-2.6.36.tar.bz2
New:
----
linux-2.6.37.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:31.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:31.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-debug (Version 2.6.37)
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.36
-%define kernelrelease 2.6.37-rc7
+%define srcversion 2.6.37
+%define kernelrelease 2.6.37
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -56,7 +56,7 @@
Name: kernel-debug
Summary: A Debug Version of the Kernel
Version: 2.6.37
-Release: 7
+Release: 8
%if %using_buildservice
%else
%endif
kernel-default.spec: same change
kernel-desktop.spec: same change
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:31.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:31.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-docs (Version 2.6.37)
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
# norootforbuild
-%define patchversion 2.6.37-rc7
+%define patchversion 2.6.37
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -25,7 +25,7 @@
Name: kernel-docs
Summary: Kernel Documentation
Version: 2.6.37
-Release: 7
+Release: 8
%if %using_buildservice
%else
%endif
++++++ kernel-ec2.spec ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:31.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:31.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-ec2 (Version 2.6.37)
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.36
-%define kernelrelease 2.6.37-rc7
+%define srcversion 2.6.37
+%define kernelrelease 2.6.37
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -56,7 +56,7 @@
Name: kernel-ec2
Summary: The Amazon EC2 Xen Kernel
Version: 2.6.37
-Release: 4
+Release: 5
%if %using_buildservice
%else
%endif
++++++ kernel-net.spec ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:31.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:31.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-net (Version 2.6.37)
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.36
-%define kernelrelease 2.6.37-rc7
+%define srcversion 2.6.37
+%define kernelrelease 2.6.37
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -56,7 +56,7 @@
Name: kernel-net
Summary: Minimal kernel with disk and net support
Version: 2.6.37
-Release: 7
+Release: 8
%if %using_buildservice
%else
%endif
kernel-pae.spec: same change
kernel-ppc64.spec: same change
kernel-ps3.spec: same change
kernel-s390.spec: same change
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:31.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:31.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-source (Version 2.6.37)
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,8 +18,8 @@
# norootforbuild
# icecream 0
-%define srcversion 2.6.36
-%define kernelrelease 2.6.37-rc7
+%define srcversion 2.6.37
+%define kernelrelease 2.6.37
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -31,7 +31,7 @@
Name: kernel-source
Summary: The Linux Kernel Sources
Version: 2.6.37
-Release: 7
+Release: 8
%if %using_buildservice
%else
%endif
@@ -172,7 +172,9 @@
# Unpack the vanilla kernel sources
tar -xjf %_sourcedir/linux-%srcversion.tar.bz2
-mv linux-%srcversion "%buildroot/%src_install_dir"
+if test "%srcversion" != "%kernelrelease%variant"; then
+ mv linux-%srcversion linux-%kernelrelease%variant
+fi
%if %do_vanilla
cp -al "%buildroot/%src_install_dir" linux-%kernelrelease-vanilla
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:31.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:31.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-syms (Version 2.6.37)
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
Name: kernel-syms
Summary: Kernel Symbol Versions (modversions)
Version: 2.6.37
-Release: 7
+Release: 8
%if %using_buildservice
%else
%define kernel_source_release %(LC_ALL=C rpm -q kernel-devel%variant-%version --qf "%{RELEASE}" | grep -v 'not installed' || echo 0)
++++++ kernel-trace.spec ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:31.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:31.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-trace (Version 2.6.37)
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.36
-%define kernelrelease 2.6.37-rc7
+%define srcversion 2.6.37
+%define kernelrelease 2.6.37
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -56,7 +56,7 @@
Name: kernel-trace
Summary: The Standard Kernel with Tracing Features
Version: 2.6.37
-Release: 7
+Release: 8
%if %using_buildservice
%else
%endif
kernel-vanilla.spec: same change
kernel-vmi.spec: same change
++++++ kernel-xen.spec ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:31.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:31.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-xen (Version 2.6.37)
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.36
-%define kernelrelease 2.6.37-rc7
+%define srcversion 2.6.37
+%define kernelrelease 2.6.37
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -56,7 +56,7 @@
Name: kernel-xen
Summary: The Xen Kernel
Version: 2.6.37
-Release: 4
+Release: 5
%if %using_buildservice
%else
%endif
++++++ config.sh ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:32.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:32.000000000 +0100
@@ -1,5 +1,5 @@
# The version of the main tarball to use
-SRCVERSION=2.6.36
+SRCVERSION=2.6.37
# variant of the kernel-source package, either empty or "-rt"
VARIANT=
# buildservice projects to build the kernel against
++++++ config.tar.bz2 ++++++
++++ 2833 lines of diff (skipped)
++++++ kernel-source.spec.in ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:33.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:33.000000000 +0100
@@ -173,7 +173,9 @@
# Unpack the vanilla kernel sources
tar -xjf %_sourcedir/linux-%srcversion.tar.bz2
-mv linux-%srcversion "%buildroot/%src_install_dir"
+if test "%srcversion" != "%kernelrelease%variant"; then
+ mv linux-%srcversion linux-%kernelrelease%variant
+fi
%if %do_vanilla
++++++ linux-2.6.36.tar.bz2 -> linux-2.6.37.tar.bz2 ++++++
kernel-source/linux-2.6.36.tar.bz2 /mounts/work_src_done/STABLE/kernel-source/linux-2.6.37.tar.bz2 differ: byte 11, line 1
++++++ minmem ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:33.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:33.000000000 +0100
@@ -1 +1 @@
-2096000
+1048576
++++++ needed_space_in_mb ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:33.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:33.000000000 +0100
@@ -1 +1 @@
-6000
+6144
++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/kbuild-fix-generating-of-.symtypes-files new/patches.fixes/kbuild-fix-generating-of-.symtypes-files
--- old/patches.fixes/kbuild-fix-generating-of-.symtypes-files 2010-12-28 07:01:24.000000000 +0100
+++ new/patches.fixes/kbuild-fix-generating-of-.symtypes-files 1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-Subject: kbuild: fix generating of *.symtypes files
-From: Michal Marek
-Patch-mainline: submitted 2009-06-29
-
-Commit 37a8d9f ("kbuild: simplify use of genksyms") broke generating of
-*.symtypes files during build (with KBUILD_SYMTYPES set). This patch
-fixes it.
-
-Signed-off-by: Michal Marek
-
----
- scripts/Makefile.build | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/scripts/Makefile.build
-+++ b/scripts/Makefile.build
-@@ -156,9 +156,9 @@ $(obj)/%.i: $(src)/%.c FORCE
-
- cmd_gensymtypes = \
- $(CPP) -D__GENKSYMS__ $(c_flags) $< | \
-- $(GENKSYMS) -T $@ -a $(ARCH) \
-+ $(GENKSYMS) $(if $(strip $(1)), -T $(@:.o=.symtypes)) -a $(ARCH) \
- $(if $(KBUILD_PRESERVE),-p) \
-- $(if $(1),-r $(firstword $(wildcard $(@:.symtypes=.symref) /dev/null)))
-+ -r $(firstword $(wildcard $(basename $@).symref /dev/null))
-
- quiet_cmd_cc_symtypes_c = SYM $(quiet_modtag) $@
- cmd_cc_symtypes_c = \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/reiserfs-xattr-crash-fix new/patches.fixes/reiserfs-xattr-crash-fix
--- old/patches.fixes/reiserfs-xattr-crash-fix 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/reiserfs-xattr-crash-fix 2011-01-06 20:51:31.000000000 +0100
@@ -0,0 +1,157 @@
+From: Jeff Mahoney
+Subject: reiserfs: Fix crash during umount
+References: bnc#610598
+Patch-mainline: Submitted to reiserfs-devel Jun 4 2010
+
+ There is a conflict between shrink_dcache_for_umount_subtree and how
+ xattrs are cleaned up for deleted files at umount.
+
+ shrink_dcache_for_umount_subtree wants to ensure that all dentries for a
+ file system have been evicted and it walks the dentry tree from the root
+ of the file system to do this. It will BUG if there are any dentries
+ left with elevated counts.
+
+ The reiserfs xattr infrastructure caches two dentries. One is for
+ .reiserfs_priv and the other is for .reiserfs_priv/xattrs. When
+ shrink_dcache_for_umount_subtree goes through, it will BUG on these dentries
+ if they aren't freed. OTOH, it will Oops in reiserfs_delete_xattrs if
+ they are due to the xattr code needing to walk the list of xattrs for
+ a file undergoing delayed deletion. This will end up loading up other
+ dentries and possibly queue up more delayed deletions.
+
+ This patch detaches the tree under .reiserfs_priv during ->kill_sb. This
+ allows shrink_dcache_for_umount_subtree to complete successfully as well
+ as keeps around the .reiserfs_priv tree for deletion handling. After
+ the regular cycle is completed, it will call shrink_dcache_for_umount_subtree
+ again itself to ensure that the xattrs are cleaned up.
+
+Signed-off-by: Jeff Mahoney
+---
+ fs/dcache.c | 3 ++-
+ fs/reiserfs/super.c | 37 ++++++++++++++++++++++++-------------
+ fs/reiserfs/xattr.c | 21 +++++++++++++++++++++
+ include/linux/dcache.h | 1 +
+ include/linux/reiserfs_xattr.h | 1 +
+ 5 files changed, 49 insertions(+), 14 deletions(-)
+
+--- a/fs/dcache.c
++++ b/fs/dcache.c
+@@ -637,7 +637,7 @@ EXPORT_SYMBOL(shrink_dcache_sb);
+ * - see the comments on shrink_dcache_for_umount() for a description of the
+ * locking
+ */
+-static void shrink_dcache_for_umount_subtree(struct dentry *dentry)
++void shrink_dcache_for_umount_subtree(struct dentry *dentry)
+ {
+ struct dentry *parent;
+ unsigned detached = 0;
+@@ -725,6 +725,7 @@ static void shrink_dcache_for_umount_sub
+ struct dentry, d_u.d_child);
+ }
+ }
++EXPORT_SYMBOL_GPL(shrink_dcache_for_umount_subtree);
+
+ /*
+ * destroy the dentries attached to a superblock on unmounting
+--- a/fs/reiserfs/super.c
++++ b/fs/reiserfs/super.c
+@@ -450,21 +450,30 @@ int remove_save_link(struct inode *inode
+ return journal_end(&th, inode->i_sb, JOURNAL_PER_BALANCE_CNT);
+ }
+
+-static void reiserfs_kill_sb(struct super_block *s)
++/*
++ * Detach the priv root from the root. Technically this becomes anonymous
++ * but we don't want it added to the anon list. This is necessary to
++ * work around shrink_dcache_for_umount BUG'ing on the xattr dentries if
++ * we don't clean them up before the call and Oopsing on cleaning up
++ * xattrs during inode deletion if we do.
++ */
++static void detach_privroot(struct super_block *s)
+ {
+- if (REISERFS_SB(s)) {
+- if (REISERFS_SB(s)->xattr_root) {
+- d_invalidate(REISERFS_SB(s)->xattr_root);
+- dput(REISERFS_SB(s)->xattr_root);
+- REISERFS_SB(s)->xattr_root = NULL;
+- }
+- if (REISERFS_SB(s)->priv_root) {
+- d_invalidate(REISERFS_SB(s)->priv_root);
+- dput(REISERFS_SB(s)->priv_root);
+- REISERFS_SB(s)->priv_root = NULL;
+- }
+- }
++ struct dentry *root = REISERFS_SB(s)->priv_root;
++ if (!root)
++ return;
++
++ d_drop(root);
++ dput(root->d_parent);
++ spin_lock(&dcache_lock);
++ list_del_init(&root->d_u.d_child);
++ root->d_parent = root;
++ spin_unlock(&dcache_lock);
++}
+
++static void reiserfs_kill_sb(struct super_block *s)
++{
++ detach_privroot(s);
+ kill_block_super(s);
+ }
+
+@@ -473,6 +482,8 @@ static void reiserfs_put_super(struct su
+ struct reiserfs_transaction_handle th;
+ th.t_trans_id = 0;
+
++ reiserfs_xattr_shutdown(s);
++
+ dquot_disable(s, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED);
+
+ reiserfs_write_lock(s);
+--- a/fs/reiserfs/xattr.c
++++ b/fs/reiserfs/xattr.c
+@@ -1047,3 +1047,24 @@ error:
+
+ return err;
+ }
++
++void reiserfs_xattr_shutdown(struct super_block *s)
++{
++ struct dentry *priv_root = REISERFS_SB(s)->priv_root;
++
++ if (REISERFS_SB(s)->xattr_root) {
++ dput(REISERFS_SB(s)->xattr_root);
++ REISERFS_SB(s)->xattr_root = NULL;
++ }
++
++ if (priv_root) {
++ dput(priv_root);
++ REISERFS_SB(s)->priv_root = NULL;
++
++ /* This will drop the final reference to priv_root and
++ * clean up anything that was deleted during the call in
++ * generic_shutdown_super(). */
++ shrink_dcache_for_umount_subtree(priv_root);
++ sync_filesystem(s);
++ }
++}
+--- a/include/linux/dcache.h
++++ b/include/linux/dcache.h
+@@ -245,6 +245,7 @@ extern struct dentry * d_obtain_alias(st
+ extern void shrink_dcache_sb(struct super_block *);
+ extern void shrink_dcache_parent(struct dentry *);
+ extern void shrink_dcache_for_umount(struct super_block *);
++extern void shrink_dcache_for_umount_subtree(struct dentry *);
+ extern int d_invalidate(struct dentry *);
+
+ /* only used at mount-time */
+--- a/include/linux/reiserfs_xattr.h
++++ b/include/linux/reiserfs_xattr.h
+@@ -38,6 +38,7 @@ struct nameidata;
+ int reiserfs_xattr_register_handlers(void) __init;
+ void reiserfs_xattr_unregister_handlers(void);
+ int reiserfs_xattr_init(struct super_block *sb, int mount_flags);
++void reiserfs_xattr_shutdown(struct super_block *sb);
+ int reiserfs_lookup_privroot(struct super_block *sb);
+ int reiserfs_delete_xattrs(struct inode *inode);
+ int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/sched-cgroup-use-exit-hook-to-avoid-use-after-free-crash new/patches.fixes/sched-cgroup-use-exit-hook-to-avoid-use-after-free-crash
--- old/patches.fixes/sched-cgroup-use-exit-hook-to-avoid-use-after-free-crash 2010-12-28 07:01:24.000000000 +0100
+++ new/patches.fixes/sched-cgroup-use-exit-hook-to-avoid-use-after-free-crash 2011-01-06 20:51:31.000000000 +0100
@@ -15,13 +15,13 @@
Signed-off-by: Peter Zijlstra
Acked-by: Jeff Mahoney
---
- kernel/sched.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
+ kernel/sched.c | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
-Index: linux-2.6.37.git/kernel/sched.c
+Index: linux-2.6.37-master/kernel/sched.c
===================================================================
---- linux-2.6.37.git.orig/kernel/sched.c
-+++ linux-2.6.37.git/kernel/sched.c
+--- linux-2.6.37-master.orig/kernel/sched.c
++++ linux-2.6.37-master/kernel/sched.c
@@ -613,6 +613,9 @@ static inline struct task_group *task_gr
struct task_group *tg;
struct cgroup_subsys_state *css;
@@ -32,20 +32,30 @@
css = task_subsys_state_check(p, cpu_cgroup_subsys_id,
lockdep_is_held(&task_rq(p)->lock));
tg = container_of(css, struct task_group, css);
-@@ -9187,6 +9190,12 @@ cpu_cgroup_attach(struct cgroup_subsys *
+@@ -9188,6 +9191,22 @@ cpu_cgroup_attach(struct cgroup_subsys *
}
}
+static void
+cpu_cgroup_exit(struct cgroup_subsys *ss, struct task_struct *task)
+{
++ /*
++ * cgroup_exit() is called in the copy_process failure path.
++ * The task isn't hashed, and we don't want to make autogroup
++ * dig into a freed signal_struct, so just go away.
++ *
++ * XXX: why are cgroup methods diddling unattached tasks?
++ */
++ if (!(task->flags & PF_EXITING))
++ return;
++
+ sched_move_task(task);
+}
+
#ifdef CONFIG_FAIR_GROUP_SCHED
static int cpu_shares_write_u64(struct cgroup *cgrp, struct cftype *cftype,
u64 shareval)
-@@ -9259,6 +9268,7 @@ struct cgroup_subsys cpu_cgroup_subsys =
+@@ -9260,6 +9279,7 @@ struct cgroup_subsys cpu_cgroup_subsys =
.destroy = cpu_cgroup_destroy,
.can_attach = cpu_cgroup_can_attach,
.attach = cpu_cgroup_attach,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/sched-fix-autogroup-proc-interface-race new/patches.fixes/sched-fix-autogroup-proc-interface-race
--- old/patches.fixes/sched-fix-autogroup-proc-interface-race 2010-12-28 07:01:24.000000000 +0100
+++ new/patches.fixes/sched-fix-autogroup-proc-interface-race 1970-01-01 01:00:00.000000000 +0100
@@ -1,85 +0,0 @@
-Subject: sched: fix autogroup /proc interface race
-From: Mike Galbraith
-Date: Tue Dec 28 06:20:05 CET 2010
-Patch-mainline: submitted/queued
-References:
-
-sched: autogroup, fix proc interface race
-
-Oleg pointed out that the /proc interface kref_get() useage may race with
-the final put during autogroup_move_group(). A signal->autogroup assignment
-may be in flight when the /proc interface dereference, leaving them taking
-a reference to an already dead group.
-
-Acked-by: Mike Galbraith
-Reported-by: Oleg Nesterov
-Signed-off-by: Mike Galbraith
-
----
- kernel/sched_autogroup.c | 25 +++++++++++++++++--------
- 1 file changed, 17 insertions(+), 8 deletions(-)
-
-Index: linux-2.6.36-master/kernel/sched_autogroup.c
-===================================================================
---- linux-2.6.36-master.orig/kernel/sched_autogroup.c
-+++ linux-2.6.36-master/kernel/sched_autogroup.c
-@@ -41,6 +41,20 @@ static inline struct autogroup *autogrou
- return ag;
- }
-
-+static inline struct autogroup *autogroup_task_get(struct task_struct *p)
-+{
-+ struct autogroup *ag;
-+ unsigned long flags;
-+
-+ if (!lock_task_sighand(p, &flags))
-+ return autogroup_kref_get(&autogroup_default);
-+
-+ ag = autogroup_kref_get(p->signal->autogroup);
-+ unlock_task_sighand(p, &flags);
-+
-+ return ag;
-+}
-+
- static inline struct autogroup *autogroup_create(void)
- {
- struct autogroup *ag = kzalloc(sizeof(*ag), GFP_KERNEL);
-@@ -149,11 +163,7 @@ EXPORT_SYMBOL(sched_autogroup_detach);
-
- void sched_autogroup_fork(struct signal_struct *sig)
- {
-- struct task_struct *p = current;
--
-- spin_lock_irq(&p->sighand->siglock);
-- sig->autogroup = autogroup_kref_get(p->signal->autogroup);
-- spin_unlock_irq(&p->sighand->siglock);
-+ sig->autogroup = autogroup_task_get(current);
- }
-
- void sched_autogroup_exit(struct signal_struct *sig)
-@@ -172,7 +182,6 @@ __setup("noautogroup", setup_autogroup);
-
- #ifdef CONFIG_PROC_FS
-
--/* Called with siglock held. */
- int proc_sched_autogroup_set_nice(struct task_struct *p, int *nice)
- {
- static unsigned long next = INITIAL_JIFFIES;
-@@ -194,7 +203,7 @@ int proc_sched_autogroup_set_nice(struct
- return -EAGAIN;
-
- next = HZ / 10 + jiffies;
-- ag = autogroup_kref_get(p->signal->autogroup);
-+ ag = autogroup_task_get(p);
-
- down_write(&ag->lock);
- err = sched_group_set_shares(ag->tg, prio_to_weight[*nice + 20]);
-@@ -209,7 +218,7 @@ int proc_sched_autogroup_set_nice(struct
-
- void proc_sched_autogroup_show_task(struct task_struct *p, struct seq_file *m)
- {
-- struct autogroup *ag = autogroup_kref_get(p->signal->autogroup);
-+ struct autogroup *ag = autogroup_task_get(p);
-
- down_read(&ag->lock);
- seq_printf(m, "/autogroup-%ld nice %d\n", ag->id, ag->nice);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/taskstats-better-ifdef new/patches.fixes/taskstats-better-ifdef
--- old/patches.fixes/taskstats-better-ifdef 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/taskstats-better-ifdef 2011-01-06 20:51:31.000000000 +0100
@@ -0,0 +1,38 @@
+From: Jeff Mahoney
+Subject: taskstats: Use better ifdef for alignment
+References: bko#24272
+Patch-mainline: Submitted 29 Dec 2010
+
+ Commit 4be2c95d added a null field to align the taskstats structure but
+ the discussion centered around ia64. The issue exists on other platforms
+ with inefficient unaligned access and adding them piecemeal would be
+ an unmaintainable mess.
+
+ This patch uses Dave Miller's suggestion of using a combination of
+ CONFIG_64BIT && !CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS to determine
+ whether alignment is needed.
+
+ Note that this will cause breakage on those platforms with applications
+ like iotop which had hard-coded offsets into the packet to access the
+ taskstats structure.
+
+ The message seen on systems without the alignment fixes looks like:
+ kernel unaligned access to 0xe000023879dca9bc, ip=0xa000000100133d10
+
+Reported-by: David S. Miller
+Signed-off-by: Jeff Mahoney
+---
+ kernel/taskstats.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/kernel/taskstats.c
++++ b/kernel/taskstats.c
+@@ -349,7 +349,7 @@ static int parse(struct nlattr *na, stru
+ return ret;
+ }
+
+-#ifdef CONFIG_IA64
++#if defined(CONFIG_64BIT) && !defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
+ #define TASKSTATS_NEEDS_PADDING 1
+ #endif
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/tehuti-firmware-name new/patches.fixes/tehuti-firmware-name
--- old/patches.fixes/tehuti-firmware-name 2010-12-28 07:01:24.000000000 +0100
+++ new/patches.fixes/tehuti-firmware-name 1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-From: Hannes Reinecke
-Subject: Tehuti network driver references wrong firmware
-References: bnc#562092
-Patch-mainline: not yet
-
-The tehuti network driver references the firmware
-'tehuti/firmware.bin', which is actually named
-'tehuti/bdx.bin'.
-
-Signed-off-by: Hannes Reinecke
-
----
- drivers/net/tehuti.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/tehuti.c
-+++ b/drivers/net/tehuti.c
-@@ -2516,4 +2516,4 @@ module_exit(bdx_module_exit);
- MODULE_LICENSE("GPL");
- MODULE_AUTHOR(DRIVER_AUTHOR);
- MODULE_DESCRIPTION(BDX_DRV_DESC);
--MODULE_FIRMWARE("tehuti/firmware.bin");
-+MODULE_FIRMWARE("tehuti/bdx.bin");
++++++ patches.kernel.org.tar.bz2 ++++++
kernel-source/patches.kernel.org.tar.bz2 /mounts/work_src_done/STABLE/kernel-source/patches.kernel.org.tar.bz2 differ: byte 11, line 1
++++++ patches.suse.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/export-sync_page_range new/patches.suse/export-sync_page_range
--- old/patches.suse/export-sync_page_range 2010-12-16 22:31:42.000000000 +0100
+++ new/patches.suse/export-sync_page_range 1970-01-01 01:00:00.000000000 +0100
@@ -1,178 +0,0 @@
-From 48b8926b6b02382bc774efee2ed2cd6be8770ac0 Mon Sep 17 00:00:00 2001
-From: Michal Marek
-Date: Fri, 20 Nov 2009 17:25:21 +0100
-Subject: [PATCH] Revert "vfs: Remove generic_osync_inode() and sync_page_range{_nolock}()"
-References: bnc#557231
-
-Commit 18f2ee705d98034b0f229a3202d827468d4bffd9 broke iscsitarget, revert
-it temporarily. The exports are marged _GPL though.
-
-Signed-off-by: Michal Marek
-
----
- fs/fs-writeback.c | 54 ++++++++++++++++++++++++++++++++++++++
- include/linux/fs.h | 5 +++
- include/linux/writeback.h | 4 ++
- mm/filemap.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 127 insertions(+)
-
---- a/fs/fs-writeback.c
-+++ b/fs/fs-writeback.c
-@@ -1280,3 +1280,57 @@ int sync_inode(struct inode *inode, stru
- return ret;
- }
- EXPORT_SYMBOL(sync_inode);
-+
-+/**
-+ * generic_osync_inode - flush all dirty data for a given inode to disk
-+ * @inode: inode to write
-+ * @mapping: the address_space that should be flushed
-+ * @what: what to write and wait upon
-+ *
-+ * This can be called by file_write functions for files which have the
-+ * O_SYNC flag set, to flush dirty writes to disk.
-+ *
-+ * @what is a bitmask, specifying which part of the inode's data should be
-+ * written and waited upon.
-+ *
-+ * OSYNC_DATA: i_mapping's dirty data
-+ * OSYNC_METADATA: the buffers at i_mapping->private_list
-+ * OSYNC_INODE: the inode itself
-+ */
-+
-+int generic_osync_inode(struct inode *inode, struct address_space *mapping, int what)
-+{
-+ int err = 0;
-+ int need_write_inode_now = 0;
-+ int err2;
-+
-+ if (what & OSYNC_DATA)
-+ err = filemap_fdatawrite(mapping);
-+ if (what & (OSYNC_METADATA|OSYNC_DATA)) {
-+ err2 = sync_mapping_buffers(mapping);
-+ if (!err)
-+ err = err2;
-+ }
-+ if (what & OSYNC_DATA) {
-+ err2 = filemap_fdatawait(mapping);
-+ if (!err)
-+ err = err2;
-+ }
-+
-+ spin_lock(&inode_lock);
-+ if ((inode->i_state & I_DIRTY) &&
-+ ((what & OSYNC_INODE) || (inode->i_state & I_DIRTY_DATASYNC)))
-+ need_write_inode_now = 1;
-+ spin_unlock(&inode_lock);
-+
-+ if (need_write_inode_now) {
-+ err2 = write_inode_now(inode, 1);
-+ if (!err)
-+ err = err2;
-+ }
-+ else
-+ inode_sync_wait(inode);
-+
-+ return err;
-+}
-+EXPORT_SYMBOL_GPL(generic_osync_inode);
---- a/include/linux/fs.h
-+++ b/include/linux/fs.h
-@@ -1459,6 +1459,11 @@ int fiemap_check_flags(struct fiemap_ext
- #define DT_SOCK 12
- #define DT_WHT 14
-
-+#define OSYNC_METADATA (1<<0)
-+#define OSYNC_DATA (1<<1)
-+#define OSYNC_INODE (1<<2)
-+int generic_osync_inode(struct inode *, struct address_space *, int);
-+
- /*
- * This is the "filldir" function type, used by readdir() to let
- * the kernel specify what kind of dirent layout it wants to have.
---- a/include/linux/writeback.h
-+++ b/include/linux/writeback.h
-@@ -148,6 +148,10 @@ int write_cache_pages(struct address_spa
- struct writeback_control *wbc, writepage_t writepage,
- void *data);
- int do_writepages(struct address_space *mapping, struct writeback_control *wbc);
-+int sync_page_range(struct inode *inode, struct address_space *mapping,
-+ loff_t pos, loff_t count);
-+int sync_page_range_nolock(struct inode *inode, struct address_space *mapping,
-+ loff_t pos, loff_t count);
- void set_page_dirty_balance(struct page *page, int page_mkwrite);
- void writeback_set_ratelimit(void);
-
---- a/mm/filemap.c
-+++ b/mm/filemap.c
-@@ -334,6 +334,70 @@ int filemap_fdatawait_range(struct addre
- EXPORT_SYMBOL(filemap_fdatawait_range);
-
- /**
-+ * sync_page_range - write and wait on all pages in the passed range
-+ * @inode: target inode
-+ * @mapping: target address_space
-+ * @pos: beginning offset in pages to write
-+ * @count: number of bytes to write
-+ *
-+ * Write and wait upon all the pages in the passed range. This is a "data
-+ * integrity" operation. It waits upon in-flight writeout before starting and
-+ * waiting upon new writeout. If there was an IO error, return it.
-+ *
-+ * We need to re-take i_mutex during the generic_osync_inode list walk because
-+ * it is otherwise livelockable.
-+ */
-+int sync_page_range(struct inode *inode, struct address_space *mapping,
-+ loff_t pos, loff_t count)
-+{
-+ pgoff_t start = pos >> PAGE_CACHE_SHIFT;
-+ pgoff_t end = (pos + count - 1) >> PAGE_CACHE_SHIFT;
-+ int ret;
-+
-+ if (!mapping_cap_writeback_dirty(mapping) || !count)
-+ return 0;
-+ ret = filemap_fdatawrite_range(mapping, pos, pos + count - 1);
-+ if (ret == 0) {
-+ mutex_lock(&inode->i_mutex);
-+ ret = generic_osync_inode(inode, mapping, OSYNC_METADATA);
-+ mutex_unlock(&inode->i_mutex);
-+ }
-+ if (ret == 0)
-+ ret = wait_on_page_writeback_range(mapping, start, end);
-+ return ret;
-+}
-+EXPORT_SYMBOL_GPL(sync_page_range);
-+
-+/**
-+ * sync_page_range_nolock - write & wait on all pages in the passed range without locking
-+ * @inode: target inode
-+ * @mapping: target address_space
-+ * @pos: beginning offset in pages to write
-+ * @count: number of bytes to write
-+ *
-+ * Note: Holding i_mutex across sync_page_range_nolock() is not a good idea
-+ * as it forces O_SYNC writers to different parts of the same file
-+ * to be serialised right until io completion.
-+ */
-+int sync_page_range_nolock(struct inode *inode, struct address_space *mapping,
-+ loff_t pos, loff_t count)
-+{
-+ pgoff_t start = pos >> PAGE_CACHE_SHIFT;
-+ pgoff_t end = (pos + count - 1) >> PAGE_CACHE_SHIFT;
-+ int ret;
-+
-+ if (!mapping_cap_writeback_dirty(mapping) || !count)
-+ return 0;
-+ ret = filemap_fdatawrite_range(mapping, pos, pos + count - 1);
-+ if (ret == 0)
-+ ret = generic_osync_inode(inode, mapping, OSYNC_METADATA);
-+ if (ret == 0)
-+ ret = wait_on_page_writeback_range(mapping, start, end);
-+ return ret;
-+}
-+EXPORT_SYMBOL_GPL(sync_page_range_nolock);
-+
-+/**
- * filemap_fdatawait - wait for all under-writeback pages to complete
- * @mapping: address space structure to wait for
- *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/sched-automated-per-session-task-groups new/patches.suse/sched-automated-per-session-task-groups
--- old/patches.suse/sched-automated-per-session-task-groups 2010-12-16 22:31:42.000000000 +0100
+++ new/patches.suse/sched-automated-per-session-task-groups 2011-01-06 10:07:22.000000000 +0100
@@ -63,22 +63,22 @@
---
Documentation/kernel-parameters.txt | 2
- fs/proc/base.c | 79 ++++++++++++
+ fs/proc/base.c | 79 +++++++++++
include/linux/sched.h | 23 +++
- init/Kconfig | 13 ++
- kernel/fork.c | 5
- kernel/sched.c | 13 +-
- kernel/sched_autogroup.c | 229 ++++++++++++++++++++++++++++++++++++
- kernel/sched_autogroup.h | 32 +++++
- kernel/sched_debug.c | 45 -------
+ init/Kconfig | 13 +
+ kernel/fork.c | 2
+ kernel/sched.c | 14 +-
+ kernel/sched_autogroup.c | 238 ++++++++++++++++++++++++++++++++++++
+ kernel/sched_autogroup.h | 32 ++++
+ kernel/sched_debug.c | 45 ------
kernel/sys.c | 4
kernel/sysctl.c | 11 +
- 11 files changed, 408 insertions(+), 48 deletions(-)
+ 11 files changed, 416 insertions(+), 47 deletions(-)
-Index: linux-2.6.36-master/Documentation/kernel-parameters.txt
+Index: linux-2.6.37-master/Documentation/kernel-parameters.txt
===================================================================
---- linux-2.6.36-master.orig/Documentation/kernel-parameters.txt
-+++ linux-2.6.36-master/Documentation/kernel-parameters.txt
+--- linux-2.6.37-master.orig/Documentation/kernel-parameters.txt
++++ linux-2.6.37-master/Documentation/kernel-parameters.txt
@@ -1622,6 +1622,8 @@ and is between 256 and 4096 characters.
noapic [SMP,APIC] Tells the kernel to not make use of any
IOAPICs that may be present in the system.
@@ -88,10 +88,10 @@
nobats [PPC] Do not use BATs for mapping kernel lowmem
on "Classic" PPC cores.
-Index: linux-2.6.36-master/fs/proc/base.c
+Index: linux-2.6.37-master/fs/proc/base.c
===================================================================
---- linux-2.6.36-master.orig/fs/proc/base.c
-+++ linux-2.6.36-master/fs/proc/base.c
+--- linux-2.6.37-master.orig/fs/proc/base.c
++++ linux-2.6.37-master/fs/proc/base.c
@@ -1407,6 +1407,82 @@ static const struct file_operations proc
#endif
@@ -185,10 +185,10 @@
REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
INF("syscall", S_IRUSR, proc_pid_syscall),
-Index: linux-2.6.36-master/include/linux/sched.h
+Index: linux-2.6.37-master/include/linux/sched.h
===================================================================
---- linux-2.6.36-master.orig/include/linux/sched.h
-+++ linux-2.6.36-master/include/linux/sched.h
+--- linux-2.6.37-master.orig/include/linux/sched.h
++++ linux-2.6.37-master/include/linux/sched.h
@@ -509,6 +509,8 @@ struct thread_group_cputimer {
spinlock_t lock;
};
@@ -233,10 +233,10 @@
#ifdef CONFIG_RT_MUTEXES
extern int rt_mutex_getprio(struct task_struct *p);
extern void rt_mutex_setprio(struct task_struct *p, int prio);
-Index: linux-2.6.36-master/init/Kconfig
+Index: linux-2.6.37-master/init/Kconfig
===================================================================
---- linux-2.6.36-master.orig/init/Kconfig
-+++ linux-2.6.36-master/init/Kconfig
+--- linux-2.6.37-master.orig/init/Kconfig
++++ linux-2.6.37-master/init/Kconfig
@@ -774,6 +774,19 @@ config NET_NS
endif # NAMESPACES
@@ -257,23 +257,19 @@
config MM_OWNER
bool
-Index: linux-2.6.36-master/kernel/fork.c
+Index: linux-2.6.37-master/kernel/fork.c
===================================================================
---- linux-2.6.36-master.orig/kernel/fork.c
-+++ linux-2.6.36-master/kernel/fork.c
-@@ -174,8 +174,10 @@ static inline void free_signal_struct(st
-
- static inline void put_signal_struct(struct signal_struct *sig)
+--- linux-2.6.37-master.orig/kernel/fork.c
++++ linux-2.6.37-master/kernel/fork.c
+@@ -169,6 +169,7 @@ EXPORT_SYMBOL(free_task);
+ static inline void free_signal_struct(struct signal_struct *sig)
{
-- if (atomic_dec_and_test(&sig->sigcnt))
-+ if (atomic_dec_and_test(&sig->sigcnt)) {
-+ sched_autogroup_exit(sig);
- free_signal_struct(sig);
-+ }
+ taskstats_tgid_free(sig);
++ sched_autogroup_exit(sig);
+ kmem_cache_free(signal_cachep, sig);
}
- void __put_task_struct(struct task_struct *tsk)
-@@ -904,6 +906,7 @@ static int copy_signal(unsigned long clo
+@@ -905,6 +906,7 @@ static int copy_signal(unsigned long clo
posix_cpu_timers_init_group(sig);
tty_audit_fork(sig);
@@ -281,10 +277,10 @@
sig->oom_adj = current->signal->oom_adj;
sig->oom_score_adj = current->signal->oom_score_adj;
-Index: linux-2.6.36-master/kernel/sched.c
+Index: linux-2.6.37-master/kernel/sched.c
===================================================================
---- linux-2.6.36-master.orig/kernel/sched.c
-+++ linux-2.6.36-master/kernel/sched.c
+--- linux-2.6.37-master.orig/kernel/sched.c
++++ linux-2.6.37-master/kernel/sched.c
@@ -78,6 +78,7 @@
#include "sched_cpupri.h"
@@ -320,7 +316,7 @@
}
/* Change a task's cfs_rq and parent entity if it moves across CPUs/groups */
-@@ -2006,6 +2014,7 @@ static void sched_irq_time_avg_update(st
+@@ -2063,6 +2071,7 @@ static void update_rq_clock_task(struct
#include "sched_idletask.c"
#include "sched_fair.c"
#include "sched_rt.c"
@@ -328,7 +324,7 @@
#include "sched_stoptask.c"
#ifdef CONFIG_SCHED_DEBUG
# include "sched_debug.c"
-@@ -7979,7 +7988,7 @@ void __init sched_init(void)
+@@ -8164,7 +8173,7 @@ void __init sched_init(void)
#ifdef CONFIG_CGROUP_SCHED
list_add(&init_task_group.list, &task_groups);
INIT_LIST_HEAD(&init_task_group.children);
@@ -337,11 +333,19 @@
#endif /* CONFIG_CGROUP_SCHED */
#if defined CONFIG_FAIR_GROUP_SCHED && defined CONFIG_SMP
-Index: linux-2.6.36-master/kernel/sched_autogroup.c
+@@ -8624,6 +8633,7 @@ static void free_sched_group(struct task
+ {
+ free_fair_sched_group(tg);
+ free_rt_sched_group(tg);
++ autogroup_free(tg);
+ kfree(tg);
+ }
+
+Index: linux-2.6.37-master/kernel/sched_autogroup.c
===================================================================
--- /dev/null
-+++ linux-2.6.36-master/kernel/sched_autogroup.c
-@@ -0,0 +1,229 @@
++++ linux-2.6.37-master/kernel/sched_autogroup.c
+@@ -0,0 +1,238 @@
+#ifdef CONFIG_SCHED_AUTOGROUP
+
+#include
@@ -385,6 +389,20 @@
+ return ag;
+}
+
++static inline struct autogroup *autogroup_task_get(struct task_struct *p)
++{
++ struct autogroup *ag;
++ unsigned long flags;
++
++ if (!lock_task_sighand(p, &flags))
++ return autogroup_kref_get(&autogroup_default);
++
++ ag = autogroup_kref_get(p->signal->autogroup);
++ unlock_task_sighand(p, &flags);
++
++ return ag;
++}
++
+static inline struct autogroup *autogroup_create(void)
+{
+ struct autogroup *ag = kzalloc(sizeof(*ag), GFP_KERNEL);
@@ -493,11 +511,7 @@
+
+void sched_autogroup_fork(struct signal_struct *sig)
+{
-+ struct task_struct *p = current;
-+
-+ spin_lock_irq(&p->sighand->siglock);
-+ sig->autogroup = autogroup_kref_get(p->signal->autogroup);
-+ spin_unlock_irq(&p->sighand->siglock);
++ sig->autogroup = autogroup_task_get(current);
+}
+
+void sched_autogroup_exit(struct signal_struct *sig)
@@ -516,7 +530,6 @@
+
+#ifdef CONFIG_PROC_FS
+
-+/* Called with siglock held. */
+int proc_sched_autogroup_set_nice(struct task_struct *p, int *nice)
+{
+ static unsigned long next = INITIAL_JIFFIES;
@@ -538,7 +551,7 @@
+ return -EAGAIN;
+
+ next = HZ / 10 + jiffies;
-+ ag = autogroup_kref_get(p->signal->autogroup);
++ ag = autogroup_task_get(p);
+
+ down_write(&ag->lock);
+ err = sched_group_set_shares(ag->tg, prio_to_weight[*nice + 20]);
@@ -553,7 +566,7 @@
+
+void proc_sched_autogroup_show_task(struct task_struct *p, struct seq_file *m)
+{
-+ struct autogroup *ag = autogroup_kref_get(p->signal->autogroup);
++ struct autogroup *ag = autogroup_task_get(p);
+
+ down_read(&ag->lock);
+ seq_printf(m, "/autogroup-%ld nice %d\n", ag->id, ag->nice);
@@ -571,10 +584,10 @@
+#endif /* CONFIG_SCHED_DEBUG */
+
+#endif /* CONFIG_SCHED_AUTOGROUP */
-Index: linux-2.6.36-master/kernel/sched_autogroup.h
+Index: linux-2.6.37-master/kernel/sched_autogroup.h
===================================================================
--- /dev/null
-+++ linux-2.6.36-master/kernel/sched_autogroup.h
++++ linux-2.6.37-master/kernel/sched_autogroup.h
@@ -0,0 +1,32 @@
+#ifdef CONFIG_SCHED_AUTOGROUP
+
@@ -608,10 +621,10 @@
+#endif
+
+#endif /* CONFIG_SCHED_AUTOGROUP */
-Index: linux-2.6.36-master/kernel/sched_debug.c
+Index: linux-2.6.37-master/kernel/sched_debug.c
===================================================================
---- linux-2.6.36-master.orig/kernel/sched_debug.c
-+++ linux-2.6.36-master/kernel/sched_debug.c
+--- linux-2.6.37-master.orig/kernel/sched_debug.c
++++ linux-2.6.37-master/kernel/sched_debug.c
@@ -54,8 +54,7 @@ static unsigned long nsec_low(unsigned l
#define SPLIT_NS(x) nsec_high(x), nsec_low(x)
@@ -694,10 +707,10 @@
#define P(x) \
SEQ_printf(m, " .%-30s: %Ld\n", #x, (long long)(rt_rq->x))
-Index: linux-2.6.36-master/kernel/sys.c
+Index: linux-2.6.37-master/kernel/sys.c
===================================================================
---- linux-2.6.36-master.orig/kernel/sys.c
-+++ linux-2.6.36-master/kernel/sys.c
+--- linux-2.6.37-master.orig/kernel/sys.c
++++ linux-2.6.37-master/kernel/sys.c
@@ -1080,8 +1080,10 @@ SYSCALL_DEFINE0(setsid)
err = session;
out:
@@ -710,10 +723,10 @@
return err;
}
-Index: linux-2.6.36-master/kernel/sysctl.c
+Index: linux-2.6.37-master/kernel/sysctl.c
===================================================================
---- linux-2.6.36-master.orig/kernel/sysctl.c
-+++ linux-2.6.36-master/kernel/sysctl.c
+--- linux-2.6.37-master.orig/kernel/sysctl.c
++++ linux-2.6.37-master/kernel/sysctl.c
@@ -382,6 +382,17 @@ static struct ctl_table kern_table[] = {
.mode = 0644,
.proc_handler = proc_dointvec,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/SoN-23-mm-swapfile.patch new/patches.suse/SoN-23-mm-swapfile.patch
--- old/patches.suse/SoN-23-mm-swapfile.patch 2010-12-16 22:31:42.000000000 +0100
+++ new/patches.suse/SoN-23-mm-swapfile.patch 2011-01-06 10:07:22.000000000 +0100
@@ -48,10 +48,10 @@
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
-@@ -177,6 +177,10 @@ prototypes:
- int (*direct_IO)(int, struct kiocb *, const struct iovec *iov,
- loff_t offset, unsigned long nr_segs);
- int (*launder_page) (struct page *);
+@@ -198,6 +198,10 @@ prototypes:
+ int (*launder_page)(struct page *);
+ int (*is_partially_uptodate)(struct page *, read_descriptor_t *, unsigned long);
+ int (*error_remove_page)(struct address_space *, struct page *);
+ int (*swapon) (struct file *);
+ int (*swapoff) (struct file *);
+ int (*swap_out) (struct file *, struct page *, struct writeback_control *);
@@ -59,10 +59,10 @@
locking rules:
All except set_page_dirty and freepage may block
-@@ -197,6 +201,10 @@ releasepage: no yes
- freepage: no yes
- direct_IO: no
- launder_page: no yes
+@@ -221,6 +225,10 @@ migratepage: yes (both)
+ launder_page: yes
+ is_partially_uptodate: yes
+ error_remove_page: yes
+swapon no
+swapoff no
+swap_out no yes, unlocks
@@ -70,7 +70,7 @@
->write_begin(), ->write_end(), ->sync_page() and ->readpage()
may be called from the request handler (/dev/loop).
-@@ -299,6 +307,20 @@ cleaned, or an error value if not. Note
+@@ -322,6 +330,20 @@ cleaned, or an error value if not. Note
getting mapped back in and redirtied, it needs to be kept locked
across the entire operation.
@@ -88,9 +88,9 @@
+ ->swap_in() when swapon() returned success, this method is used to
+read the swap page.
+
- Note: currently almost all instances of address_space methods are
- using BKL for internal serialization and that's one of the worst sources
- of contention. Normally they are calling library functions (in fs/buffer.c)
+ ----------------------- file_lock_operations ------------------------------
+ prototypes:
+ void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
--- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt
@@ -543,6 +543,11 @@ struct address_space_operations {
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:34.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:34.000000000 +0100
@@ -27,13 +27,6 @@
# DO NOT MODIFY THEM!
# Send separate patches upstream if you find a problem...
########################################################
- patches.kernel.org/patch-2.6.37-rc1
- patches.kernel.org/patch-2.6.37-rc1-rc2
- patches.kernel.org/patch-2.6.37-rc2-rc3
- patches.kernel.org/patch-2.6.37-rc3-rc4
- patches.kernel.org/patch-2.6.37-rc4-rc5
- patches.kernel.org/patch-2.6.37-rc5-rc6
- patches.kernel.org/patch-2.6.37-rc6-rc7
########################################################
# Build fixes that apply to the vanilla kernel too.
@@ -70,7 +63,6 @@
########################################################
patches.suse/supported-flag
patches.suse/supported-flag-enterprise
-+36 patches.fixes/kbuild-fix-generating-of-.symtypes-files
patches.suse/genksyms-add-override-flag.diff
patches.suse/kconfig-automate-kernel-desktop
@@ -80,7 +72,7 @@
patches.suse/reiser4-exports
patches.suse/export-release_open_intent
patches.suse/export-security_inode_permission
-+still_needed-33? patches.suse/export-sync_page_range
+ patches.fixes/reiserfs-xattr-crash-fix
########################################################
# Bug workarounds for binutils
@@ -95,7 +87,7 @@
+needs_update-33 patches.suse/sched-revert-latency-defaults
patches.suse/sched-automated-per-session-task-groups
- patches.fixes/sched-fix-autogroup-proc-interface-race
+ patches.fixes/taskstats-better-ifdef
# This is not the correct fix. The check can be done at
# cgroup exit instead with less of an impact on performance.
@@ -510,7 +502,6 @@
patches.suse/nameif-track-rename.patch
patches.fixes/tg3-fix-default-wol.patch
patches.drivers/ehea-modinfo.patch
- patches.fixes/tehuti-firmware-name
# entropy FATE##307517
patches.drivers/bnx2-entropy-source.patch
++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.9pZDTD/_old 2011-01-10 10:54:34.000000000 +0100
+++ /var/tmp/diff_new_pack.9pZDTD/_new 2011-01-10 10:54:34.000000000 +0100
@@ -1,3 +1,3 @@
-2010-12-28 07:01:24 +0100
-GIT Revision: fd7019cdfca45c51ee47e59d2d4c6cb703074e51
+2011-01-07 00:20:37 +0100
+GIT Revision: 7fc009b577fc7ab54c6c5b92a997decb3c6adc93
GIT Branch: master
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org