recovery: remember byte-range locks and reclaim during recovery

nfs41_open_state maintains a list of outstanding byte-range locks by calling open_lock_add() and open_lock_remove() in lock.c

during client state recovery, after reclaiming each OPEN stateid, send LOCK requests with reclaim=TRUE for each lock it owns, and update the open's lock stateid with the result

added 'bool_t reclaim' argument to nfs41_lock(); when set, compound_encode_send_decode() is called with try_recovery=FALSE to avoid recursive recovery

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
Casey Bodley 2010-11-18 15:11:36 -05:00 committed by unknown
parent 1906610544
commit 222c1bf020
7 changed files with 141 additions and 56 deletions

View file

@ -551,7 +551,7 @@ enum pnfs_status pnfs_open_state_layout(
goto out;
}
nfs41_open_stateid_arg(state, &stateid);
nfs41_lock_stateid_arg(state, &stateid);
/* make sure the layout can satisfy this request */
status = file_layout_get(layout, session, &state->file,