aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fs-writeback.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2011-05-27 06:53:02 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2011-05-27 07:04:40 -0400
commitaa38572954ade525817fe88c54faebf85e5a61c0 (patch)
treeef398ec06c97134592f62a49c99f3f80041b427c /fs/fs-writeback.c
parentd6e9bd256c88ce5f4b668249e363a74f51393daa (diff)
fs: pass exact type of data dirties to ->dirty_inode
Tell the filesystem if we just updated timestamp (I_DIRTY_SYNC) or anything else, so that the filesystem can track internally if it needs to push out a transaction for fdatasync or not. This is just the prototype change with no user for it yet. I plan to push large XFS changes for the next merge window, and getting this trivial infrastructure in this window would help a lot to avoid tree interdependencies. Also remove incorrect comments that ->dirty_inode can't block. That has been changed a long time ago, and many implementations rely on it. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/fs-writeback.c')
-rw-r--r--fs/fs-writeback.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 34591ee804b5..0f015a0468de 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -1007,9 +1007,6 @@ static noinline void block_dump___mark_inode_dirty(struct inode *inode)
1007 * In short, make sure you hash any inodes _before_ you start marking 1007 * In short, make sure you hash any inodes _before_ you start marking
1008 * them dirty. 1008 * them dirty.
1009 * 1009 *
1010 * This function *must* be atomic for the I_DIRTY_PAGES case -
1011 * set_page_dirty() is called under spinlock in several places.
1012 *
1013 * Note that for blockdevs, inode->dirtied_when represents the dirtying time of 1010 * Note that for blockdevs, inode->dirtied_when represents the dirtying time of
1014 * the block-special inode (/dev/hda1) itself. And the ->dirtied_when field of 1011 * the block-special inode (/dev/hda1) itself. And the ->dirtied_when field of
1015 * the kernel-internal blockdev inode represents the dirtying time of the 1012 * the kernel-internal blockdev inode represents the dirtying time of the
@@ -1028,7 +1025,7 @@ void __mark_inode_dirty(struct inode *inode, int flags)
1028 */ 1025 */
1029 if (flags & (I_DIRTY_SYNC | I_DIRTY_DATASYNC)) { 1026 if (flags & (I_DIRTY_SYNC | I_DIRTY_DATASYNC)) {
1030 if (sb->s_op->dirty_inode) 1027 if (sb->s_op->dirty_inode)
1031 sb->s_op->dirty_inode(inode); 1028 sb->s_op->dirty_inode(inode, flags);
1032 } 1029 }
1033 1030
1034 /* 1031 /*