summary refs log tree commit diff
path: root/fs/orangefs/waitqueue.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-01-19 12:26:13 -0500
committerMike Marshall <hubcap@omnibond.com>2016-01-23 12:42:43 -0500
commitfc916da52dde736605137c7d528e2cdec7f81bca (patch)
tree35985da39f57c34b0e4075127a14ffab73d04018 /fs/orangefs/waitqueue.c
parent90e54e36c95536a476db0fe01daa556d647aca2c (diff)
downloadlinux-fc916da52dde736605137c7d528e2cdec7f81bca.tar.gz
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)
 {
 	/*