dlm: make posix locks interruptible
authorEric Ren <zren@suse.com>
Wed, 14 Oct 2015 15:28:26 +0000 (23:28 +0800)
committerDavid Teigland <teigland@redhat.com>
Tue, 3 Nov 2015 16:38:22 +0000 (10:38 -0600)
Replace wait_event_killable with wait_event_interruptible
so that a program waiting for a posix lock can be
interrupted by a signal.  With the killable version,
a program was not interruptible by a signal if it
had a signal handler set for it, overriding the default
action of terminating the process.

Signed-off-by: Eric Ren <zren@suse.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/plock.c

index 5532f097f6dac5fddbfde8030ba981fe417b6877..88f103650448846c6493410f9a4822af2b8fd48e 100644 (file)
@@ -145,7 +145,7 @@ int dlm_posix_lock(dlm_lockspace_t *lockspace, u64 number, struct file *file,
        send_op(op);
 
        if (xop->callback == NULL) {
-               rv = wait_event_killable(recv_wq, (op->done != 0));
+               rv = wait_event_interruptible(recv_wq, (op->done != 0));
                if (rv == -ERESTARTSYS) {
                        log_debug(ls, "dlm_posix_lock: wait killed %llx",
                                  (unsigned long long)number);