Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
8f975242
Commit
8f975242
authored
Apr 01, 2009
by
Benny Halevy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
nfs41: create a svc_xprt for nfs41 callback thread and use for incoming callbacks
Signed-off-by:
Benny Halevy
<
bhalevy@panasas.com
>
parent
9c9f3f5f
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
1 deletion
+17
-1
fs/nfs/callback.c
fs/nfs/callback.c
+16
-1
net/sunrpc/svc.c
net/sunrpc/svc.c
+1
-0
No files found.
fs/nfs/callback.c
View file @
8f975242
...
@@ -185,16 +185,31 @@ nfs41_callback_svc(void *vrqstp)
...
@@ -185,16 +185,31 @@ nfs41_callback_svc(void *vrqstp)
struct
svc_rqst
*
struct
svc_rqst
*
nfs41_callback_up
(
struct
svc_serv
*
serv
,
struct
rpc_xprt
*
xprt
)
nfs41_callback_up
(
struct
svc_serv
*
serv
,
struct
rpc_xprt
*
xprt
)
{
{
struct
svc_xprt
*
bc_xprt
;
struct
svc_rqst
*
rqstp
=
ERR_PTR
(
-
ENOMEM
);
dprintk
(
"--> %s
\n
"
,
__func__
);
/* Create a svc_sock for the service */
bc_xprt
=
svc_sock_create
(
serv
,
xprt
->
prot
);
if
(
!
bc_xprt
)
goto
out
;
/*
/*
* Save the svc_serv in the transport so that it can
* Save the svc_serv in the transport so that it can
* be referenced when the session backchannel is initialized
* be referenced when the session backchannel is initialized
*/
*/
serv
->
bc_xprt
=
bc_xprt
;
xprt
->
bc_serv
=
serv
;
xprt
->
bc_serv
=
serv
;
INIT_LIST_HEAD
(
&
serv
->
sv_cb_list
);
INIT_LIST_HEAD
(
&
serv
->
sv_cb_list
);
spin_lock_init
(
&
serv
->
sv_cb_lock
);
spin_lock_init
(
&
serv
->
sv_cb_lock
);
init_waitqueue_head
(
&
serv
->
sv_cb_waitq
);
init_waitqueue_head
(
&
serv
->
sv_cb_waitq
);
return
svc_prepare_thread
(
serv
,
&
serv
->
sv_pools
[
0
]);
rqstp
=
svc_prepare_thread
(
serv
,
&
serv
->
sv_pools
[
0
]);
if
(
IS_ERR
(
rqstp
))
svc_sock_destroy
(
bc_xprt
);
out:
dprintk
(
"--> %s return %p
\n
"
,
__func__
,
rqstp
);
return
rqstp
;
}
}
static
inline
int
nfs_minorversion_callback_svc_setup
(
u32
minorversion
,
static
inline
int
nfs_minorversion_callback_svc_setup
(
u32
minorversion
,
...
...
net/sunrpc/svc.c
View file @
8f975242
...
@@ -1258,6 +1258,7 @@ bc_svc_process(struct svc_serv *serv, struct rpc_rqst *req,
...
@@ -1258,6 +1258,7 @@ bc_svc_process(struct svc_serv *serv, struct rpc_rqst *req,
int
error
;
int
error
;
/* Build the svc_rqst used by the common processing routine */
/* Build the svc_rqst used by the common processing routine */
rqstp
->
rq_xprt
=
serv
->
bc_xprt
;
rqstp
->
rq_xid
=
req
->
rq_xid
;
rqstp
->
rq_xid
=
req
->
rq_xid
;
rqstp
->
rq_prot
=
req
->
rq_xprt
->
prot
;
rqstp
->
rq_prot
=
req
->
rq_xprt
->
prot
;
rqstp
->
rq_server
=
serv
;
rqstp
->
rq_server
=
serv
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment