linux/fs
Richard Kennedy 58a9d3d8db fs-writeback: check sync bit earlier in inode_wait_for_writeback
When wb_writeback() hasn't written anything it will re-acquire the inode
lock before calling inode_wait_for_writeback.

This change tests the sync bit first so that is doesn't need to drop &
re-acquire the lock if the inode became available while wb_writeback() was
waiting to get the lock.

Signed-off-by: Richard Kennedy <richard@rsk.demon.co.uk>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-05-25 08:07:00 -07:00
..
9p Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs 2010-05-24 07:41:13 -07:00
adfs
affs
afs AFS: Don't put struct file on the stack 2010-05-21 18:31:28 -04:00
autofs
autofs4 autofs4: Pushdown the bkl from ioctl 2010-05-22 17:44:18 +02:00
befs
bfs bfs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:25 -04:00
btrfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
cachefiles
ceph Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2010-05-24 07:37:52 -07:00
cifs
coda Merge branch 'bkl/ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing 2010-05-24 08:01:10 -07:00
configfs
cramfs
debugfs
devpts Simplify devpts_get_sb() failure exits 2010-05-21 18:31:12 -04:00
dlm
ecryptfs switch ecryptfs_write() to struct inode *, kill on-stack fake files 2010-05-21 18:31:28 -04:00
efs
exofs Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd 2010-05-24 07:57:41 -07:00
exportfs
ext2 ext2: replace inode uid,gid,mode init with helper 2010-05-21 18:31:24 -04:00
ext3 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
ext4 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
fat Merge git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6 2010-05-24 07:41:47 -07:00
freevxfs
fscache
fuse
gfs2 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
hfs
hfsplus
hostfs
hpfs
hppfs
hugetlbfs
isofs
jbd ext3: Fix waiting on transaction during fsync 2010-05-21 19:30:41 +02:00
jbd2 Merge branch 'master' into for-2.6.35 2010-05-21 21:27:26 +02:00
jffs2 jffs2: constify xattr_handler 2010-05-21 18:31:20 -04:00
jfs jfs: replace inode uid,gid,mode init with helper 2010-05-21 18:31:23 -04:00
lockd
logfs logfs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:27 -04:00
minix minix: replace inode uid,gid,mode init with helper 2010-05-21 18:31:24 -04:00
ncpfs
nfs
nfs_common
nfsd sanitize vfs_fsync calling conventions 2010-05-21 18:31:21 -04:00
nilfs2 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
nls
notify Saner locking around deactivate_super() 2010-05-21 18:31:14 -04:00
ntfs
ocfs2 ocfs2: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:25 -04:00
omfs omfs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:25 -04:00
openpromfs
partitions Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
proc pagemap: add #ifdefs CONFIG_HUGETLB_PAGE on code walking hugetlb vma 2010-05-25 08:06:58 -07:00
qnx4
quota new helper: iterate_supers() 2010-05-21 18:31:16 -04:00
ramfs ramfs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:26 -04:00
reiserfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
romfs
smbfs
squashfs
sysfs sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
sysv sysv: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:26 -04:00
ubifs ubifs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:26 -04:00
udf udf: replace inode uid,gid,mode init with helper 2010-05-21 18:31:27 -04:00
ufs ufs: replace inode uid,gid,mode initialization with helper function 2010-05-21 18:31:27 -04:00
xfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
Kconfig
Kconfig.binfmt
Makefile Take statfs variants to fs/statfs.c 2010-05-21 18:31:17 -04:00
aio.c
anon_inodes.c anon_inode: set S_IFREG on the anon_inode 2010-05-21 18:31:20 -04:00
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 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
buffer.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
char_dev.c
compat.c
compat_binfmt_elf.c
compat_ioctl.c
dcache.c fix prune_dcache()/umount() race 2010-05-21 18:31:16 -04:00
dcookies.c
direct-io.c
drop_caches.c new helper: iterate_supers() 2010-05-21 18:31:16 -04:00
eventfd.c
eventpoll.c
exec.c mm: migration: avoid race between shift_arg_pages() and rmap_walk() during migration by not migrating temporary stacks 2010-05-25 08:06:59 -07:00
fcntl.c Merge branch 'master' into for-2.6.35 2010-05-21 21:27:26 +02:00
fifo.c
file.c
file_table.c
filesystems.c
fs-writeback.c fs-writeback: check sync bit earlier in inode_wait_for_writeback 2010-05-25 08:07:00 -07:00
fs_struct.c
generic_acl.c fs: xattr_handler table should be const 2010-05-21 18:31:18 -04:00
inode.c vfs: Add inode uid,gid,mode init helper 2010-05-21 18:31:22 -04:00
internal.h Bury __put_super_and_need_restart() 2010-05-21 18:31:16 -04:00
ioctl.c Introduce freeze_super and thaw_super for the fsfreeze ioctl 2010-05-21 18:31:18 -04:00
ioprio.c
libfs.c
locks.c
mbcache.c
mpage.c
namei.c namei.c : update mnt when it needed 2010-05-21 18:31:22 -04:00
namespace.c
nfsctl.c
no-block.c
open.c Take statfs variants to fs/statfs.c 2010-05-21 18:31:17 -04:00
pipe.c pipe: set lower and upper limit on max pages in the pipe page array 2010-05-21 21:12:52 +02:00
pnode.c
pnode.h
posix_acl.c
read_write.c
read_write.h
readdir.c
select.c
seq_file.c
signalfd.c
splice.c pipe: add support for shrinking and growing pipes 2010-05-21 21:12:40 +02:00
stack.c
stat.c
statfs.c Take statfs variants to fs/statfs.c 2010-05-21 18:31:17 -04:00
super.c vfs: add lockdep annotation to s_vfs_rename_key for ecryptfs 2010-05-21 18:31:22 -04:00
sync.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2010-05-21 19:37:45 -07:00
timerfd.c fs/timerfd.c: make use of wait_event_interruptible_locked_irq() 2010-05-20 13:21:42 -07:00
utimes.c
xattr.c fs: xattr_handler table should be const 2010-05-21 18:31:18 -04:00
xattr_acl.c