linux/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 [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
afs add loglevel to printk in fs/afs/cmservice.c 2006-01-11 01:52:40 +01:00
autofs [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
autofs4 [PATCH] autofs4 oops fix 2006-01-14 18:25:19 -08:00
befs
bfs
cifs [PATCH] turn "const static" into "static const" 2006-01-10 08:01:55 -08:00
coda [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
configfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
cramfs
debugfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
devfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
devpts [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
efs return statement cleanup - kill pointless parentheses 2006-01-15 02:37:08 +01:00
exportfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
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 [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
freevxfs [PATCH] fix possible PAGE_CACHE_SHIFT overflows 2006-01-08 20:13:54 -08:00
fuse [PATCH] fuse: fix bitfield race 2006-01-16 23:15:31 -08:00
hfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
hfsplus [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
hostfs
hpfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
hppfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
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 [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
jffs2 [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
jfs [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
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 [PATCH] per-mountpoint noatime/nodiratime 2006-01-10 08:01:34 -08:00
nfs_common
nfsd [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
nls
ntfs [PATCH] ntfs: remove superflous MS_NOATIME/MS_NODIRATIME assignments 2006-01-10 08:01:33 -08:00
ocfs2 [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
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 [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
romfs [PATCH] fix possible PAGE_CACHE_SHIFT overflows 2006-01-08 20:13:54 -08:00
smbfs [PATCH] smbfs: remove kmalloc wrapper 2006-01-14 18:27:13 -08:00
sysfs [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
sysv correct email address of Manfred Spraul 2006-01-15 02:43:54 +01:00
udf [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
ufs [PATCH] ufs cleanup 2006-01-14 10:27:32 -08:00
vfat
xfs Merge git://oss.sgi.com:8090/oss/git/xfs-2.6 2006-01-15 22:18:04 -08:00
aio.c [PATCH] rcu file: use atomic primitives 2006-01-08 20:13:48 -08:00
attr.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
bad_inode.c
binfmt_aout.c [PATCH] dump_thread() cleanup 2006-01-10 08:01:25 -08:00
binfmt_elf.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
binfmt_elf_fdpic.c [PATCH] fs/binfmt_elf: Remove unneeded kmalloc() return value casts 2006-01-10 08:02:01 -08:00
binfmt_em86.c
binfmt_flat.c [PATCH] uclinux: delay binfmt_flat trace 2006-01-10 09:31:27 -08:00
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 [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
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.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
compat_ioctl.c [PATCH] Implement ioctl emulation for the parport character device 2006-01-12 09:08:49 -08:00
dcache.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
dcookies.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
direct-io.c [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
dnotify.c
dquot.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
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 [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
file.c
file_table.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
filesystems.c
fs-writeback.c
inode.c [PATCH] per-mountpoint noatime/nodiratime 2006-01-10 08:01:34 -08:00
inotify.c
ioctl.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
ioprio.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
Kconfig [PATCH] kexec: change CONFIG_PHYSICAL_START dependency 2006-01-10 08:01:29 -08:00
Kconfig.binfmt [PATCH] frv: suppress configuration of certain features for FRV 2006-01-08 20:13:36 -08:00
libfs.c [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
locks.c [PATCH] tiny: Uninline some fslocks.c functions 2006-01-08 20:14:10 -08:00
Makefile [PATCH] sanitize building of fs/compat_ioctl.c 2006-01-10 08:01:33 -08:00
mbcache.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
mpage.c [PATCH] fix possible PAGE_CACHE_SHIFT overflows 2006-01-08 20:13:54 -08:00
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 [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
pipe.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
pnode.c [PATCH] shared mounts: cleanup 2006-01-08 20:13:56 -08:00
pnode.h
posix_acl.c
quota.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
quota_v1.c
quota_v2.c [PATCH] quota: make useless quota error message informative 2006-01-14 18:27:12 -08:00
read_write.c [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
readdir.c [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
select.c
seq_file.c
stat.c
super.c [PATCH] mutex subsystem, semaphore to mutex: VFS, sb->s_lock 2006-01-09 15:59:25 -08:00
xattr.c [PATCH] move xattr permission checks into the VFS 2006-01-10 08:01:29 -08:00
xattr_acl.c