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:
parent
1906610544
commit
222c1bf020
7 changed files with 141 additions and 56 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue