On Fri, 22 Apr 2011 08:09:12 -0400 Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > On Fri, Apr 22, 2011 at 04:05:31PM +0400, Pavel Shilovsky wrote: > > We call filemap_fdatawrite -> __filemap_fdatawrite(WB_SYNC_ALL) -> > > __filemap_fdatawrite_range(WB_SYNC_ALL) -> do_writepages -> > > cifs_writepages. > > > > cifs_writepages with WB_SYNC_ALL is sync operations (even with you > > async writepages set) > > It really shouldn't be synchronous. The defintion of WB_SYNC_ALL > is that it doesn't skip pages when initiating writeout, but you still > have to wait for them to complete using filemap_fdatawait. > Yes, I think my current patchset is wrong. It has cifs_writepages wait for all of the writes to complete before returning in the WB_SYNC_ALL case. I think it would probably be better to have it just return after submitting the writes, and have the write completion handler resubmit them if the error is retryable. -- Jeff Layton <jlayton@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html