diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-01-19 12:26:13 -0500 |
---|---|---|
committer | Mike Marshall <hubcap@omnibond.com> | 2016-01-23 12:42:43 -0500 |
commit | fc916da52dde736605137c7d528e2cdec7f81bca (patch) | |
tree | 35985da39f57c34b0e4075127a14ffab73d04018 /fs/orangefs/waitqueue.c | |
parent | 90e54e36c95536a476db0fe01daa556d647aca2c (diff) | |
download | lwn-fc916da52dde736605137c7d528e2cdec7f81bca.tar.gz lwn-fc916da52dde736605137c7d528e2cdec7f81bca.zip |
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.c | 44 |
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) { /* |