Ok, there's a test13-pre6 out there now, which does a partial sync with2.4.0-test13pre6
commit31d65e93a998f57f3640a446029d9153198d4c56
authorLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:41:06 +0000 (23 15:41 -0500)
committerLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:41:06 +0000 (23 15:41 -0500)
treeb7f03e2e0347ac474b0d5ba7910d98da3bf7d611
parent480eec6cdddc49cc783e0a404d0fe593639f90dd
Ok, there's a test13-pre6 out there now, which does a partial sync with
Alan, in addition to hopefully fixing the innd shared mapping writeback
problem for good.  Thanks to Marcelo Tosatti and others..

I've pounded on the shared dirty page writeback logic quite a bit, and
verified (by doing timings with "strace -ttT") that it should do the right
thing with sync/fsync/fdatasync/msync(MS_ASYNC)/msync(MS_SYNC).

The reason I'm fairly confident that the problem is gone for good is that
the dirty page handling is now quite integral to the whole address space
code, and it fell out rather nicely from some mapping host cleanups.

Al: this changes "mapping->host" to be truly defined as a pointer to the
inode that owns the mapping. That's how every user actually _used_ the
host pointer, so this cleans those up to not need any casts. The main
reason, however, is that we needed to have some FS-level anchor for dirty
pages in order to get the correct sync() semantics. If you think it's
worth it to have a notion of an anonymous host we need to add something
else.

Stephen: mind trying your fsync/etc tests on this one, to verify that the
inode dirty stuff is all done right?

Marco d'Itri and everybody else who has seen innd problems (or other
shared map problems): can you verify that test13-pre6 works for you?

Linus

- Marc Joosen: BIOS int15/e820 memory query: don't assume %edx
  unchanged by the BIOS. Fixes at least some IBM ThinkPads.
- Alan Cox: synchronize
- Marcelo Tosatti & me: properly sync dirty pages
- Andreas Dilger: proper ext2 compat flag checking
157 files changed:
CREDITS
Documentation/Changes
Documentation/i2c/functionality [new file with mode: 0644]
Documentation/modules.txt
Documentation/sound/ALS
Makefile
arch/i386/boot/setup.S
arch/i386/config.in
arch/i386/kernel/Makefile
arch/i386/kernel/smp.c
arch/i386/kernel/time.c
drivers/acpi/include/aclinux.h
drivers/acpi/ksyms.c
drivers/atm/Config.in
drivers/atm/ambassador.c
drivers/atm/atmdev_init.c
drivers/atm/atmtcp.c
drivers/atm/firestream.c [new file with mode: 0644]
drivers/atm/firestream.h [new file with mode: 0644]
drivers/atm/fore200e.c
drivers/atm/horizon.c
drivers/atm/iphase.c
drivers/atm/nicstar.c
drivers/char/generic_serial.c
drivers/char/i810-tco.c
drivers/char/pcxx.c
drivers/char/sh-sci.c
drivers/char/sx.c
drivers/i2c/i2c-algo-pcf.c
drivers/i2c/i2c-core.c
drivers/i2c/i2c-dev.c
drivers/isdn/Config.in
drivers/isdn/Makefile
drivers/isdn/act2000/Makefile
drivers/isdn/avmb1/Makefile
drivers/isdn/divert/Makefile
drivers/isdn/eicon/Makefile
drivers/isdn/hisax/Makefile
drivers/isdn/hysdn/Makefile
drivers/isdn/icn/Makefile
drivers/isdn/isdn_cards.c
drivers/isdn/isdn_common.c
drivers/isdn/isdnloop/Makefile
drivers/isdn/pcbit/Makefile
drivers/isdn/sc/Makefile
drivers/net/8139too.c
drivers/net/hamradio/bpqether.c
drivers/net/hamradio/mkiss.c
drivers/net/hamradio/yam.c
drivers/pcmcia/cs.c
drivers/scsi/aha152x.c
drivers/scsi/pci2000.c
drivers/scsi/pci2220i.c
drivers/scsi/sim710.c
drivers/sound/cmpci.c
drivers/sound/cs4281.c
drivers/sound/es1370.c
drivers/sound/es1371.c
drivers/sound/esssolo1.c
drivers/sound/maestro.c
drivers/sound/sonicvibes.c
drivers/sound/trident.c
drivers/telephony/ixj.c
drivers/telephony/ixj.h
fs/adfs/inode.c
fs/affs/file.c
fs/affs/symlink.c
fs/buffer.c
fs/coda/dir.c
fs/coda/file.c
fs/coda/inode.c
fs/coda/symlink.c
fs/cramfs/inode.c
fs/efs/symlink.c
fs/ext2/balloc.c
fs/ext2/inode.c
fs/ext2/super.c
fs/fat/inode.c
fs/hfs/inode.c
fs/hpfs/file.c
fs/hpfs/namei.c
fs/inode.c
fs/isofs/rock.c
fs/jffs/inode-v23.c
fs/lockd/xdr4.c
fs/ncpfs/symlink.c
fs/nfs/file.c
fs/nfs/read.c
fs/nfs/write.c
fs/nls/Config.in
fs/ntfs/fs.c
fs/qnx4/inode.c
fs/ramfs/inode.c
fs/romfs/inode.c
fs/smbfs/file.c
fs/udf/file.c
fs/udf/symlink.c
include/linux/atm_tcp.h
include/linux/atmdev.h
include/linux/ext2_fs.h
include/linux/ext2_fs_sb.h
include/linux/fs.h
include/linux/generic_serial.h
include/linux/i2c-dev.h
include/linux/i2c-id.h
include/linux/i2c.h
include/linux/lvm.h
include/linux/mm.h
include/net/ax25.h
ipc/shm.c
mm/filemap.c
mm/memory.c
mm/shmem.c
mm/swap_state.c
mm/vmscan.c
net/atm/addr.c
net/atm/common.c
net/atm/lec.c
net/atm/proc.c
net/atm/resources.c
net/atm/signaling.c
net/ax25/af_ax25.c
net/ax25/ax25_addr.c
net/ax25/ax25_dev.c
net/ax25/ax25_ds_in.c
net/ax25/ax25_ds_subr.c
net/ax25/ax25_ds_timer.c
net/ax25/ax25_iface.c
net/ax25/ax25_in.c
net/ax25/ax25_ip.c
net/ax25/ax25_out.c
net/ax25/ax25_route.c
net/ax25/ax25_std_in.c
net/ax25/ax25_std_subr.c
net/ax25/ax25_std_timer.c
net/ax25/ax25_subr.c
net/ax25/ax25_timer.c
net/ax25/ax25_uid.c
net/ipv4/ipconfig.c
net/netrom/af_netrom.c
net/netrom/nr_dev.c
net/netrom/nr_in.c
net/netrom/nr_loopback.c
net/netrom/nr_out.c
net/netrom/nr_route.c
net/netrom/nr_subr.c
net/netrom/nr_timer.c
net/rose/af_rose.c
net/rose/rose_dev.c
net/rose/rose_in.c
net/rose/rose_link.c
net/rose/rose_loopback.c
net/rose/rose_out.c
net/rose/rose_route.c
net/rose/rose_subr.c
net/rose/rose_timer.c
scripts/kernel-doc