1
linux/fs
Chris Mason 398c95bdf2 try to reap reiserfs pages left around by invalidatepage
reiserfs_invalidatepage will refuse to free pages if they have been logged
in data=journal mode, or were pinned down by a data=ordered operation.  For
data=journal, this is fairly easy to trigger just with fsx-linux, and it
results in a large number of pages hanging around on the LRUs with
page->mapping == NULL.

Calling try_to_free_buffers when reiserfs decides it is done with the page
allows it to be freed earlier, and with much less VM thrashing.  Lock
ordering rules mean that reiserfs can't call lock_page when it is releasing
the buffers, so TestSetPageLocked is used instead.  Contention on these
pages should be rare, so it should be sufficient most of the time.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
Cc: "Vladimir V. Saveliev" <vs@namesys.com>
Cc: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-17 08:42:57 -07:00
..
9p 9PFS: clean up explicit check for mandatory locks 2007-10-09 18:32:46 -04:00
adfs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
affs fs: mark nibblemap const 2007-10-17 08:42:47 -07:00
afs Drop some headers from mm.h 2007-10-17 08:42:55 -07:00
autofs
autofs4 fs/autofs4/inode.c: kmalloc + memset conversion to kzalloc 2007-10-17 08:42:50 -07:00
befs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
bfs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
cifs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
coda Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
configfs mm: bdi init hooks 2007-10-17 08:42:45 -07:00
cramfs cramfs: error message about endianess 2007-10-17 08:42:53 -07:00
debugfs docbook: fix filesystems content 2007-10-15 17:56:36 -07:00
devpts
dlm Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2007-10-12 15:49:37 -07:00
ecryptfs Clean up duplicate includes in fs/ecryptfs/ 2007-10-17 08:42:48 -07:00
efs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
exportfs
ext2 ext2/4: use is_power_of_2() 2007-10-17 08:42:53 -07:00
ext3 Fix f_version type: should be u64 instead of unsigned long 2007-10-17 08:42:53 -07:00
ext4 Fix f_version type: should be u64 instead of unsigned long 2007-10-17 08:42:53 -07:00
fat Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
freevxfs
fuse Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
gfs2 Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
hfs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
hfsplus Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
hostfs uml: fix hostfs style 2007-10-16 09:43:07 -07:00
hpfs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
hppfs
hugetlbfs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
isofs zisofs use mutex instead of semaphore 2007-10-17 08:42:47 -07:00
jbd Group short-lived and reclaimable kernel allocations 2007-10-16 09:43:00 -07:00
jbd2
jffs2 Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
jfs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
lockd
minix limit minixfs printks on corrupted dir i_size 2007-10-17 08:42:53 -07:00
msdos
ncpfs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
nfs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
nfs_common
nfsd fs/nfsd/export.c: make 3 functions static 2007-10-16 09:43:10 -07:00
nls
ntfs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
ocfs2 Fix f_version type: should be u64 instead of unsigned long 2007-10-17 08:42:53 -07:00
openpromfs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
partitions fs/partitions/sun.c endianness annotations 2007-10-14 12:41:51 -07:00
proc Fix f_version type: should be u64 instead of unsigned long 2007-10-17 08:42:53 -07:00
qnx4 Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
ramfs Remove valueless definition of hard-selected RAMFS option 2007-10-17 08:42:56 -07:00
reiserfs try to reap reiserfs pages left around by invalidatepage 2007-10-17 08:42:57 -07:00
romfs fs/romfs/inode.c: trivial improvements 2007-10-17 08:42:47 -07:00
smbfs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
sysfs mm: bdi init hooks 2007-10-17 08:42:45 -07:00
sysv Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
udf Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
ufs ufs: Fix mount check in ufs_fill_super() 2007-10-17 08:42:51 -07:00
vfat
xfs Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
aio.c aio: account I/O wait time properly 2007-10-17 08:42:53 -07:00
anon_inodes.c
attr.c
bad_inode.c
binfmt_aout.c core_pattern: ignore RLIMIT_CORE if core_pattern is a pipe 2007-10-17 08:42:50 -07:00
binfmt_elf_fdpic.c core_pattern: ignore RLIMIT_CORE if core_pattern is a pipe 2007-10-17 08:42:50 -07:00
binfmt_elf.c Add MMF_DUMP_ELF_HEADERS 2007-10-17 08:42:52 -07:00
binfmt_em86.c
binfmt_flat.c binfmt_flat: warning fixes 2007-10-17 08:42:54 -07:00
binfmt_misc.c
binfmt_script.c
binfmt_som.c core_pattern: ignore RLIMIT_CORE if core_pattern is a pipe 2007-10-17 08:42:50 -07:00
bio.c bio: make freeing of ->bi_io_vec conditional in bio_free() 2007-10-16 11:03:52 +02:00
block_dev.c Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
buffer.c mm: count reclaimable pages per BDI 2007-10-17 08:42:45 -07:00
char_dev.c mm: bdi init hooks 2007-10-17 08:42:45 -07:00
compat_ioctl.c Clean up duplicate includes in fs/ 2007-10-17 08:42:48 -07:00
compat.c
dcache.c dcache: trivial comment fix 2007-10-17 08:42:57 -07:00
dcookies.c
direct-io.c remove ZERO_PAGE 2007-10-16 09:42:53 -07:00
dnotify.c
dquot.c quota: send messages via netlink 2007-10-17 08:42:56 -07:00
drop_caches.c
eventfd.c
eventpoll.c
exec.c exec: RT sub-thread can livelock and monopolize CPU on exec 2007-10-17 08:42:54 -07:00
fcntl.c
fifo.c
file_table.c fs: use kmem_cache_zalloc instead 2007-10-17 08:42:48 -07:00
file.c
filesystems.c
fs-writeback.c Fix warnings with !CONFIG_BLOCK 2007-10-10 09:25:57 +02:00
generic_acl.c
inode.c fs: remove the unused mempages parameter 2007-10-17 08:42:49 -07:00
inotify_user.c
inotify.c
internal.h
ioctl.c
ioprio.c
Kconfig quota: send messages via netlink 2007-10-17 08:42:56 -07:00
Kconfig.binfmt
libfs.c make fs/libfs.c:simple_commit_write() static 2007-10-17 08:42:53 -07:00
locks.c Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
Makefile Remove valueless definition of hard-selected RAMFS option 2007-10-17 08:42:56 -07:00
mbcache.c
mpage.c mm: buffered write cleanup 2007-10-16 09:42:54 -07:00
namei.c fix execute checking in permission() 2007-10-17 08:42:52 -07:00
namespace.c fs: remove the unused mempages parameter 2007-10-17 08:42:49 -07:00
nfsctl.c
no-block.c
open.c SELinux: Improve read/write performance 2007-10-17 08:59:31 +10:00
pipe.c sched: affine sync wakeups 2007-10-15 17:00:19 +02:00
pnode.c
pnode.h
posix_acl.c
quota_v1.c
quota_v2.c
quota.c
read_write.c Cleanup macros for distinguishing mandatory locks 2007-10-09 18:32:46 -04:00
read_write.h
readdir.c
select.c Use ERESTART_RESTARTBLOCK if poll() is interrupted by a signal 2007-10-17 08:42:53 -07:00
seq_file.c [FS] seq_file: Introduce the seq_open_private() 2007-10-10 16:55:33 -07:00
signalfd.c
splice.c Merge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block 2007-10-16 10:09:16 -07:00
stack.c
stat.c
super.c
sync.c
timerfd.c
utimes.c VFS: check nanoseconds in utimensat 2007-10-17 08:42:52 -07:00
xattr_acl.c
xattr.c