.rpc_resp       = &res,
                .rpc_cred       = cred,
        };
+       struct nfs4_call_sync_data data = {
+               .seq_server = server,
+               .seq_args = &args.seq_args,
+               .seq_res = &res.seq_res,
+       };
+       struct rpc_task_setup task_setup_data = {
+               .rpc_client = clnt,
+               .rpc_message = &msg,
+               .callback_ops = server->nfs_client->cl_mvops->call_sync_ops,
+               .callback_data = &data,
+               .flags = RPC_TASK_NO_ROUND_ROBIN,
+       };
        int status;
 
        nfs_fattr_init(&locations->fattr);
        locations->nlocations = 0;
 
        nfs4_init_sequence(&args.seq_args, &res.seq_res, 0, 1);
-       status = nfs4_call_sync_sequence(clnt, server, &msg,
-                                       &args.seq_args, &res.seq_res);
+       status = nfs4_call_sync_custom(&task_setup_data);
        if (status == NFS4_OK &&
            res.seq_res.sr_status_flags & SEQ4_STATUS_LEASE_MOVED)
                status = -NFS4ERR_LEASE_MOVED;