Provided by: linux-doc-2.6.15_2.6.15-23.39_all
__mark_inode_dirty - internal function
void __mark_inode_dirty (struct inode * inode, int flags);
inode inode to mark
flags what kind of dirty (i.e. I_DIRTY_SYNC) Mark an inode as dirty.
Callers should use mark_inode_dirty or mark_inode_dirty_sync.
Put the inode on the super block’s dirty list.
CAREFUL! We mark it dirty unconditionally, but move it onto the dirty
list only if it is hashed or if it refers to a blockdev. If it was not
hashed, it will never be added to the dirty list even if it is later
hashed, as it will have been marked dirty already.
In short, make sure you hash any inodes _before_ you start marking them
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 blockdev’s pages. This is why for
I_DIRTY_PAGES we always use page->mapping->host, so the page-dirtying
time is recorded in the internal blockdev inode.