forked from luck/tmp_suning_uos_patched
Merge branch 'bugfixes'
* bugfixes: NFSv4: Return delegations synchronously in evict_inode SUNRPC: Fix a regression when reconnecting NFS: remount with security change should return EINVAL nfs: do not export discarded symbols NFSv4.1: don't export static symbol
This commit is contained in:
commit
21330b6670
|
@ -514,7 +514,7 @@ void nfs_inode_return_delegation_noreclaim(struct inode *inode)
|
|||
|
||||
delegation = nfs_inode_detach_delegation(inode);
|
||||
if (delegation != NULL)
|
||||
nfs_do_return_delegation(inode, delegation, 0);
|
||||
nfs_do_return_delegation(inode, delegation, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1906,7 +1906,6 @@ static void pnfs_writehdr_free(struct nfs_pgio_header *hdr)
|
|||
pnfs_put_lseg(hdr->lseg);
|
||||
nfs_pgio_header_free(hdr);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(pnfs_writehdr_free);
|
||||
|
||||
int
|
||||
pnfs_generic_pg_writepages(struct nfs_pageio_descriptor *desc)
|
||||
|
@ -2036,7 +2035,6 @@ static void pnfs_readhdr_free(struct nfs_pgio_header *hdr)
|
|||
pnfs_put_lseg(hdr->lseg);
|
||||
nfs_pgio_header_free(hdr);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(pnfs_readhdr_free);
|
||||
|
||||
int
|
||||
pnfs_generic_pg_readpages(struct nfs_pageio_descriptor *desc)
|
||||
|
|
|
@ -561,7 +561,7 @@ static bool load_v3_ds_connect(void)
|
|||
return(get_v3_ds_connect != NULL);
|
||||
}
|
||||
|
||||
void __exit nfs4_pnfs_v3_ds_connect_unload(void)
|
||||
void nfs4_pnfs_v3_ds_connect_unload(void)
|
||||
{
|
||||
if (get_v3_ds_connect) {
|
||||
symbol_put(nfs3_set_ds_client);
|
||||
|
|
|
@ -2192,7 +2192,7 @@ nfs_compare_remount_data(struct nfs_server *nfss,
|
|||
data->version != nfss->nfs_client->rpc_ops->version ||
|
||||
data->minorversion != nfss->nfs_client->cl_minorversion ||
|
||||
data->retrans != nfss->client->cl_timeout->to_retries ||
|
||||
data->selected_flavor != nfss->client->cl_auth->au_flavor ||
|
||||
!nfs_auth_info_match(&data->auth_info, nfss->client->cl_auth->au_flavor) ||
|
||||
data->acregmin != nfss->acregmin / HZ ||
|
||||
data->acregmax != nfss->acregmax / HZ ||
|
||||
data->acdirmin != nfss->acdirmin / HZ ||
|
||||
|
@ -2240,7 +2240,6 @@ nfs_remount(struct super_block *sb, int *flags, char *raw_data)
|
|||
data->wsize = nfss->wsize;
|
||||
data->retrans = nfss->client->cl_timeout->to_retries;
|
||||
data->selected_flavor = nfss->client->cl_auth->au_flavor;
|
||||
data->auth_info = nfss->auth_info;
|
||||
data->acregmin = nfss->acregmin / HZ;
|
||||
data->acregmax = nfss->acregmax / HZ;
|
||||
data->acdirmin = nfss->acdirmin / HZ;
|
||||
|
|
|
@ -326,6 +326,15 @@ static void __xprt_lock_write_next_cong(struct rpc_xprt *xprt)
|
|||
xprt_clear_locked(xprt);
|
||||
}
|
||||
|
||||
static void xprt_task_clear_bytes_sent(struct rpc_task *task)
|
||||
{
|
||||
if (task != NULL) {
|
||||
struct rpc_rqst *req = task->tk_rqstp;
|
||||
if (req != NULL)
|
||||
req->rq_bytes_sent = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* xprt_release_xprt - allow other requests to use a transport
|
||||
* @xprt: transport with other tasks potentially waiting
|
||||
|
@ -336,11 +345,7 @@ static void __xprt_lock_write_next_cong(struct rpc_xprt *xprt)
|
|||
void xprt_release_xprt(struct rpc_xprt *xprt, struct rpc_task *task)
|
||||
{
|
||||
if (xprt->snd_task == task) {
|
||||
if (task != NULL) {
|
||||
struct rpc_rqst *req = task->tk_rqstp;
|
||||
if (req != NULL)
|
||||
req->rq_bytes_sent = 0;
|
||||
}
|
||||
xprt_task_clear_bytes_sent(task);
|
||||
xprt_clear_locked(xprt);
|
||||
__xprt_lock_write_next(xprt);
|
||||
}
|
||||
|
@ -358,11 +363,7 @@ EXPORT_SYMBOL_GPL(xprt_release_xprt);
|
|||
void xprt_release_xprt_cong(struct rpc_xprt *xprt, struct rpc_task *task)
|
||||
{
|
||||
if (xprt->snd_task == task) {
|
||||
if (task != NULL) {
|
||||
struct rpc_rqst *req = task->tk_rqstp;
|
||||
if (req != NULL)
|
||||
req->rq_bytes_sent = 0;
|
||||
}
|
||||
xprt_task_clear_bytes_sent(task);
|
||||
xprt_clear_locked(xprt);
|
||||
__xprt_lock_write_next_cong(xprt);
|
||||
}
|
||||
|
@ -700,6 +701,7 @@ bool xprt_lock_connect(struct rpc_xprt *xprt,
|
|||
goto out;
|
||||
if (xprt->snd_task != task)
|
||||
goto out;
|
||||
xprt_task_clear_bytes_sent(task);
|
||||
xprt->snd_task = cookie;
|
||||
ret = true;
|
||||
out:
|
||||
|
|
Loading…
Reference in New Issue
Block a user