kernel-ark/fs
Miklos Szeredi 095da6cbb6 [PATCH] fuse: fix bitfield race
Fix race in setting bitfields of fuse_conn.  Spotted by Andrew Morton.

The two fields ->connected and ->mounted were always changed with the
fuse_lock held.  But other bitfields in the same structure were changed
without the lock.  In theory this could lead to losing the assignment of
even the ones under lock.  The chosen solution is to change these two
fields to be a full unsigned type.  The other bitfields aren't "important"
enough to warrant the extra complexity of full locking or changing them to
bitops.

For all bitfields document why they are safe wrt. concurrent
assignments.

Also make the initialization of the 'num_waiting' atomic counter explicit.

Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:15:31 -08:00
..
9p [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
adfs
affs
afs
autofs
autofs4 [PATCH] autofs4 oops fix 2006-01-14 18:25:19 -08:00
befs
bfs
cifs
coda
configfs
cramfs
debugfs
devfs
devpts
efs
exportfs
ext2 [PATCH] ext2: remove d_splice_alias NULL check from ext2_lookup 2006-01-14 18:27:10 -08:00
ext3 [PATCH] ext3: remove d_splice_alias NULL check from ext3_lookup 2006-01-14 18:27:10 -08:00
fat
freevxfs
fuse [PATCH] fuse: fix bitfield race 2006-01-16 23:15:31 -08:00
hfs
hfsplus
hostfs
hpfs
hppfs
hugetlbfs [PATCH] Add tmpfs options for memory placement policies 2006-01-14 18:27:07 -08:00
isofs [PATCH] isofs: remove d_splice_alias NULL check from isofs_lookup 2006-01-14 18:27:12 -08:00
jbd
jffs
jffs2 [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
jfs
lockd [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
minix
msdos
ncpfs [PATCH] ncpfs: remove kmalloc wrapper 2006-01-14 18:27:12 -08:00
nfs
nfs_common
nfsd [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
nls
ntfs
ocfs2
openpromfs
partitions [PATCH] partitions: Read Rio Karma partition table 2006-01-16 23:15:29 -08:00
proc [PATCH] convert /proc/devices to use seq_file interface 2006-01-14 18:25:19 -08:00
qnx4
ramfs
reiserfs [PATCH] reiserfs: remove d_splice_alias NULL check from reiserfs_lookup 2006-01-14 18:27:12 -08:00
relayfs
romfs
smbfs [PATCH] smbfs: remove kmalloc wrapper 2006-01-14 18:27:13 -08:00
sysfs
sysv
udf
ufs
vfat
xfs Merge git://oss.sgi.com:8090/oss/git/xfs-2.6 2006-01-15 22:18:04 -08:00
aio.c
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf_fdpic.c
binfmt_elf.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
binfmt_script.c
binfmt_som.c
bio.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
block_dev.c
buffer.c Make alloc_page_buffers() initialise buffer_heads using init_buffer(), 2006-01-17 09:02:07 +11:00
char_dev.c [PATCH] convert /proc/devices to use seq_file interface 2006-01-14 18:25:19 -08:00
compat_ioctl.c
compat.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
dcache.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
dcookies.c
direct-io.c
dnotify.c
dquot.c
drop_caches.c
eventpoll.c
exec.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
fcntl.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
fifo.c
file_table.c
file.c
filesystems.c
fs-writeback.c
inode.c
inotify.c
ioctl.c
ioprio.c
Kconfig
Kconfig.binfmt
libfs.c
locks.c
Makefile
mbcache.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
mpage.c
namei.c [PATCH] Mark some key VFS functions as __always_inline 2006-01-14 18:27:15 -08:00
namespace.c [PATCH] add /sys/fs 2006-01-16 23:15:29 -08:00
nfsctl.c
open.c
pipe.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
pnode.c
pnode.h
posix_acl.c
quota_v1.c
quota_v2.c [PATCH] quota: make useless quota error message informative 2006-01-14 18:27:12 -08:00
quota.c
read_write.c
readdir.c
select.c
seq_file.c
stat.c
super.c
xattr_acl.c
xattr.c