Re: [PATCH 2/2] loop: use interruptible lock in ioctls
From: Matthew Wilcox <willy@infradead.org>
Date: 2018-03-28 16:57:18
Also in:
linux-fsdevel
From: Matthew Wilcox <willy@infradead.org>
Date: 2018-03-28 16:57:18
Also in:
linux-fsdevel
On Wed, Mar 28, 2018 at 03:18:52PM +0200, David Sterba wrote:
On Mon, Mar 26, 2018 at 05:04:21PM -0700, Matthew Wilcox wrote:quoted
On Mon, Mar 26, 2018 at 04:16:26PM -0700, Omar Sandoval wrote:quoted
Even after the previous patch to drop lo_ctl_mutex while calling vfs_getattr(), there are other cases where we can end up sleeping for a long time while holding lo_ctl_mutex. Let's avoid the uninterruptible sleep from the ioctls.Umm ... you want these ioctls to return -EINTR just because you resized an xterm? I think you really meant mutex_lock_killable().Does that really happen? In some cases (namely user called ioctls) I'd like to allow ctrl-c to interrupt a mutex_lock or other _interruptible actions. I'd be very surprised if resizing terminal stops the command I've just started.
Resizing an xterm causes the xterm to send its child SIGWINCH. ctrl-c will cause fatal_signal_pending() to become true, and mutex_lock_killable to return -EINTR. mutex_lock_interruptible() will return -EINTR for any signal (SIGPOLL, SIGWINCH, etc).