[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Nbd] NBD Super Size io operations



On Mon, Apr 8, 2013 at 4:17 PM, Paul Clements <paul.clements@...856...> wrote:
> On Sun, Apr 7, 2013 at 5:59 PM, Michal Belczyk <belczyk@...1274...> wrote:
>
>> Paul, is there a chance for this and _the_ ERESTARTSYS patches got into
>> 3.9?
>
> You were copied on the submit to Andrew for the max_sectors change.
> That one's still pending.
>
> The ERESTARTSYS one we were discussing here. I don't think that just
> restarting the wait_event when we get a signal is the right approach.
> It wouldn't allow the signal to be handled in all cases -- it happens
> to work in the SIGCHLD case that we saw, since we don't really need to
> handle that. But if nbd-client is sent a SIGKILL, for instance, it
> should die. Just restarting the wait_event_interruptible doesn't allow
> that. I think masking signals before we enter the NBD_DO_IT ioctl is
> probably a better approach.

If you do something like the following in nbd-client just before the
call to NBD_DO_IT, does this fix the problem:


+       sigfillset(&block);
+       sigdelset(&block, SIGKILL);
+       sigprocmask(SIG_SETMASK, &block, &old);
         if (ioctl(nbd, NBD_DO_IT) < 0)

(block and old are sigset_t).

Could anyone who's seeing the problem test that?

Thanks,
Paul



Reply to: