kernel-ark/fs
Zach Brown 848c4dd515 dio: zero struct dio with kzalloc instead of manually
This patch uses kzalloc to zero all of struct dio rather than manually
trying to track which fields we rely on being zero.  It passed aio+dio
stress testing and some bug regression testing on ext3.

This patch was introduced by Linus in the conversation that lead up to
Badari's minimal fix to manually zero .map_bh.b_state in commit:

  6a648fa721

It makes the code a bit smaller.  Maybe a couple fewer cachelines to
load, if we're lucky:

   text    data     bss     dec     hex filename
3285925  568506 1304616 5159047  4eb887 vmlinux
3285797  568506 1304616 5158919  4eb807 vmlinux.patched

I was unable to measure a stable difference in the number of cpu cycles
spent in blockdev_direct_IO() when pushing aio+dio 256K reads at
~340MB/s.

So the resulting intent of the patch isn't a performance gain but to
avoid exposing ourselves to the risk of finding another field like
.map_bh.b_state where we rely on zeroing but don't enforce it in the
code.

Signed-off-by: Zach Brown <zach.brown@oracle.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-08-20 22:50:25 -07:00
..
9p
adfs
affs
afs
autofs
autofs4
befs
bfs
cifs [CIFS] Check return code on failed alloc 2007-08-18 00:15:20 +00:00
coda
configfs
cramfs
debugfs
devpts
dlm [DLM] fix basts for granted PR waiting CW 2007-08-14 10:31:02 +01:00
ecryptfs eCryptfs: fix error handling in ecryptfs_init 2007-08-11 15:47:40 -07:00
efs
exportfs
ext2
ext3
ext4
fat
freevxfs
fuse
gfs2 [GFS2] Revert remounting w/o acl option leaves acls enabled 2007-08-14 10:34:40 +01:00
hfs
hfsplus
hostfs
hpfs
hppfs
hugetlbfs
isofs isofs: mounting to regular file may succeed 2007-07-31 15:39:41 -07:00
jbd
jbd2
jffs2 JFFS2 locking regression fix. 2007-08-20 22:44:27 -07:00
jfs
lockd
minix
msdos
ncpfs NCP: delete test of long-deceased CONFIG_NCPFS_DEBUGDENTRY 2007-07-31 15:39:41 -07:00
nfs NFS: Replace flush_scheduled_work with cancel_work_sync() and friends 2007-08-07 16:12:50 -04:00
nfs_common
nfsd
nls
ntfs
ocfs2 ocfs2: set non-default s_time_gran during mount 2007-08-09 17:27:58 -07:00
openpromfs
partitions
proc
qnx4
ramfs
reiserfs
romfs
smbfs
sysfs
sysv
udf UDF: fix UID and GID mount option ignorance 2007-07-31 15:39:43 -07:00
ufs
vfat
xfs
aio.c
anon_inodes.c
attr.c Introduce is_owner_or_cap() to wrap CAP_FOWNER use with fsuid check 2007-07-17 12:00:03 -07:00
bad_inode.c
binfmt_aout.c
binfmt_elf_fdpic.c
binfmt_elf.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio.c
block_dev.c
buffer.c
char_dev.c
compat_ioctl.c [PATCH] remove duplicated ioctl entries in compat_ioctl.c 2007-08-06 15:06:03 -04:00
compat.c
dcache.c
dcookies.c
direct-io.c dio: zero struct dio with kzalloc instead of manually 2007-08-20 22:50:25 -07:00
dnotify.c
dquot.c
drop_caches.c
eventfd.c
eventpoll.c
exec.c Reset current->pdeath_signal on SUID binary execution 2007-08-18 09:29:07 -07:00
fcntl.c
fifo.c
file_table.c
file.c
filesystems.c add filesystem subtype support 2007-05-08 11:15:01 -07:00
fs-writeback.c Write back inode data pages even when the inode itself is locked 2007-01-26 12:53:20 -08:00
generic_acl.c
inode.c
inotify_user.c
inotify.c
internal.h
ioctl.c
ioprio.c [PATCH] pid: replace do/while_each_task_pid with do/while_each_pid_task 2007-02-12 09:48:32 -08:00
Kconfig
Kconfig.binfmt
libfs.c
locks.c rename setlease to generic_setlease 2007-07-31 15:39:43 -07:00
Makefile
mbcache.c
mpage.c consolidate generic_writepages and mpage_writepages 2007-05-11 08:29:35 -07:00
namei.c
namespace.c
nfsctl.c
no-block.c
open.c VFS: fix a race in lease-breaking during truncate 2007-07-31 15:39:42 -07:00
pipe.c
pnode.c
pnode.h
posix_acl.c
quota_v1.c
quota_v2.c
quota.c
read_write.c
read_write.h
readdir.c
select.c
seq_file.c
signalfd.c
splice.c
stack.c [PATCH] fs/stack.c: Copy i_nlink after all other attributes are copied 2007-02-19 14:21:50 -08:00
stat.c
super.c
sync.c
timerfd.c
utimes.c
xattr_acl.c
xattr.c Introduce is_owner_or_cap() to wrap CAP_FOWNER use with fsuid check 2007-07-17 12:00:03 -07:00