• M
    md: don't use flush_signals in userspace processes · f9c79bc0
    Mikulas Patocka 提交于
    The function flush_signals clears all pending signals for the process. It
    may be used by kernel threads when we need to prepare a kernel thread for
    responding to signals. However using this function for an userspaces
    processes is incorrect - clearing signals without the program expecting it
    can cause misbehavior.
    
    The raid1 and raid5 code uses flush_signals in its request routine because
    it wants to prepare for an interruptible wait. This patch drops
    flush_signals and uses sigprocmask instead to block all signals (including
    SIGKILL) around the schedule() call. The signals are not lost, but the
    schedule() call won't respond to them.
    Signed-off-by: NMikulas Patocka <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Acked-by: NNeilBrown <neilb@suse.com>
    Signed-off-by: NShaohua Li <shli@fb.com>
    f9c79bc0
raid5.c 238.2 KB