On Mon, Aug 04, 2008 at 08:46:52AM +0530, Aneesh Kumar K.V wrote: > __fsync_super use filemap_fdatawait(mapping) for waiting on writeback > pages. But all the dirty pages of the inode are not in writeback because > we might have had block allocation failures. Yes, but that should only happen if the filesystem is full or a user's quota is overrun, correct? > Also with the current code base I am seeing buffer_heads which are > unmapped, non delay and dirty That means writepages won't allocate > block for them and writepage cannot write them. I thought all writes went through the page cache? Are you saying that the *pages* are clean but the buffer_heads are marked dirty? In that case, ext4_da_writepages, if wbc.sync_mode is not WB_SYNC_NONE, *must* wait on them and not return until the buffers are safely on disk, since filemap_fdatawait(mapping) won't in __sync_single_inode() won't do the waiting for the writepages routine. - Ted -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html