On 05/22/2011 02:45 AM, Boaz Harrosh wrote: > > Fred git blame points to you: > > What was the meaning of the below code: > OK Smack *ME* on the head A layout driver must have a .pg_test function else that's what happens. pNFS only for a single page. I'd say it should be opposite no? Boaz > @@ -1014,18 +1015,22 @@ static int nfs_flush_one(struct nfs_pageio_descriptor *desc) > *pages++ = req->wb_page; > } > req = nfs_list_entry(data->pages.next); > if ((!lseg) && list_is_singular(&data->pages)) > lseg = pnfs_update_layout(desc->pg_inode, req->wb_context, > req_offset(req), desc->pg_count, > IOMODE_RW); > > I mean why only the list_is_singular() case gets a pnfs_update_layout? > > Because I have a very funny BUG: > If I do: > dd if=/dev/zero of=/mnt/pnfs/dd1 bs=4k count=1 > I get a nice pnfs write out. > But if I do: > dd if=/dev/zero of=/mnt/pnfs/dd1 bs=4k count=2 (or any > 1) > I see all IO going to MDS > > Below patch fixes that: > @@ -1014,18 +1015,22 @@ static int nfs_flush_one(struct nfs_pageio_descriptor *desc) > *pages++ = req->wb_page; > } > req = nfs_list_entry(data->pages.next); > - if ((!lseg) && list_is_singular(&data->pages)) > + if ((!lseg) /*&& list_is_singular(&data->pages)*/) > lseg = pnfs_update_layout(desc->pg_inode, req->wb_context, > req_offset(req), desc->pg_count, > IOMODE_RW); > > Which points to what I'm saying all along. pNFS Write path had no testing > but by me. > > (BTW am still fighting the unbalanced lseg ref) > > Thanks > 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 -- 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