android_kernel_google_msm/fs
Jeff Layton 08f36d9d2c locks: allow __break_lease to sleep even when break_time is 0
commit 4991a628a7 upstream.

A fl->fl_break_time of 0 has a special meaning to the lease break code
that basically means "never break the lease". knfsd uses this to ensure
that leases don't disappear out from under it.

Unfortunately, the code in __break_lease can end up passing this value
to wait_event_interruptible as a timeout, which prevents it from going
to sleep at all. This causes __break_lease to spin in a tight loop and
causes soft lockups.

Fix this by ensuring that we pass a minimum value of 1 as a timeout
instead.

Cc: J. Bruce Fields <bfields@fieldses.org>
Reported-by: Terry Barnaby <terry1@beam.ltd.uk>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-13 14:11:31 +02:00
..
9p 9p changes for the 3.4 merge window 2012-03-28 09:58:38 -07:00
adfs
affs
afs
autofs4 autofs - remove autofs dentry mount check 2013-05-11 13:48:06 -07:00
befs
bfs
btrfs Btrfs: fix data corruption when reading/updating compressed extents 2014-03-23 21:37:08 -07:00
cachefiles
ceph ceph: Avoid data inconsistency due to d-cache aliasing in readpage() 2014-01-08 09:42:11 -08:00
cifs cifs: adjust sequence number downward after signing NT_CANCEL request 2014-03-11 16:10:05 -07:00
coda Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
configfs configfs: fix race between dentry put and lookup 2013-11-29 10:50:37 -08:00
cramfs
debugfs debugfs: debugfs_remove_recursive() must not rely on list_empty(d_subdirs) 2013-08-14 22:57:07 -07:00
devpts devpts: plug the memory leak in kill_sb 2013-12-04 10:50:14 -08:00
dlm dlm fixes for 3.4 2012-04-23 18:22:42 -07:00
ecryptfs eCryptfs: check for eCryptfs cipher support at mount 2012-11-26 11:37:49 -08:00
efs
exofs ore: Fix wrong math in allocation of per device BIO 2014-02-13 11:51:11 -08:00
exportfs
ext2 migrate ext2_fs.h guts to fs/ext2/ext2.h 2012-03-31 16:03:16 -04:00
ext3 ext3: return 32/64-bit dir name hash according to usage type 2013-11-04 04:23:42 -08:00
ext4 ext4: use i_size_read in ext4_unaligned_aio() 2014-05-06 07:51:46 -07:00
fat fat: fix possible overflow for fat_clusters 2013-06-07 12:49:12 -07:00
freevxfs
fscache fs/fscache/stats.c: fix memory leak 2013-05-07 19:51:55 -07:00
fuse fuse: hotfix truncate_pagecache() issue 2014-03-11 16:10:04 -07:00
gfs2 GFS2: Fix incorrect invalidation for DIO/buffered I/O 2014-01-08 09:42:12 -08:00
hfs
hfsplus hfsplus: fix potential overflow in hfsplus_file_truncate() 2013-04-25 21:19:54 -07:00
hostfs Merge branch 'for-linus-3.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml 2012-03-27 18:29:53 -07:00
hpfs hpfs: deadlock and race in directory lseek() 2014-02-13 11:51:18 -08:00
hppfs
hugetlbfs hugetlbfs: fix mmap failure in unaligned size request 2013-05-19 10:54:48 -07:00
isofs isofs: Refuse RW mount of the filesystem instead of making it RO 2013-09-26 17:15:51 -07:00
jbd jbd: Fix lock ordering bug in journal_unmap_buffer() 2012-12-03 11:47:10 -08:00
jbd2 ext4/jbd2: don't wait (forever) for stale tid caused by wraparound 2014-03-11 16:10:05 -07:00
jffs2 jffs2: remove from wait queue after schedule() 2014-04-26 17:13:20 -07:00
jfs jfs: fix error path in ialloc 2013-11-13 12:01:48 +09:00
lockd lockd: send correct lock when granting a delayed lock. 2014-02-22 10:32:45 -08:00
logfs
minix
ncpfs ncpfs: fix rmdir returns Device or resource busy 2014-03-11 16:10:05 -07:00
nfs NFS: Fix a delegation callback race 2014-03-23 21:37:06 -07:00
nfs_common
nfsd nfsd4: fix setclientid encode size 2014-05-06 07:51:42 -07:00
nilfs2 nilfs2: fix issue with race condition of competition between segments for dirty blocks 2014-03-11 16:10:04 -07:00
nls
notify fanotify: dont merge permission events 2013-10-01 09:10:52 -07:00
ntfs
ocfs2 ocfs2: do not put bh when buffer_uptodate failed 2014-05-06 07:51:46 -07:00
omfs
openpromfs
proc proc: pid/status: show all supplementary groups 2014-04-14 06:44:15 -07:00
pstore pstore: Avoid deadlock in panic and emergency-restart path 2013-03-04 06:06:43 +08:00
qnx4
qnx6
quota quota: Fix race between dqput() and dquot_scan_active() 2014-03-11 16:10:02 -07:00
ramfs fs: ramfs: file-nommu: add SetPageUptodate() 2012-07-16 09:04:45 -07:00
reiserfs reiserfs: fix race in readdir 2014-05-06 07:51:44 -07:00
romfs MTD merge for 3.4 2012-03-30 17:31:56 -07:00
squashfs Add an extra mount time sanity check, plus some code cleanups and bug fixes. 2012-03-28 18:05:54 -07:00
sysfs sysfs: fix use after free in case of concurrent read/write and readdir 2013-05-07 19:51:54 -07:00
sysv
ubifs UBIFS: fix double free of ubifs_orphan objects 2014-03-11 16:10:05 -07:00
udf udf: avoid info leak on export 2013-03-28 12:12:27 -07:00
ufs Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
xfs xfs: underflow bug in xfs_attrlist_by_handle() 2013-12-20 07:34:19 -08:00
aio.c aio: fix possible invalid memory access when DEBUG is enabled 2013-05-01 09:41:03 -07:00
anon_inodes.c
attr.c vfs: increment iversion when a file is truncated 2012-06-10 00:36:12 +09:00
bad_inode.c
binfmt_aout.c VM: add "vm_mmap()" helper function 2012-04-20 17:29:13 -07:00
binfmt_elf.c coredump: prevent double-free on an error path in core dumper 2012-10-07 08:32:27 -07:00
binfmt_elf_fdpic.c VM: add "vm_mmap()" helper function 2012-04-20 17:29:13 -07:00
binfmt_em86.c exec: use -ELOOP for max recursion depth 2013-03-28 12:12:28 -07:00
binfmt_flat.c VM: add "vm_mmap()" helper function 2012-04-20 17:29:13 -07:00
binfmt_misc.c exec: use -ELOOP for max recursion depth 2013-03-28 12:12:28 -07:00
binfmt_script.c exec: use -ELOOP for max recursion depth 2013-03-28 12:12:28 -07:00
binfmt_som.c VM: add "vm_mmap()" helper function 2012-04-20 17:29:13 -07:00
bio-integrity.c
bio.c SCSI: sg: Fix user memory corruption when SG_IO is interrupted by a signal 2013-09-07 21:58:16 -07:00
block_dev.c writeback: Fix periodic writeback after fs mount 2013-07-28 16:26:08 -07:00
buffer.c mm: __set_page_dirty uses spin_lock_irqsave instead of spin_lock_irq 2014-02-20 10:45:32 -08:00
char_dev.c
compat.c Fix: compat_rw_copy_check_uvector() misuse in aio, readv, writev, and security keys 2013-03-14 11:29:51 -07:00
compat_binfmt_elf.c
compat_ioctl.c fs/compat_ioctl.c: VIDEO_SET_SPU_PALETTE missing error check 2012-10-31 10:02:55 -07:00
dcache.c Nest rename_lock inside vfsmount_lock 2013-11-29 10:50:33 -08:00
dcookies.c
direct-io.c fs: Fix possible use-after-free with AIO 2013-03-04 06:06:41 +08:00
drop_caches.c
eventfd.c
eventpoll.c epoll: prevent missed events on EPOLL_CTL_MOD 2013-01-17 08:50:54 -08:00
exec.c exec/ptrace: fix get_dumpable() incorrect tests 2013-11-29 10:50:34 -08:00
fcntl.c
fhandle.c
fifo.c fifo: Do not restart open() if it already found a partner 2012-07-19 08:58:56 -07:00
file.c fs/file.c:fdtable: avoid triggering OOMs from alloc_fdmem 2014-02-22 10:32:45 -08:00
file_table.c
filesystems.c
fs-writeback.c ext4: fix potential deadlock in ext4_nonda_switch() 2012-10-13 05:38:49 +09:00
fs_struct.c The following text was taken from the original review request: 2012-03-24 10:24:31 -07:00
generic_acl.c
inode.c vfs: Revert spurious fix to spinning prevention in prune_icache_sb 2013-04-16 21:27:26 -07:00
internal.h
ioctl.c
ioprio.c
Kconfig
Kconfig.binfmt
libfs.c dentry leak in simple_fill_super() failure exit 2012-04-09 01:39:22 -04:00
locks.c locks: allow __break_lease to sleep even when break_time is 0 2014-05-13 14:11:31 +02:00
Makefile
mbcache.c
mount.h
mpage.c
namei.c vfs: make word-at-a-time accesses handle a non-existing page 2012-05-03 14:01:40 -07:00
namespace.c vfs: umount_tree() might be called on subtree that had never made it 2012-06-10 00:36:12 +09:00
no-block.c
open.c vfs: canonicalize create mode in build_open_flags() 2012-09-14 10:00:05 -07:00
pipe.c vfs: fix pipe counter breakage 2013-03-14 11:29:51 -07:00
pnode.c
pnode.h
posix_acl.c
proc_namespace.c
read_write.c
read_write.h
readdir.c
select.c posix_types.h: Cleanup stale __NFDBITS and related definitions 2012-08-09 08:31:39 -07:00
seq_file.c The following text was taken from the original review request: 2012-03-24 10:24:31 -07:00
signalfd.c
splice.c tcp: fix MSG_SENDPAGE_NOTLAST logic 2013-01-11 09:07:14 -08:00
stack.c
stat.c vfs: make O_PATH file descriptors usable for 'fstat()' 2012-10-02 10:29:51 -07:00
statfs.c vfs: allow O_PATH file descriptors for fstatfs() 2013-10-22 09:02:25 +01:00
super.c livelock avoidance in sget() 2013-08-04 16:25:59 +08:00
sync.c
timerfd.c
utimes.c
xattr.c fs/xattr.c:setxattr(): improve handling of allocation failures 2012-04-05 15:25:50 -07:00
xattr_acl.c