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>
diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h
index 3ceeeae..de898bd 100644
--- a/fs/orangefs/orangefs-kernel.h
+++ b/fs/orangefs/orangefs-kernel.h
@@ -202,7 +202,7 @@
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 @@
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 @@
put_cancel(op);
} else {
op->op_state |= OP_VFS_STATE_PURGED;
- wake_up_interruptible(&op->waitq);
+ complete(&op->waitq);
spin_unlock(&op->lock);
}
}