Commit d92f7644 authored by Sean Hefty's avatar Sean Hefty Committed by Roland Dreier

RDMA/ucma: Simplify ucma_get_event()

Use wait_event_interruptible() instead of a more complicated
open-coded equivalent.
Signed-off-by: default avatarSean Hefty <sean.hefty@intel.com>
parent 30c00986
...@@ -306,26 +306,18 @@ static ssize_t ucma_get_event(struct ucma_file *file, const char __user *inbuf, ...@@ -306,26 +306,18 @@ static ssize_t ucma_get_event(struct ucma_file *file, const char __user *inbuf,
mutex_lock(&file->mut); mutex_lock(&file->mut);
while (list_empty(&file->event_list)) { while (list_empty(&file->event_list)) {
if (file->filp->f_flags & O_NONBLOCK) { mutex_unlock(&file->mut);
ret = -EAGAIN;
break;
}
if (signal_pending(current)) { if (file->filp->f_flags & O_NONBLOCK)
ret = -ERESTARTSYS; return -EAGAIN;
break;
} if (wait_event_interruptible(file->poll_wait,
!list_empty(&file->event_list)))
return -ERESTARTSYS;
prepare_to_wait(&file->poll_wait, &wait, TASK_INTERRUPTIBLE);
mutex_unlock(&file->mut);
schedule();
mutex_lock(&file->mut); mutex_lock(&file->mut);
finish_wait(&file->poll_wait, &wait);
} }
if (ret)
goto done;
uevent = list_entry(file->event_list.next, struct ucma_event, list); uevent = list_entry(file->event_list.next, struct ucma_event, list);
if (uevent->resp.event == RDMA_CM_EVENT_CONNECT_REQUEST) { if (uevent->resp.event == RDMA_CM_EVENT_CONNECT_REQUEST) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment