I'm not sure how important these changes are, but perhaps we'll find fsync
faster than O_SYNC on linux 2.6.6 where O_SYNC was faster before?


<[EMAIL PROTECTED]>
        [PATCH] ext3 fsync() and fdatasync() speedup
        
        ext3's fsync/fdatasync implementation is currently syncing the inode via a
        full journal commit even if it was unaltered.
        
        Fix that up by exporting the core VFS's inode sync function to modules and
        calling it if the inode is dirty.  We need to do it this way so that the
        inode is moved to the appropriate superblock list and so that the i_state
        dirty flags are appropriately updated.
        
        This speeds up ext3 fsync() for file overwrites by a factor of four (disk
        non-writeback) to forty (disk in writeback mode).

<[EMAIL PROTECTED]>
        [PATCH] speed up ext2 fsync() and fdatasync()
        
        ext2_sync_file() forgets to clear the inode's dirty bits, so we write the
        inode on every fsync(), even if it hasn't changed.
        
        Fix that up via the new sync_file() API which correctly manages the inode
        state bits and the superblock inode lists.
        
        When performing file overwrite on IDE with and without writeback caching
        enabled this patch approximately doubles fsync() speed, bringing it into line
        with O_SYNC writes.
        
        Also, fix up the return value handling in ext2_sync_file().
        
        Credit due to Jeffrey Siegal <[EMAIL PROTECTED]> who noticed the performance
        discrepancy and wrote a test app.



-- 
greg


---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to