On Thu, Apr 09, 2015 at 12:48:44PM +0800, Junxiao Bi wrote: > Looks like if generic_file_direct_write() return -EIOCBQUEUED and > IS_SYNC(inode) is true, the sync range is also wrong. *blink* But in that case it shouldn't do any syncing at all... Oh, right. Unlike generic_file_write_iter(), if goes into the sync pathway in that case (which was another long-standing bug there)... Fixed and force-pushed. FWIW, once we get to the situation when generic_write_checks() takes iocb and iter, the next step will be mirroring O_DIRECT and O_APPEND state in iocb->ki_flags; then ocfs2_file_write_iter() will be able to use those instead of o_direct/o_append *and* start using __generic_file_write_iter() instead of open-coding it - the problem with "we can't rely on ->f_flags & O_DIRECT to tell if that should be a direct write, need to look at our local flag" will go away... -- 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