On 06/01/2011 10:17 PM, Trond Myklebust wrote: > On Wed, 2011-06-01 at 21:56 +0300, Benny Halevy wrote: > >> For pnfs, we need to ignore wsize, meaning we first need to try >> to coalesce the pages and then decide if we're going the nfs_flush_multi >> or the nfs_flush_one way, based on the coalesced length. > > No! Ignoring the wsize is definitely wrong... If the stripe size is > larger than the 'maxwrite' recommended attribute, then the DS is allowed > to do a short write, in which case we have to resend. > As far as I could understand the current code, desc->bsize which derives from wsize/rsize is negotiated with the MDS. But the wsize in question is the DS's one. So I think in pnfs it is only the layout-driver that can check this properly against the filer in question. Only if IO is to go through MDS the bsize check is relevant. BTW: The BUG_ON() Andy hit, does not look like an hard bug to fix ;-) > In any case, nfs_flush_multi and nfs_flush_one need a rewrite in order > to deal properly with O_DIRECT writes, and so I'm expecting to get rid > of the single nfs_page limit for the r/wsize<PAGE_SIZE case. > Please don't make any large changes to this code at this time. > Amen, Good riddance Boaz -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html