|
@@ -1777,6 +1777,9 @@ int nfs4_open_delegation_recall(struct nfs_open_context *ctx,
|
|
if (IS_ERR(opendata))
|
|
if (IS_ERR(opendata))
|
|
return PTR_ERR(opendata);
|
|
return PTR_ERR(opendata);
|
|
nfs4_stateid_copy(&opendata->o_arg.u.delegation, stateid);
|
|
nfs4_stateid_copy(&opendata->o_arg.u.delegation, stateid);
|
|
|
|
+ write_seqlock(&state->seqlock);
|
|
|
|
+ nfs4_stateid_copy(&state->stateid, &state->open_stateid);
|
|
|
|
+ write_sequnlock(&state->seqlock);
|
|
clear_bit(NFS_DELEGATED_STATE, &state->flags);
|
|
clear_bit(NFS_DELEGATED_STATE, &state->flags);
|
|
switch (type & (FMODE_READ|FMODE_WRITE)) {
|
|
switch (type & (FMODE_READ|FMODE_WRITE)) {
|
|
case FMODE_READ|FMODE_WRITE:
|
|
case FMODE_READ|FMODE_WRITE:
|