mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-10 00:26:34 +00:00
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>
This commit is contained in:
parent
d6e9bd256c
commit
aa38572954
19 changed files with 21 additions and 23 deletions
|
@ -1007,9 +1007,6 @@ static noinline void block_dump___mark_inode_dirty(struct inode *inode)
|
|||
* In short, make sure you hash any inodes _before_ you start marking
|
||||
* them dirty.
|
||||
*
|
||||
* This function *must* be atomic for the I_DIRTY_PAGES case -
|
||||
* set_page_dirty() is called under spinlock in several places.
|
||||
*
|
||||
* Note that for blockdevs, inode->dirtied_when represents the dirtying time of
|
||||
* the block-special inode (/dev/hda1) itself. And the ->dirtied_when field of
|
||||
* the kernel-internal blockdev inode represents the dirtying time of the
|
||||
|
@ -1028,7 +1025,7 @@ void __mark_inode_dirty(struct inode *inode, int flags)
|
|||
*/
|
||||
if (flags & (I_DIRTY_SYNC | I_DIRTY_DATASYNC)) {
|
||||
if (sb->s_op->dirty_inode)
|
||||
sb->s_op->dirty_inode(inode);
|
||||
sb->s_op->dirty_inode(inode, flags);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue