Commit 1f7977c1 authored by Trond Myklebust's avatar Trond Myklebust

NFSv4.1: Simplify the pNFS return-on-close code

Confine it to the nfs4_do_close() code.
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 7fdab069
...@@ -223,7 +223,7 @@ extern int nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred); ...@@ -223,7 +223,7 @@ extern int nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred);
extern int nfs4_destroy_clientid(struct nfs_client *clp); extern int nfs4_destroy_clientid(struct nfs_client *clp);
extern int nfs4_init_clientid(struct nfs_client *, struct rpc_cred *); extern int nfs4_init_clientid(struct nfs_client *, struct rpc_cred *);
extern int nfs41_init_clientid(struct nfs_client *, struct rpc_cred *); extern int nfs41_init_clientid(struct nfs_client *, struct rpc_cred *);
extern int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait, bool roc); extern int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait);
extern int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle); extern int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle);
extern int nfs4_proc_fs_locations(struct rpc_clnt *, struct inode *, const struct qstr *, extern int nfs4_proc_fs_locations(struct rpc_clnt *, struct inode *, const struct qstr *,
struct nfs4_fs_locations *, struct page *); struct nfs4_fs_locations *, struct page *);
......
...@@ -2204,7 +2204,7 @@ static const struct rpc_call_ops nfs4_close_ops = { ...@@ -2204,7 +2204,7 @@ static const struct rpc_call_ops nfs4_close_ops = {
* *
* NOTE: Caller must be holding the sp->so_owner semaphore! * NOTE: Caller must be holding the sp->so_owner semaphore!
*/ */
int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait, bool roc) int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait)
{ {
struct nfs_server *server = NFS_SERVER(state->inode); struct nfs_server *server = NFS_SERVER(state->inode);
struct nfs4_closedata *calldata; struct nfs4_closedata *calldata;
...@@ -2240,7 +2240,7 @@ int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait, bool roc) ...@@ -2240,7 +2240,7 @@ int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait, bool roc)
calldata->res.fattr = &calldata->fattr; calldata->res.fattr = &calldata->fattr;
calldata->res.seqid = calldata->arg.seqid; calldata->res.seqid = calldata->arg.seqid;
calldata->res.server = server; calldata->res.server = server;
calldata->roc = roc; calldata->roc = pnfs_roc(state->inode);
nfs_sb_active(calldata->inode->i_sb); nfs_sb_active(calldata->inode->i_sb);
msg.rpc_argp = &calldata->arg; msg.rpc_argp = &calldata->arg;
...@@ -2257,8 +2257,6 @@ int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait, bool roc) ...@@ -2257,8 +2257,6 @@ int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait, bool roc)
out_free_calldata: out_free_calldata:
kfree(calldata); kfree(calldata);
out: out:
if (roc)
pnfs_roc_release(state->inode);
nfs4_put_open_state(state); nfs4_put_open_state(state);
nfs4_put_state_owner(sp); nfs4_put_state_owner(sp);
return status; return status;
......
...@@ -729,11 +729,8 @@ static void __nfs4_close(struct nfs4_state *state, ...@@ -729,11 +729,8 @@ static void __nfs4_close(struct nfs4_state *state,
if (!call_close) { if (!call_close) {
nfs4_put_open_state(state); nfs4_put_open_state(state);
nfs4_put_state_owner(owner); nfs4_put_state_owner(owner);
} else { } else
bool roc = pnfs_roc(state->inode); nfs4_do_close(state, gfp_mask, wait);
nfs4_do_close(state, gfp_mask, wait, roc);
}
} }
void nfs4_close_state(struct nfs4_state *state, fmode_t fmode) void nfs4_close_state(struct nfs4_state *state, fmode_t fmode)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment