net/9p: Switch to wait_event_killable()
Because userspace gets Very Unhappy when calls like stat() and execve() return -EINTR on 9p filesystem mounts. For instance, when bash is looking in PATH for things to execute and some SIGCHLD interrupts stat(), bash can throw a spurious 'command not found' since it doesn't retry the stat(). In practice, hitting the problem is rare and needs a really slow/bogged down 9p server. Cc: stable@vger.kernel.org Signed-off-by: Tuomas Tynkkynen <tuomas@tuxera.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:

committed by
Al Viro

parent
8ee0316315
commit
9523feac27
@@ -156,8 +156,8 @@ static int p9_xen_request(struct p9_client *client, struct p9_req_t *p9_req)
|
||||
ring = &priv->rings[num];
|
||||
|
||||
again:
|
||||
while (wait_event_interruptible(ring->wq,
|
||||
p9_xen_write_todo(ring, size)) != 0)
|
||||
while (wait_event_killable(ring->wq,
|
||||
p9_xen_write_todo(ring, size)) != 0)
|
||||
;
|
||||
|
||||
spin_lock_irqsave(&ring->lock, flags);
|
||||
|
Reference in New Issue
Block a user