|
@@ -1385,6 +1385,7 @@ static void __update_open_stateid(struct nfs4_state *state, nfs4_stateid *open_s
|
|
* Protect the call to nfs4_state_set_mode_locked and
|
|
* Protect the call to nfs4_state_set_mode_locked and
|
|
* serialise the stateid update
|
|
* serialise the stateid update
|
|
*/
|
|
*/
|
|
|
|
+ spin_lock(&state->owner->so_lock);
|
|
write_seqlock(&state->seqlock);
|
|
write_seqlock(&state->seqlock);
|
|
if (deleg_stateid != NULL) {
|
|
if (deleg_stateid != NULL) {
|
|
nfs4_stateid_copy(&state->stateid, deleg_stateid);
|
|
nfs4_stateid_copy(&state->stateid, deleg_stateid);
|
|
@@ -1393,7 +1394,6 @@ static void __update_open_stateid(struct nfs4_state *state, nfs4_stateid *open_s
|
|
if (open_stateid != NULL)
|
|
if (open_stateid != NULL)
|
|
nfs_set_open_stateid_locked(state, open_stateid, fmode);
|
|
nfs_set_open_stateid_locked(state, open_stateid, fmode);
|
|
write_sequnlock(&state->seqlock);
|
|
write_sequnlock(&state->seqlock);
|
|
- spin_lock(&state->owner->so_lock);
|
|
|
|
update_open_stateflags(state, fmode);
|
|
update_open_stateflags(state, fmode);
|
|
spin_unlock(&state->owner->so_lock);
|
|
spin_unlock(&state->owner->so_lock);
|
|
}
|
|
}
|