original_kernel/fs
Trond Myklebust c42de9dd67 NFS: Fix a race in nfs_sync_inode()
Kudos to Neil Brown for spotting the problem:

"in nfs_sync_inode, there is effectively the sequence:

   nfs_wait_on_requests
   nfs_flush_inode
   nfs_commit_inode

 This seems a bit racy to me as if the only requests are on the
 ->commit list, and nfs_commit_inode is called separately after
 nfs_wait_on_requests completes, and before nfs_commit_inode start
 (say: by nfs_write_inode) then none of these function will return
 >0, yet there will be some pending request that aren't waited for."

The solution is to search for requests to wait upon, search for dirty
requests, and search for uncommitted requests while holding the
nfsi->req_lock

The patch also cleans up nfs_sync_inode(), getting rid of the redundant
FLUSH_WAIT flag. It turns out that we were always setting it.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2006-03-20 13:44:51 -05:00
..
9p [PATCH] v9fs: fix overzealous dropping of dentry which breaks dcache 2006-03-17 07:51:25 -08:00
adfs
affs
afs
autofs
autofs4
befs
bfs
cifs [CIFS] Always match oplock break (cache notification) to the right tcp 2006-03-05 03:39:55 +00:00
coda
configfs [PATCH] BUG_ON() Conversion in fs/configfs/ 2006-02-03 14:03:09 -08:00
cramfs [PATCH] cramfs mounts provide corrupted content since 2.6.15 2006-03-06 18:40:43 -08:00
debugfs [PATCH] debugfs: trivial comment fix 2006-02-06 12:17:18 -08:00
devfs
devpts
efs
exportfs [PATCH] exportfs: add find_acceptable_alias helper 2006-01-18 19:20:28 -08:00
ext2 [PATCH] Fix ext2 readdir f_pos re-validation logic 2006-03-15 16:31:51 -08:00
ext3 [PATCH] ext3: fix nobh mode for chattr +j inodes 2006-03-11 09:19:34 -08:00
fat [PATCH] fat: Fix truncate() write ordering 2006-02-03 08:32:10 -08:00
freevxfs
fuse [PATCH] fuse: fix bug in negative lookup 2006-02-28 20:53:43 -08:00
hfs [PATCH] hfs: cleanup HFS prints 2006-01-18 19:20:23 -08:00
hfsplus [PATCH] hfs: set type/creator for symlinks 2006-01-18 19:20:23 -08:00
hostfs
hpfs
hppfs
hugetlbfs [PATCH] mm: hugepage accounting fix 2006-02-01 08:53:15 -08:00
isofs
jbd [PATCH] jbd: revert checkpoint list changes 2006-02-14 16:09:34 -08:00
jffs [PATCH] fs/jffs/intrep.c: 255 is unsigned char 2006-02-03 08:32:05 -08:00
jffs2 [PATCH] mtd: 64 bit fixes 2006-03-09 19:47:37 -08:00
jfs [PATCH] JFS: Take logsync lock before testing mp->lsn 2006-03-14 14:00:48 -08:00
lockd lockd: blocks should hold a reference to the nlm_file 2006-03-20 13:44:47 -05:00
minix
msdos
ncpfs
nfs NFS: Fix a race in nfs_sync_inode() 2006-03-20 13:44:51 -05:00
nfs_common
nfsd locks,lockd: fix race in nlmsvc_testlock 2006-03-20 13:44:26 -05:00
nls
ntfs NTFS: Do more detailed reporting of why we cannot mount read-write by 2006-02-24 10:48:14 +00:00
ocfs2 [PATCH] ocfs2: use hlists for lockres hash 2006-03-01 12:18:16 -08:00
openpromfs
partitions [PATCH] s390: dasd partition detection 2006-03-08 14:14:01 -08:00
proc VFS: New /proc file /proc/self/mountstats 2006-03-20 13:44:12 -05:00
qnx4
ramfs [PATCH] ramfs needs to update directory m/ctime on symlink 2006-03-06 18:40:45 -08:00
reiserfs [PATCH] reiserfs: fix unaligned bitmap usage 2006-03-02 10:37:59 -08:00
relayfs
romfs
smbfs [PATCH] smbfs readdir vs signal fix 2006-02-01 08:53:09 -08:00
sysfs
sysv
udf [PATCH] udf: fix uid/gid options and add uid/gid=ignore and forget options 2006-03-08 14:14:00 -08:00
ufs [PATCH] ufs: fix hang during `rm' 2006-02-03 08:32:04 -08:00
vfat
xfs [XFS] Don't map non-uptodate buffers in xfs_probe_cluster; also fixes 2006-02-28 12:30:30 +11:00
Kconfig o Remove confusing Kconfig text for CONFIGFS_FS. 2006-02-03 13:47:17 -08:00
Kconfig.binfmt
Makefile
aio.c
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf.c [PATCH] x86_64: Check for bad elf entry address. 2006-02-26 09:53:30 -08:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio.c [BLOCK] A few kerneldoc fixups 2006-01-31 15:24:34 +01:00
block_dev.c
buffer.c [PATCH] page migration: fail if page is in a vma flagged VM_LOCKED 2006-03-14 21:43:02 -08:00
char_dev.c
compat.c [PATCH] select: time comparison fixes 2006-02-17 13:59:28 -08:00
compat_ioctl.c [NET] compat ifconf: fix limits 2006-03-08 16:46:08 -08:00
dcache.c [PATCH] fix file counting 2006-03-08 14:14:01 -08:00
dcookies.c
direct-io.c Fix a direct I/O locking issue revealed by the new mutex code. 2006-03-15 15:14:45 +11:00
dnotify.c
dquot.c
drop_caches.c
eventpoll.c
exec.c [PATCH] Add mm->task_size and fix powerpc vdso 2006-02-28 20:53:44 -08:00
fcntl.c [PATCH] fcntl F_SETFL and read-only IS_APPEND files 2006-02-03 08:32:07 -08:00
fifo.c Simplify fifo_open() locking logic 2006-03-07 09:16:35 -08:00
file.c [PATCH] percpu data: only iterate over possible CPUs 2006-02-05 11:06:51 -08:00
file_table.c [PATCH] fix file counting 2006-03-08 14:14:01 -08:00
filesystems.c
fs-writeback.c
inode.c [PATCH] DocBook: fix some kernel-doc comments in fs and block 2006-02-01 08:53:27 -08:00
inotify.c [PATCH] inotify: fix one-shot support 2006-02-07 16:12:33 -08:00
ioctl.c
ioprio.c
libfs.c [PATCH] debugfs: hard link count wrong 2006-02-03 08:32:11 -08:00
locks.c lockd: stop abusing file_lock_list 2006-03-20 13:44:40 -05:00
mbcache.c
mpage.c
namei.c [PATCH] ext3: ext3_symlink should use GFP_NOFS allocations inside 2006-03-11 09:19:34 -08:00
namespace.c VFS: New /proc file /proc/self/mountstats 2006-03-20 13:44:12 -05:00
nfsctl.c [PATCH] nfsservctl(): remove user-triggerable printk 2006-03-17 07:51:25 -08:00
open.c [PATCH] vfs: *at functions: core 2006-01-18 19:20:29 -08:00
pipe.c Mark the pipe file operations static 2006-03-08 14:03:09 -08:00
pnode.c
pnode.h
posix_acl.c
quota.c
quota_v1.c
quota_v2.c [PATCH] quota_v2: printk warning fixes 2006-02-03 08:32:03 -08:00
read_write.c
readdir.c
select.c [PATCH] select: time comparison fixes 2006-02-17 13:59:28 -08:00
seq_file.c
stat.c [PATCH] fstatat64 support 2006-02-11 21:41:10 -08:00
super.c Revert mount/umount uevent removal 2006-02-22 09:39:02 -08:00
xattr.c
xattr_acl.c