aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/write.c
diff options
context:
space:
mode:
authorOlga Kornievskaia <kolga@netapp.com>2022-05-25 12:12:59 -0400
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2022-05-31 17:09:30 -0400
commit118f09eda21d392e1eeb9f8a4bee044958cccf20 (patch)
tree47b903a770f78a5d1e24542eb99de2f1c72c82dd /fs/nfs/write.c
parentxprtrdma: treat all calls not a bcall when bc_serv is NULL (diff)
downloadlinux-dev-118f09eda21d392e1eeb9f8a4bee044958cccf20.tar.xz
linux-dev-118f09eda21d392e1eeb9f8a4bee044958cccf20.zip
NFSv4.1 mark qualified async operations as MOVEABLE tasks
Mark async operations such as RENAME, REMOVE, COMMIT MOVEABLE for the nfsv4.1+ sessions. Fixes: 85e39feead948 ("NFSv4.1 identify and mark RPC tasks that can move between transports") Signed-off-by: Olga Kornievskaia <kolga@netapp.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r--fs/nfs/write.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index 2f41659e232e..1c706465d090 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -1709,6 +1709,10 @@ int nfs_initiate_commit(struct rpc_clnt *clnt, struct nfs_commit_data *data,
.flags = RPC_TASK_ASYNC | flags,
.priority = priority,
};
+
+ if (nfs_server_capable(data->inode, NFS_CAP_MOVEABLE))
+ task_setup_data.flags |= RPC_TASK_MOVEABLE;
+
/* Set up the initial task struct. */
nfs_ops->commit_setup(data, &msg, &task_setup_data.rpc_client);
trace_nfs_initiate_commit(data);