if ORANGEFS_VFS_OP_FILE_IO request had been given up, don't bother waiting
... we are not going to get woken up anyway, so it's just going to time out and whine. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Mike Marshall <hubcap@omnibond.com>
This commit is contained in:
@@ -418,7 +418,10 @@ wakeup:
|
|||||||
* that this op is done
|
* that this op is done
|
||||||
*/
|
*/
|
||||||
spin_lock(&op->lock);
|
spin_lock(&op->lock);
|
||||||
if (!op_state_given_up(op))
|
if (unlikely(op_state_given_up(op))) {
|
||||||
|
spin_unlock(&op->lock);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
set_op_state_serviced(op);
|
set_op_state_serviced(op);
|
||||||
spin_unlock(&op->lock);
|
spin_unlock(&op->lock);
|
||||||
|
|
||||||
@@ -433,22 +436,19 @@ wakeup:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
spin_unlock(&op->lock);
|
spin_unlock(&op->lock);
|
||||||
|
if (unlikely(signal_pending(current))) {
|
||||||
|
gossip_debug(GOSSIP_DEV_DEBUG,
|
||||||
|
"%s: signal on I/O wait, aborting\n",
|
||||||
|
__func__);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (!signal_pending(current)) {
|
if (!schedule_timeout(op_timeout_secs * HZ)) {
|
||||||
int timeout = op_timeout_secs * HZ;
|
|
||||||
if (!schedule_timeout(timeout)) {
|
|
||||||
gossip_debug(GOSSIP_DEV_DEBUG,
|
gossip_debug(GOSSIP_DEV_DEBUG,
|
||||||
"%s: timed out.\n",
|
"%s: timed out.\n",
|
||||||
__func__);
|
__func__);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
gossip_debug(GOSSIP_DEV_DEBUG,
|
|
||||||
"%s: signal on I/O wait, aborting\n",
|
|
||||||
__func__);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_lock(&op->lock);
|
spin_lock(&op->lock);
|
||||||
|
Reference in New Issue
Block a user