On 2011-06-09 08:07, Peng Tao wrote: > Hi, Jim and Benny, > > On Thu, Jun 9, 2011 at 9:58 PM, Jim Rees <rees@xxxxxxxxx> wrote: >> Benny Halevy wrote: >> >> > My understanding is that layoutget specifies a min and max, and the server >> >> There's a min. What do you consider the max? >> Whatever gets into csa_fore_chan_attrs.ca_maxresponsesize? >> >> The spec doesn't say max, it says "desired." I guess I assumed the server >> wouldn't normally return more than desired. > In fact server is returning "desired" length. The problem is that we > call pnfs_update_layout in nfs_write_begin, and it will end up setting > both minlength and length to page size. There is no space for client > to collapse layoutget range in nfs_write_begin. > That's a different issue. Waiting with pnfs_update_layout to flush time rather than write_begin if the whole page is written would help sending a more meaningful desired range as well as avoiding needless read-modify-writes in case the application also wrote the whole preallocated block. Benny >> >> 18.43.3. DESCRIPTION >> ... >> >> The LAYOUTGET operation returns layout information for the specified >> byte-range: a layout. The client actually specifies two ranges, both >> starting at the offset in the loga_offset field. The first range is >> between loga_offset and loga_offset + loga_length - 1 inclusive. >> This range indicates the desired range the client wants the layout to >> cover. The second range is between loga_offset and loga_offset + >> loga_minlength - 1 inclusive. This range indicates the required >> range the client needs the layout to cover. Thus, loga_minlength >> MUST be less than or equal to loga_length. >> > > > -- Benny Halevy CTO, Tonian Inc. Tel: +972-54-802-8340 benny@xxxxxxxxxx -- 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