diff options
author | Peng Tao <tao.peng@primarydata.com> | 2014-06-10 17:24:15 -0400 |
---|---|---|
committer | Tom Haynes <loghyr@primarydata.com> | 2015-02-03 14:06:36 -0500 |
commit | cb04ad2a2bc8978e69f7f582ca2869909c4e0571 (patch) | |
tree | 4c148addfa1f00a48ec42a7e816cfd2883a87c8a /fs/nfs/nfs4proc.c | |
parent | c36aae9ad95afa2f9a9e9109d989c21af221fabd (diff) |
nfs4: pass slot table to nfs40_setup_sequence
flexclient needs this as there is no nfs_server to DS connection.
Signed-off-by: Peng Tao <tao.peng@primarydata.com>
Signed-off-by: Tom Haynes <Thomas.Haynes@primarydata.com>
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r-- | fs/nfs/nfs4proc.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index c347705b0161..e98dda7180c1 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -495,12 +495,11 @@ static void nfs4_set_sequence_privileged(struct nfs4_sequence_args *args) | |||
495 | args->sa_privileged = 1; | 495 | args->sa_privileged = 1; |
496 | } | 496 | } |
497 | 497 | ||
498 | static int nfs40_setup_sequence(const struct nfs_server *server, | 498 | int nfs40_setup_sequence(struct nfs4_slot_table *tbl, |
499 | struct nfs4_sequence_args *args, | 499 | struct nfs4_sequence_args *args, |
500 | struct nfs4_sequence_res *res, | 500 | struct nfs4_sequence_res *res, |
501 | struct rpc_task *task) | 501 | struct rpc_task *task) |
502 | { | 502 | { |
503 | struct nfs4_slot_table *tbl = server->nfs_client->cl_slot_tbl; | ||
504 | struct nfs4_slot *slot; | 503 | struct nfs4_slot *slot; |
505 | 504 | ||
506 | /* slot already allocated? */ | 505 | /* slot already allocated? */ |
@@ -535,6 +534,7 @@ out_sleep: | |||
535 | spin_unlock(&tbl->slot_tbl_lock); | 534 | spin_unlock(&tbl->slot_tbl_lock); |
536 | return -EAGAIN; | 535 | return -EAGAIN; |
537 | } | 536 | } |
537 | EXPORT_SYMBOL_GPL(nfs40_setup_sequence); | ||
538 | 538 | ||
539 | static int nfs40_sequence_done(struct rpc_task *task, | 539 | static int nfs40_sequence_done(struct rpc_task *task, |
540 | struct nfs4_sequence_res *res) | 540 | struct nfs4_sequence_res *res) |
@@ -777,7 +777,8 @@ static int nfs4_setup_sequence(const struct nfs_server *server, | |||
777 | int ret = 0; | 777 | int ret = 0; |
778 | 778 | ||
779 | if (!session) | 779 | if (!session) |
780 | return nfs40_setup_sequence(server, args, res, task); | 780 | return nfs40_setup_sequence(server->nfs_client->cl_slot_tbl, |
781 | args, res, task); | ||
781 | 782 | ||
782 | dprintk("--> %s clp %p session %p sr_slot %u\n", | 783 | dprintk("--> %s clp %p session %p sr_slot %u\n", |
783 | __func__, session->clp, session, res->sr_slot ? | 784 | __func__, session->clp, session, res->sr_slot ? |
@@ -818,7 +819,8 @@ static int nfs4_setup_sequence(const struct nfs_server *server, | |||
818 | struct nfs4_sequence_res *res, | 819 | struct nfs4_sequence_res *res, |
819 | struct rpc_task *task) | 820 | struct rpc_task *task) |
820 | { | 821 | { |
821 | return nfs40_setup_sequence(server, args, res, task); | 822 | return nfs40_setup_sequence(server->nfs_client->cl_slot_tbl, |
823 | args, res, task); | ||
822 | } | 824 | } |
823 | 825 | ||
824 | static int nfs4_sequence_done(struct rpc_task *task, | 826 | static int nfs4_sequence_done(struct rpc_task *task, |
@@ -1679,8 +1681,8 @@ static void nfs4_open_confirm_prepare(struct rpc_task *task, void *calldata) | |||
1679 | { | 1681 | { |
1680 | struct nfs4_opendata *data = calldata; | 1682 | struct nfs4_opendata *data = calldata; |
1681 | 1683 | ||
1682 | nfs40_setup_sequence(data->o_arg.server, &data->c_arg.seq_args, | 1684 | nfs40_setup_sequence(data->o_arg.server->nfs_client->cl_slot_tbl, |
1683 | &data->c_res.seq_res, task); | 1685 | &data->c_arg.seq_args, &data->c_res.seq_res, task); |
1684 | } | 1686 | } |
1685 | 1687 | ||
1686 | static void nfs4_open_confirm_done(struct rpc_task *task, void *calldata) | 1688 | static void nfs4_open_confirm_done(struct rpc_task *task, void *calldata) |
@@ -5974,8 +5976,8 @@ static void nfs4_release_lockowner_prepare(struct rpc_task *task, void *calldata | |||
5974 | { | 5976 | { |
5975 | struct nfs_release_lockowner_data *data = calldata; | 5977 | struct nfs_release_lockowner_data *data = calldata; |
5976 | struct nfs_server *server = data->server; | 5978 | struct nfs_server *server = data->server; |
5977 | nfs40_setup_sequence(server, &data->args.seq_args, | 5979 | nfs40_setup_sequence(server->nfs_client->cl_slot_tbl, |
5978 | &data->res.seq_res, task); | 5980 | &data->args.seq_args, &data->res.seq_res, task); |
5979 | data->args.lock_owner.clientid = server->nfs_client->cl_clientid; | 5981 | data->args.lock_owner.clientid = server->nfs_client->cl_clientid; |
5980 | data->timestamp = jiffies; | 5982 | data->timestamp = jiffies; |
5981 | } | 5983 | } |