uprobes: Change uprobe_mmap() to ignore the errors but check fatal_signal_pending()
authorOleg Nesterov <oleg@redhat.com>
Mon, 6 Aug 2012 12:49:56 +0000 (14:49 +0200)
committerOleg Nesterov <oleg@redhat.com>
Tue, 28 Aug 2012 16:21:17 +0000 (18:21 +0200)
commit5e5be71ab3fd8bd2076606923791ece1634c199c
tree3bfa62096792ec812d8b4e3aa3caa6b5662384da
parentf1a45d023193f7d8e55e384090b645d609325393
uprobes: Change uprobe_mmap() to ignore the errors but check fatal_signal_pending()

Once install_breakpoint() fails uprobe_mmap() "ignores" all other
uprobes and returns the error.

It was never really needed to to stop after the first error, and
in fact it was always wrong at least in -ENOTSUPP case.

Change uprobe_mmap() to ignore the errors and always return 0.
This is not what we want in the long term, but until we teach
the callers to handle the failure it would be better to remove
the pointless complications. And this doesn't look too bad, the
only "reasonable" error is ENOMEM but in this case the caller
should be oom-killed in the likely case or the system has more
serious problems.

However it makes sense to stop if fatal_signal_pending() == T.
In particular this helps if the task was oom-killed.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
kernel/events/uprobes.c