]> git.neil.brown.name Git - history.git/commit
[PATCH] remove i_dirty_data_buffers
authorAndrew Morton <akpm@zip.com.au>
Tue, 30 Apr 2002 06:53:20 +0000 (23:53 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Tue, 30 Apr 2002 06:53:20 +0000 (23:53 -0700)
commit7d513234c45c6428985e77a5fd6d1382b8fa205b
treec53addf52a1f3c8207006c2ea433c271a6a262a9
parentdf6867ef84a7d9ee4d44f451751a3f4128de10f9
[PATCH] remove i_dirty_data_buffers

Removes inode.i_dirty_data_buffers.  It's no longer used - all dirty
buffers have their pages marked dirty and filemap_fdatasync() /
filemap_fdatawait() catches it all.

Updates all callers.

This required a change in JFS - it has "metapages" which
are a container around a page which holds metadata.  They
were holding these pages locked and were relying on fsync_inode_data_buffers
for writing them out.  So fdatasync() deadlocked.

I've changed JFS to not lock those pages.  Change was acked
by Dave Kleikamp <shaggy@austin.ibm.com> as the right
thing to do, but may not be complete.  Probably igrab()
against ->host is needed to pin the address_space down.
17 files changed:
fs/buffer.c
fs/ext2/fsync.c
fs/ext3/fsync.c
fs/inode.c
fs/jfs/file.c
fs/jfs/jfs_dmap.c
fs/jfs/jfs_imap.c
fs/jfs/jfs_logmgr.c
fs/jfs/jfs_metapage.c
fs/jfs/jfs_txnmgr.c
fs/jfs/super.c
fs/minix/file.c
fs/reiserfs/file.c
fs/sysv/file.c
fs/udf/fsync.c
include/linux/fs.h
mm/filemap.c