SUNRPC: move cache_detail->cache_request callback call to cache_read()
authorStanislav Kinsbursky <skinsbursky@parallels.com>
Mon, 4 Feb 2013 11:03:03 +0000 (14:03 +0300)
committerJ. Bruce Fields <bfields@redhat.com>
Fri, 15 Feb 2013 15:43:48 +0000 (10:43 -0500)
commitd94af6dea9cd680fb795dbc409a7360f1c63dc34
treee96151ec9bc95871bf3ebc92baaaad13bfab6775
parent21cd1254d3402a72927ed744e8ac1a7cf532f1ea
SUNRPC: move cache_detail->cache_request callback call to cache_read()

The reason to move cache_request() callback call from
sunrpc_cache_pipe_upcall() to cache_read() is that this garantees, that cache
access will be done userspace process context (only userspace process have
proper root context).
This is required for NFSd support in container: svc_export_request() (which is
cache_request callback) calls d_path(), which, in turn, traverse dentry up to
current->fs->root. Kernel threads always have global root, while container
have be in "root jail" - i.e. have it's own nested root.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/cache.c