diff options
author | Olga Kornievskaia <kolga@netapp.com> | 2019-10-08 22:34:36 +0200 |
---|---|---|
committer | Olga Kornievskaia <olga.kornievskaia@gmail.com> | 2019-10-09 18:05:56 +0200 |
commit | 0b9018b9cab9b6a30fd6758ff0745ff74efcf374 (patch) | |
tree | 700e0b52989eb63b38619c364de60c19373202bd /fs/nfs/nfs4file.c | |
parent | NFS: inter ssc open (diff) | |
download | linux-0b9018b9cab9b6a30fd6758ff0745ff74efcf374.tar.xz linux-0b9018b9cab9b6a30fd6758ff0745ff74efcf374.zip |
NFS: skip recovery of copy open on dest server
Mark the open created for the source file on the destination
server. Then if this open is going thru a recovery, then fail
the recovery as we don't need to be recoving a "fake" open.
We need to fail the ongoing READs and vfs_copy_file_range().
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4file.c')
-rw-r--r-- | fs/nfs/nfs4file.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c index 1898262a2cb1..a932fc9ca9c4 100644 --- a/fs/nfs/nfs4file.c +++ b/fs/nfs/nfs4file.c @@ -352,6 +352,7 @@ nfs42_ssc_open(struct vfsmount *ss_mnt, struct nfs_fh *src_fh, if (ctx->state == NULL) goto out_stateowner; + set_bit(NFS_SRV_SSC_COPY_STATE, &ctx->state->flags); set_bit(NFS_OPEN_STATE, &ctx->state->flags); memcpy(&ctx->state->open_stateid.other, &stateid->other, NFS4_STATEID_OTHER_SIZE); |