On Mon 30-04-12 10:41:38, Christoph Hellwig wrote: > On Tue, Mar 20, 2012 at 11:56:27PM +0100, Jan Kara wrote: > > Instead of clearing I_DIRTY_PAGES and resetting it when we didn't succeed in > > writing them all, just clear the bit only when we succeeded writing all the > > pages. We also move the clearing of the bit close to other i_state handling to > > separate it from writeback list handling. This is desirable because list > > handling will differ for flusher thread and other writeback_single_inode() > > callers in future. No filesystem plays any tricks with I_DIRTY_PAGES (like > > checking it in ->writepages or ->write_inode implementation) so this movement > > is safe. > > Looks good to me, > > Reviewed-by: Christoph Hellwig <hch@xxxxxx> Thanks for review. > In addition to this cleanup I wonder if we could go further and just > kill I_DIRTY_PAGES off. I can't see any value add over using > mapping_tagged(mapping, PAGECACHE_TAG_DIRTY), which has the big benefit > of beeing managed transparently by the pagecache radix tree. The only reason I can thing off is that checking whether inode is dirty is simpler with I_DIRTY_PAGES. Without it the check would have to be (inode->i_state & I_DIRTY) || mapping_tagged(inode->i_mapping, PAGECACHE_TAG_DIRTY) which would need a separate helper function I guess. Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html