search_binary_handler() で何も考えずに set_fs(USER_DS); してるから
init起動するときに、最初のパスに目的の実行ファイルがないとその後トチ狂った状態に
突入してしまうぜ-。2.6.12にはすでに存在してるバグだぜーとか議論している

んで、Andrew Morton が bitkeeperからimport した treeは色々コミットが混ざってて
ログが見にくくてしかたがないとか愚痴ってるとLinusが颯爽と登場。
「tglxのlinux-history treeを使えよ。」とか言い出すわけだ。

おいおい、いつの間にそんなの出来たんだよ。
しかし、これは便利




From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 7 Jun 2011 19:00:24 -0700
Message-ID: <BANLkTinwMyVsR-pvimeVkcqQrCuNDK4zKw@mail.gmail.com>
Subject: Re: [PATCH] init: use KERNEL_DS when trying to start init process

On Mon, Jun 6, 2011 at 4:12 PM, Andrew Morton wrote:
>
> I tried to work out how that set_fs() got there, in the historical git
> tree but it's part of 14592fa9:
>
> 73 files changed, 963 insertions(+), 798 deletions(-)
>
> which is pretty useless (what's up with that?)

Use tglx's more complete linux-history tree:

http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=summary

instead of the bkcvs import tree.

That said, that commit (it's commit ID 4095b99c09e3d in tglx's tree)
predates the "real" BK history too: it's part of the (limited) 2.4.x
history that was imported from the release patches into BK at the
beginning of the use of BK. So at that point we didn't do indivual
commits, it's just the import of the v2.4.3.7 -> v2.4.3.8 patch.

But yeah, it's old and crufty. And I agree that usually the correct
fix is to remove the set_fs() calls entirely.

Linus