ext3: Wait for proper transaction commit on fsync
We cannot rely on buffer dirty bits during fsync because pdflush can come before fsync is called and clear dirty bits without forcing a transaction commit. What we do is that we track which transaction has last changed the inode and which transaction last changed allocation and force it to disk on fsync. Signed-off-by: Jan Kara <jack@suse.cz> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
This commit is contained in:
parent
ea0174a713
commit
fe8bc91c4c
4 changed files with 57 additions and 21 deletions
|
@ -466,6 +466,8 @@ static struct inode *ext3_alloc_inode(struct super_block *sb)
|
|||
return NULL;
|
||||
ei->i_block_alloc_info = NULL;
|
||||
ei->vfs_inode.i_version = 1;
|
||||
atomic_set(&ei->i_datasync_tid, 0);
|
||||
atomic_set(&ei->i_sync_tid, 0);
|
||||
return &ei->vfs_inode;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue