orangefs: delay freeing slot until cancel completes
Make cancels reuse the aborted read/write op, to make sure they do not fail on lack of memory. Don't issue a cancel unless the daemon has seen our read/write, has not replied and isn't being shut down. If cancel *is* issued, don't wait for it to complete; stash the slot in there and just have it freed when cancel is finally replied to or purged (and delay dropping the reference until then, obviously). Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Mike Marshall <hubcap@omnibond.com>
This commit is contained in:
@@ -260,14 +260,12 @@ void purge_inprogress_ops(void)
|
||||
next,
|
||||
&htable_ops_in_progress[i],
|
||||
list) {
|
||||
spin_lock(&op->lock);
|
||||
gossip_debug(GOSSIP_INIT_DEBUG,
|
||||
"pvfs2-client-core: purging in-progress op tag "
|
||||
"%llu %s\n",
|
||||
llu(op->tag),
|
||||
get_opname_string(op));
|
||||
set_op_state_purged(op);
|
||||
spin_unlock(&op->lock);
|
||||
}
|
||||
spin_unlock(&htable_ops_in_progress_lock);
|
||||
}
|
||||
|
Reference in New Issue
Block a user