Fred git blame points to you: What was the meaning of the below code: @@ -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