lineage_android_kernel_sams.../fs
Trond Myklebust 55a673990e NFSv4.1: Fix the callback 'highest_used_slotid' behaviour
Currently, there is no guarantee that we will call nfs4_cb_take_slot() even
though nfs4_callback_compound() will consistently call
nfs4_cb_free_slot() provided the cb_process_state has set the 'clp' field.
The result is that we can trigger the BUG_ON() upon the next call to
nfs4_cb_take_slot().

This patch fixes the above problem by using the slot id that was taken in
the CB_SEQUENCE operation as a flag for whether or not we need to call
nfs4_cb_free_slot().
It also fixes an atomicity problem: we need to set tbl->highest_used_slotid
atomically with the check for NFS4_SESSION_DRAINING, otherwise we end up
racing with the various tests in nfs4_begin_drain_session().

Cc: stable@kernel.org [2.6.38+]
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2011-08-04 11:55:35 -04:00
..
9p switch posix_acl_equiv_mode() to umode_t * 2011-08-01 02:10:06 -04:00
adfs
affs
afs
autofs4
befs
bfs
btrfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable 2011-08-02 21:14:05 -10:00
cachefiles
ceph
cifs CIFS: Cleanup demupltiplex thread exiting code 2011-08-01 12:49:45 +00:00
coda
configfs
cramfs
debugfs
devpts
dlm
ecryptfs ecryptfs: Make inode bdi consistent with superblock bdi 2011-07-28 23:48:26 -05:00
efs
exofs
exportfs
ext2 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2011-08-01 13:48:31 -10:00
ext3 switch posix_acl_equiv_mode() to umode_t * 2011-08-01 02:10:06 -04:00
ext4 ext4: use kzalloc in ext4_kzalloc() 2011-08-03 14:57:11 -04:00
fat
freevxfs
fscache
fuse
gfs2 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2011-08-01 13:48:31 -10:00
hfs
hfsplus
hostfs
hpfs
hppfs hppfs: missing include 2011-07-27 22:21:58 -04:00
hugetlbfs
isofs
jbd
jbd2
jffs2 switch posix_acl_equiv_mode() to umode_t * 2011-08-01 02:10:06 -04:00
jfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2011-08-01 13:48:31 -10:00
lockd Merge branch 'nfs-for-3.1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs 2011-07-27 13:23:02 -07:00
logfs
minix
ncpfs
nfs NFSv4.1: Fix the callback 'highest_used_slotid' behaviour 2011-08-04 11:55:35 -04:00
nfs_common
nfsd
nilfs2
nls
notify
ntfs
ocfs2 switch posix_acl_equiv_mode() to umode_t * 2011-08-01 02:10:06 -04:00
omfs
openpromfs
partitions
proc proc: make struct proc_dir_entry::name a terminal array rather than a pointer 2011-07-27 12:50:45 -07:00
pstore
qnx4
quota
ramfs
reiserfs switch posix_acl_equiv_mode() to umode_t * 2011-08-01 02:10:06 -04:00
romfs
squashfs
sysfs
sysv
ubifs
udf
ufs
xfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2011-08-01 13:48:31 -10:00
Kconfig tmpfs: expand "help" to explain value of TMPFS_POSIX_ACL 2011-08-03 14:25:25 -10:00
Kconfig.binfmt
Makefile
aio.c
anon_inodes.c
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf.c
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio-integrity.c
bio.c
block_dev.c block: initialise bd_super in bdget() 2011-08-01 01:57:44 -04:00
buffer.c
char_dev.c
compat.c
compat_binfmt_elf.c
compat_ioctl.c
dcache.c fs/dcache.c: fix new kernel-doc warning 2011-08-03 14:25:21 -10:00
dcookies.c
direct-io.c
drop_caches.c
eventfd.c
eventpoll.c
exec.c
fcntl.c
fhandle.c
fifo.c
file.c
file_table.c
filesystems.c
fs-writeback.c don't busy retry the inode on failed grab_super_passive() 2011-07-31 22:52:08 +08:00
fs_struct.c
generic_acl.c switch posix_acl_equiv_mode() to umode_t * 2011-08-01 02:10:06 -04:00
inode.c vfs: avoid call to inode_lru_list_del() if possible 2011-08-01 01:41:17 -04:00
internal.h
ioctl.c
ioprio.c
libfs.c
locks.c
mbcache.c
mpage.c
namei.c VFS: Fix automount for negative autofs dentries 2011-08-01 01:38:01 -04:00
namespace.c
no-block.c
open.c
pipe.c
pnode.c
pnode.h
posix_acl.c switch posix_acl_chmod() to umode_t 2011-08-01 02:10:32 -04:00
read_write.c
read_write.h
readdir.c
select.c
seq_file.c
signalfd.c
splice.c
stack.c mm: a few small updates for radix-swap 2011-08-03 14:25:24 -10:00
stat.c
statfs.c
super.c
sync.c
timerfd.c
utimes.c
xattr.c
xattr_acl.c