orangefs: get rid of loop in wait_for_matching_downcall()

turn op->waitq into struct completion...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
This commit is contained in:
Al Viro
2016-02-13 10:15:22 -05:00
committed by Mike Marshall
parent cf22644a0e
commit d2d87a3b6d
3 changed files with 50 additions and 89 deletions

View File

@@ -202,7 +202,7 @@ struct orangefs_kernel_op_s {
struct orangefs_upcall_s upcall;
struct orangefs_downcall_s downcall;
wait_queue_head_t waitq;
struct completion waitq;
spinlock_t lock;
struct completion done;
@@ -222,7 +222,7 @@ struct orangefs_kernel_op_s {
static inline void set_op_state_serviced(struct orangefs_kernel_op_s *op)
{
op->op_state = OP_VFS_STATE_SERVICED;
wake_up_interruptible(&op->waitq);
complete(&op->waitq);
}
#define op_state_waiting(op) ((op)->op_state & OP_VFS_STATE_WAITING)
@@ -266,7 +266,7 @@ static inline void set_op_state_purged(struct orangefs_kernel_op_s *op)
put_cancel(op);
} else {
op->op_state |= OP_VFS_STATE_PURGED;
wake_up_interruptible(&op->waitq);
complete(&op->waitq);
spin_unlock(&op->lock);
}
}