From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932337AbWGDTDd (ORCPT ); Tue, 4 Jul 2006 15:03:33 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932339AbWGDTDd (ORCPT ); Tue, 4 Jul 2006 15:03:33 -0400 Received: from dbl.q-ag.de ([213.172.117.3]:52171 "EHLO dbl.q-ag.de") by vger.kernel.org with ESMTP id S932337AbWGDTDd (ORCPT ); Tue, 4 Jul 2006 15:03:33 -0400 Message-ID: <44AABB31.8060605@colorfullife.com> Date: Tue, 04 Jul 2006 21:02:09 +0200 From: Manfred Spraul User-Agent: Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.7.13) Gecko/20060501 Fedora/1.7.13-1.1.fc5 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Michael Kerrisk CC: linux-kernel@vger.kernel.org, tytso@mit.edu, torvalds@osdl.com, drepper@redhat.com, Eric Paire , Paul Eggert , roland@redhat.com, Robert Love , Michael Kerrisk , mtk-lkml@gmx.net Subject: Re: Strange Linux behaviour with blocking syscalls and stop signals+SIGCONT References: <44A92DC8.9000401@gmx.net> In-Reply-To: <44A92DC8.9000401@gmx.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Michael Kerrisk wrote: > c) The Linux baehviour has been arbitrary across kernel versions and > system calls. In particular, the following system calls showed this > behaviour in earlier kernel versions, but then the behaviour was > changed without forewarning and (AFAIK) without subsequent complaint: > > [snip] > > * msgsnd() and msgrcv() in kernels before 2.6.9. > That was my change - and I even forgot to mention it in the changelog (hiding in shame): I replaced -EINTR with -ERESTARTNOHAND. That hides signals that are handled in the kernel from user space - probably what we want. Michael: Could you replace the EINTR in inotify.c with ERESTARTNOHAND? That should prevent the kernel from showing the signal to user space. I'd guess that most instances of EINTR are wrong, except in device drivers: It means we return from the syscall, even if the signal handler wants to restart the system call. -- Manfred