Loading fs/orangefs/devorangefs-req.c +4 −9 Original line number Diff line number Diff line Loading @@ -415,8 +415,6 @@ static ssize_t orangefs_devreq_write_iter(struct kiocb *iocb, set_op_state_serviced(op); spin_unlock(&op->lock); wake_up_interruptible(&op->waitq); while (1) { spin_lock(&op->lock); prepare_to_wait_exclusive( Loading Loading @@ -464,17 +462,14 @@ static ssize_t orangefs_devreq_write_iter(struct kiocb *iocb, } else { /* * tell the vfs op waiting on a waitqueue that * this op is done */ spin_lock(&op->lock); set_op_state_serviced(op); spin_unlock(&op->lock); /* * this op is done - * for every other operation (i.e. non-I/O), we need to * wake up the callers for downcall completion * notification */ wake_up_interruptible(&op->waitq); spin_lock(&op->lock); set_op_state_serviced(op); spin_unlock(&op->lock); } out: return ret; Loading fs/orangefs/orangefs-kernel.h +10 −2 Original line number Diff line number Diff line Loading @@ -105,8 +105,16 @@ enum orangefs_vfs_op_states { #define set_op_state_waiting(op) ((op)->op_state = OP_VFS_STATE_WAITING) #define set_op_state_inprogress(op) ((op)->op_state = OP_VFS_STATE_INPROGR) #define set_op_state_serviced(op) ((op)->op_state = OP_VFS_STATE_SERVICED) #define set_op_state_purged(op) ((op)->op_state |= OP_VFS_STATE_PURGED) 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); } static inline void set_op_state_purged(struct orangefs_kernel_op_s *op) { op->op_state |= OP_VFS_STATE_PURGED; wake_up_interruptible(&op->waitq); } #define op_state_waiting(op) ((op)->op_state & OP_VFS_STATE_WAITING) #define op_state_in_progress(op) ((op)->op_state & OP_VFS_STATE_INPROGR) Loading fs/orangefs/orangefs-mod.c +0 −1 Original line number Diff line number Diff line Loading @@ -303,7 +303,6 @@ void purge_inprogress_ops(void) get_opname_string(op)); set_op_state_purged(op); spin_unlock(&op->lock); wake_up_interruptible(&op->waitq); } } } Loading fs/orangefs/waitqueue.c +0 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,6 @@ void purge_waiting_ops(void) spin_lock(&op->lock); set_op_state_purged(op); spin_unlock(&op->lock); wake_up_interruptible(&op->waitq); } spin_unlock(&orangefs_request_list_lock); } Loading Loading
fs/orangefs/devorangefs-req.c +4 −9 Original line number Diff line number Diff line Loading @@ -415,8 +415,6 @@ static ssize_t orangefs_devreq_write_iter(struct kiocb *iocb, set_op_state_serviced(op); spin_unlock(&op->lock); wake_up_interruptible(&op->waitq); while (1) { spin_lock(&op->lock); prepare_to_wait_exclusive( Loading Loading @@ -464,17 +462,14 @@ static ssize_t orangefs_devreq_write_iter(struct kiocb *iocb, } else { /* * tell the vfs op waiting on a waitqueue that * this op is done */ spin_lock(&op->lock); set_op_state_serviced(op); spin_unlock(&op->lock); /* * this op is done - * for every other operation (i.e. non-I/O), we need to * wake up the callers for downcall completion * notification */ wake_up_interruptible(&op->waitq); spin_lock(&op->lock); set_op_state_serviced(op); spin_unlock(&op->lock); } out: return ret; Loading
fs/orangefs/orangefs-kernel.h +10 −2 Original line number Diff line number Diff line Loading @@ -105,8 +105,16 @@ enum orangefs_vfs_op_states { #define set_op_state_waiting(op) ((op)->op_state = OP_VFS_STATE_WAITING) #define set_op_state_inprogress(op) ((op)->op_state = OP_VFS_STATE_INPROGR) #define set_op_state_serviced(op) ((op)->op_state = OP_VFS_STATE_SERVICED) #define set_op_state_purged(op) ((op)->op_state |= OP_VFS_STATE_PURGED) 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); } static inline void set_op_state_purged(struct orangefs_kernel_op_s *op) { op->op_state |= OP_VFS_STATE_PURGED; wake_up_interruptible(&op->waitq); } #define op_state_waiting(op) ((op)->op_state & OP_VFS_STATE_WAITING) #define op_state_in_progress(op) ((op)->op_state & OP_VFS_STATE_INPROGR) Loading
fs/orangefs/orangefs-mod.c +0 −1 Original line number Diff line number Diff line Loading @@ -303,7 +303,6 @@ void purge_inprogress_ops(void) get_opname_string(op)); set_op_state_purged(op); spin_unlock(&op->lock); wake_up_interruptible(&op->waitq); } } } Loading
fs/orangefs/waitqueue.c +0 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,6 @@ void purge_waiting_ops(void) spin_lock(&op->lock); set_op_state_purged(op); spin_unlock(&op->lock); wake_up_interruptible(&op->waitq); } spin_unlock(&orangefs_request_list_lock); } Loading