android_kernel_google_msm/net/sunrpc
Colin Cross ac88fa1646 freezer: add unsafe versions of freezable helpers for NFS
NFS calls the freezable helpers with locks held, which is unsafe
and will cause lockdep warnings when 6aa9707 "lockdep: check
that no locks held at freeze time" is reapplied (it was reverted
in dbf520a).  NFS shouldn't be doing this, but it has
long-running syscalls that must hold a lock but also shouldn't
block suspend.  Until NFS freeze handling is rewritten to use a
signal to exit out of the critical section, add new *_unsafe
versions of the helpers that will not run the lockdep test when
6aa9707 is reapplied, and call them from NFS.

In practice the likley result of holding the lock while freezing
is that a second task blocked on the lock will never freeze,
aborting suspend, but it is possible to manufacture a case using
the cgroup freezer, the lock, and the suspend freezer to create
a deadlock.  Silencing the lockdep warning here will allow
problems to be found in other drivers that may have a more
serious deadlock risk, and prevent new problems from being added.

Change-Id: Ia17d32cdd013a6517bdd5759da900970a4427170
Signed-off-by: Colin Cross <ccross@android.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2013-07-12 14:22:55 -07:00
..
auth_gss auth_gss: the list of pseudoflavors not being parsed correctly 2012-05-03 12:35:33 -04:00
xprtrdma Merge branch 'for-3.4' of git://linux-nfs.org/~bfields/linux 2012-03-29 14:53:25 -07:00
addr.c
auth.c
auth_generic.c
auth_null.c
auth_unix.c
backchannel_rqst.c SUNRPC: Fix a few sparse warnings 2012-03-11 19:30:02 -04:00
bc_svc.c
cache.c Merge nfs containerization work from Trond's tree 2012-03-26 11:48:54 -04:00
clnt.c SUNRPC: RPC client must use the current utsname hostname string 2012-04-30 11:58:51 -04:00
Kconfig SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG 2012-03-20 13:08:26 -04:00
Makefile
netns.h
rpc_pipe.c SUNRPC: set per-net PipeFS superblock before notification 2012-04-27 14:10:00 -04:00
rpcb_clnt.c SUNRPC: Use the already looked-up xprt in rpcb_getport_async() 2012-03-27 16:33:35 -04:00
sched.c freezer: add unsafe versions of freezable helpers for NFS 2013-07-12 14:22:55 -07:00
socklib.c sunrpc: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:28 +08:00
stats.c SUNRPC: Use RCU to dereference the rpc_clnt.cl_xprt field 2012-03-02 15:36:38 -05:00
sunrpc.h
sunrpc_syms.c SUNRPC: register PipeFS file system after pernet sybsystem 2012-04-18 11:05:48 -04:00
svc.c Lockd: per-net up and down routines introduced 2012-02-15 00:19:47 -05:00
svc_xprt.c SUNRPC: service destruction in network namespace context 2012-02-15 00:19:45 -05:00
svcauth.c
svcauth_unix.c Merge nfs containerization work from Trond's tree 2012-03-26 11:48:54 -04:00
svcsock.c Merge nfs containerization work from Trond's tree 2012-03-26 11:48:54 -04:00
sysctl.c
timer.c
xdr.c sunrpc: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:28 +08:00
xprt.c SUNRPC: Move clnt->cl_server into struct rpc_xprt 2012-03-02 15:36:41 -05:00
xprtsock.c sunrpc: skip portmap calls on sessions backchannel 2012-03-26 11:49:48 -04:00