android_kernel_google_msm/fs/nfs
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
..
blocklayout fix page number calculation bug for block layout decode buffer 2012-04-26 12:23:23 -04:00
objlayout pnfs-obj: Remove unused variable from objlayout_get_deviceinfo() 2012-04-26 12:15:51 -04:00
cache_lib.c
cache_lib.h
callback.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
callback.h
callback_proc.c
callback_xdr.c NFSv4: Rate limit the state manager warning messages 2012-03-12 18:15:22 -04:00
client.c NFS: Honor the authflavor set in the clone mount data 2012-04-27 14:10:03 -04:00
delegation.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
delegation.h NFSv4.0: Re-establish the callback channel on NFS4ERR_CB_PATHDOWN 2012-03-10 11:54:36 -05:00
dir.c NFSv4: Fix open(O_TRUNC) and ftruncate() error handling 2012-04-19 13:23:09 -04:00
direct.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
dns_resolve.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
dns_resolve.h
file.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
fscache-index.c
fscache.c NFS: Fix more NFS debug related build warnings 2012-03-21 09:31:44 -04:00
fscache.h
getroot.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
idmap.c NFS: get module in idmap PipeFS notifier callback 2012-04-28 13:22:19 -04:00
inode.c freezer: add unsafe versions of freezable helpers for NFS 2013-07-12 14:22:55 -07:00
internal.h NFS: Honor the authflavor set in the clone mount data 2012-04-27 14:10:03 -04:00
iostat.h
Kconfig SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG 2012-03-20 13:08:26 -04:00
Makefile
mount_clnt.c SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG 2012-03-20 13:08:26 -04:00
namespace.c NFS: Remove unused function nfs_lookup_with_sec() 2012-04-27 14:10:03 -04:00
netns.h NFS: replace global bl_wq with per-net one 2012-03-11 10:57:35 -04:00
nfs2xdr.c
nfs3acl.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
nfs3proc.c freezer: add unsafe versions of freezable helpers for NFS 2013-07-12 14:22:55 -07:00
nfs3xdr.c
nfs4_fs.h NFS: Fix following referral mount points with different security 2012-04-27 14:10:02 -04:00
nfs4filelayout.c NFS4.1: remove duplicate variable declaration in filelayout_clear_request_commit 2012-03-24 14:33:26 -04:00
nfs4filelayout.h NFS: remove nfs_inode radix tree 2012-03-10 17:14:10 -05:00
nfs4filelayoutdev.c NFSv4.1 fix page number calculation bug for filelayout decode buffers 2012-04-26 12:23:23 -04:00
nfs4namespace.c NFS: Fix following referral mount points with different security 2012-04-27 14:10:02 -04:00
nfs4proc.c freezer: add unsafe versions of freezable helpers for NFS 2013-07-12 14:22:55 -07:00
nfs4renewd.c
nfs4state.c NFSv4: Keep dropped state owners on the LRU list for a while 2012-04-21 13:01:00 -04:00
nfs4xdr.c NFS: Do secinfo as part of lookup 2012-04-27 14:10:02 -04:00
nfsroot.c SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG 2012-03-20 13:08:26 -04:00
pagelist.c NFS: remove nfs_inode radix tree 2012-03-10 17:14:10 -05:00
pnfs.c NFSv4.1 fix page number calculation bug for filelayout decode buffers 2012-04-26 12:23:23 -04:00
pnfs.h NFS: Fix more NFS debug related build warnings 2012-03-21 09:31:44 -04:00
pnfs_dev.c NFS: Fix more NFS debug related build warnings 2012-03-21 09:31:44 -04:00
proc.c NFS: Remove nfs4_setup_sequence from generic rename code 2012-03-21 09:31:46 -04:00
read.c NFS: put open context on error in nfs_pagein_multi 2012-04-20 14:54:48 -04:00
super.c NFS: Honor the authflavor set in the clone mount data 2012-04-27 14:10:03 -04:00
symlink.c
sysctl.c
unlink.c NFS: Remove nfs4_setup_sequence from generic rename code 2012-03-21 09:31:46 -04:00
write.c NFS: put open context on error in nfs_flush_multi 2012-04-20 14:57:30 -04:00