deleg: make use of delegation stateids
combined nfs41_lock_stateid_arg() into nfs41_open_stateid_arg(). if a delegation is present, use the delegation stateid before looking at lock/open stateids. if a delegation recall is in progress, wait on its condition variable before falling back to the open stateid made nfs41_lock_stateid_arg() static to lock.c because of its special semantics; open_to_lock_owner4 for LOCK won't accept a delegation stateid, so nfs41_delegation_to_open() is called to convert it Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
parent
02216cbf28
commit
ee71a62af2
7 changed files with 75 additions and 26 deletions
|
|
@ -93,7 +93,7 @@ static int handle_nfs41_setattr(setattr_upcall_args *args)
|
|||
nfs41_file_info info;
|
||||
int status = NO_ERROR;
|
||||
|
||||
nfs41_lock_stateid_arg(state, &stateid);
|
||||
nfs41_open_stateid_arg(state, &stateid);
|
||||
|
||||
ZeroMemory(&info, sizeof(info));
|
||||
|
||||
|
|
@ -343,7 +343,7 @@ static int handle_nfs41_set_size(setattr_upcall_args *args)
|
|||
nfs41_open_state *state = args->state;
|
||||
int status;
|
||||
|
||||
nfs41_lock_stateid_arg(state, &stateid);
|
||||
nfs41_open_stateid_arg(state, &stateid);
|
||||
|
||||
ZeroMemory(&info, sizeof(info));
|
||||
info.size = size->QuadPart;
|
||||
|
|
@ -509,7 +509,7 @@ static int handle_setexattr(nfs41_upcall *upcall)
|
|||
stateid_arg stateid;
|
||||
nfs41_file_info info;
|
||||
|
||||
nfs41_lock_stateid_arg(state, &stateid);
|
||||
nfs41_open_stateid_arg(state, &stateid);
|
||||
|
||||
ZeroMemory(&info, sizeof(info));
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue