From: Jan-Benedict G. <jb...@he...> - 2006-11-05 08:22:15
|
fs/jfs/xattr.c | 9 +++++---- fs/splice.c | 26 ++++++++++++++++++++------ ipc/msg.c | 2 +- kernel/signal.c | 15 +++++++++++---- kernel/user.c | 11 +++++++++++ 5 files changed, 48 insertions(+), 15 deletions(-) New commits: commit 10b1fbdb0a0ca91847a534ad26d0bc250c25b74f gitweb-commit: http://www.kernel.org/git/?p=linux/kernel/git/jbglaw/vax-linux.git;a=commit;h=10b1fbdb0a0ca91847a534ad26d0bc250c25b74f gitweb-diff: http://www.kernel.org/git/?p=linux/kernel/git/jbglaw/vax-linux.git;a=commitdiff;h=10b1fbdb0a0ca91847a534ad26d0bc250c25b74f Author: Linus Torvalds <tor...@g5...> Date: Sat Nov 4 13:03:00 2006 -0800 Make sure "user->sigpending" count is in sync The previous commit (45c18b0bb579b5c1b89f8c99f1b6ffa4c586ba08, aka "Fix unlikely (but possible) race condition on task->user access") fixed a potential oops due to __sigqueue_alloc() getting its "user" pointer out of sync with switch_user(), and accessing a user pointer that had been de-allocated on another CPU. It still left another (much less serious) problem, where a concurrent __sigqueue_alloc and swich_user could cause sigqueue_alloc to do signal pending reference counting for a _different_ user than the one it then actually ended up using. No oops, but we'd end up with the wrong signal accounting. Another case of Oleg's eagle-eyes picking up the problem. This is trivially fixed by just making sure we load whichever "user" structure we decide to use (it doesn't matter _which_ one we pick, we just need to pick one) just once. Acked-by: Oleg Nesterov <ol...@tv...> Cc: Andrew Morton <ak...@os...> Cc: Ingo Molnar <mi...@el...> Signed-off-by: Linus Torvalds <tor...@os...> commit 45c18b0bb579b5c1b89f8c99f1b6ffa4c586ba08 gitweb-commit: http://www.kernel.org/git/?p=linux/kernel/git/jbglaw/vax-linux.git;a=commit;h=45c18b0bb579b5c1b89f8c99f1b6ffa4c586ba08 gitweb-diff: http://www.kernel.org/git/?p=linux/kernel/git/jbglaw/vax-linux.git;a=commitdiff;h=45c18b0bb579b5c1b89f8c99f1b6ffa4c586ba08 Author: Linus Torvalds <tor...@g5...> Date: Sat Nov 4 10:06:02 2006 -0800 Fix unlikely (but possible) race condition on task->user access There's a possible race condition when doing a "switch_uid()" from one user to another, which could race with another thread doing a signal allocation and looking at the old thread ->user pointer as it is freed. This explains an oops reported by Lukasz Trabinski: http://permalink.gmane.org/gmane.linux.kernel/462241 We fix this by delaying the (reference-counted) freeing of the user structure until the thread signal handler lock has been released, so that we know that the signal allocation has either seen the new value or has properly incremented the reference count of the old one. Race identified by Oleg Nesterov. Cc: Lukasz Trabinski <lu...@ws...> Cc: Oleg Nesterov <ol...@tv...> Cc: Andrew Morton <ak...@os...> Cc: Ingo Molnar <mi...@el...> Signed-off-by: Linus Torvalds <tor...@os...> commit 80491eb90c750fcd7d13830062f27ae9b7cc5f75 gitweb-commit: http://www.kernel.org/git/?p=linux/kernel/git/jbglaw/vax-linux.git;a=commit;h=80491eb90c750fcd7d13830062f27ae9b7cc5f75 gitweb-diff: http://www.kernel.org/git/?p=linux/kernel/git/jbglaw/vax-linux.git;a=commitdiff;h=80491eb90c750fcd7d13830062f27ae9b7cc5f75 Author: Linus Torvalds <tor...@g5...> Date: Sat Nov 4 09:55:00 2006 -0800 Revert unintentional "volatile" changes in ipc/msg.c Commit 5a06a363ef48444186f18095ae1b932dddbbfa89 ("[PATCH] ipc/msg.c: clean up coding style") breaks fakeroot on Alpha (variously hangs or oopses), according to a report by Falk Hueffner. The fact that the code seems to rely on compiler access ordering through the use of "volatile" is a pretty certain sign that the code has locking problems, and we should fix those properly and then remove the whole "volatile" entirely. But in the meantime, the movement of "volatile" was unintentional, and should be reverted. Cc: Falk Hueffner <fa...@de...> Cc: Andrew Morton <ak...@os...> Acked-by: Ingo Molnar <mi...@el...> Signed-off-by: Linus Torvalds <tor...@os...> commit ddac0d39cf437d02fde9795ae57d9c4b4c146de9 gitweb-commit: http://www.kernel.org/git/?p=linux/kernel/git/jbglaw/vax-linux.git;a=commit;h=ddac0d39cf437d02fde9795ae57d9c4b4c146de9 gitweb-diff: http://www.kernel.org/git/?p=linux/kernel/git/jbglaw/vax-linux.git;a=commitdiff;h=ddac0d39cf437d02fde9795ae57d9c4b4c146de9 Author: Jens Axboe <jen...@or...> Date: Sat Nov 4 12:49:32 2006 +0100 [PATCH] splice: fix problem introduced with inode diet After the inode slimming patch that unionised i_pipe/i_bdev/i_cdev, it's no longer enough to check for existance of ->i_pipe to verify that this is a pipe. Original patch from Eric Dumazet <da...@co...> Final solution suggested by Linus. Signed-off-by: Jens Axboe <jen...@or...> Signed-off-by: Linus Torvalds <tor...@os...> commit aaa9b971398f62ab97c1da4f7c352667eb3452c9 gitweb-commit: http://www.kernel.org/git/?p=linux/kernel/git/jbglaw/vax-linux.git;a=commit;h=aaa9b971398f62ab97c1da4f7c352667eb3452c9 gitweb-diff: http://www.kernel.org/git/?p=linux/kernel/git/jbglaw/vax-linux.git;a=commitdiff;h=aaa9b971398f62ab97c1da4f7c352667eb3452c9 Merge: a0d2db26582a67b61f883d1469e561fbdef28419 d572b87946f8c598b3cad86a7913862dd48daadb Author: Linus Torvalds <tor...@g5...> Date: Sat Nov 4 08:11:20 2006 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6: JFS: Remove redundant xattr permission checking commit d572b87946f8c598b3cad86a7913862dd48daadb gitweb-commit: http://www.kernel.org/git/?p=linux/kernel/git/jbglaw/vax-linux.git;a=commit;h=d572b87946f8c598b3cad86a7913862dd48daadb gitweb-diff: http://www.kernel.org/git/?p=linux/kernel/git/jbglaw/vax-linux.git;a=commitdiff;h=d572b87946f8c598b3cad86a7913862dd48daadb Author: Dave Kleikamp <sh...@au...> Date: Thu Nov 2 10:50:40 2006 -0600 JFS: Remove redundant xattr permission checking The vfs handles most permissions for setting and retrieving xattrs. This patch removes a redundant and wrong check so that it won't override the correct behavior which is being fixed in the vfs. Signed-off-by: Dave Kleikamp <sh...@au...> |