summaryrefslogtreecommitdiff
path: root/fs/orangefs/waitqueue.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-01-19 20:26:13 +0300
committerMike Marshall <hubcap@omnibond.com>2016-01-23 20:42:43 +0300
commitfc916da52dde736605137c7d528e2cdec7f81bca (patch)
tree35985da39f57c34b0e4075127a14ffab73d04018 /fs/orangefs/waitqueue.c
parent90e54e36c95536a476db0fe01daa556d647aca2c (diff)
downloadlinux-fc916da52dde736605137c7d528e2cdec7f81bca.tar.xz
orangefs: get rid of <censored> macros
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Diffstat (limited to 'fs/orangefs/waitqueue.c')
-rw-r--r--fs/orangefs/waitqueue.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/fs/orangefs/waitqueue.c b/fs/orangefs/waitqueue.c
index 751c3c640a52..4730baf686b2 100644
--- a/fs/orangefs/waitqueue.c
+++ b/fs/orangefs/waitqueue.c
@@ -41,6 +41,31 @@ void purge_waiting_ops(void)
spin_unlock(&orangefs_request_list_lock);
}
+static inline void
+add_op_to_request_list(struct orangefs_kernel_op_s *op)
+{
+ spin_lock(&orangefs_request_list_lock);
+ spin_lock(&op->lock);
+ set_op_state_waiting(op);
+ list_add_tail(&op->list, &orangefs_request_list);
+ spin_unlock(&orangefs_request_list_lock);
+ spin_unlock(&op->lock);
+ wake_up_interruptible(&orangefs_request_list_waitq);
+}
+
+static inline
+void add_priority_op_to_request_list(struct orangefs_kernel_op_s *op)
+{
+ spin_lock(&orangefs_request_list_lock);
+ spin_lock(&op->lock);
+ set_op_state_waiting(op);
+
+ list_add(&op->list, &orangefs_request_list);
+ spin_unlock(&orangefs_request_list_lock);
+ spin_unlock(&op->lock);
+ wake_up_interruptible(&orangefs_request_list_waitq);
+}
+
/*
* submits a ORANGEFS operation and waits for it to complete
*
@@ -252,6 +277,25 @@ retry_servicing:
return ret;
}
+static inline void remove_op_from_request_list(struct orangefs_kernel_op_s *op)
+{
+ struct list_head *tmp = NULL;
+ struct list_head *tmp_safe = NULL;
+ struct orangefs_kernel_op_s *tmp_op = NULL;
+
+ spin_lock(&orangefs_request_list_lock);
+ list_for_each_safe(tmp, tmp_safe, &orangefs_request_list) {
+ tmp_op = list_entry(tmp,
+ struct orangefs_kernel_op_s,
+ list);
+ if (tmp_op && (tmp_op == op)) {
+ list_del(&tmp_op->list);
+ break;
+ }
+ }
+ spin_unlock(&orangefs_request_list_lock);
+}
+
void orangefs_clean_up_interrupted_operation(struct orangefs_kernel_op_s *op)
{
/*