On Fri, Jan 09, 2015 at 07:49:43PM +0100, Christoph Hellwig wrote: > On Fri, Jan 09, 2015 at 09:43:41AM -0800, Trond Myklebust wrote: > > > [nfsv4] NFSv4.1 errata id 3226 (the return of return-on-close layouts) > > > > > > ...on thee nfsv4@xxxxxxxx mailing list. Trond mentions it there. > > > Perhaps we need to revise that errata? > > > > > > > Please see: > > http://www.rfc-editor.org/errata_search.php?eid=3901 > > I think the language in this errata is very confusing, especially: > > "After the client has closed all open stateids and returned the > delegation stateids for a file for which logr_return_on_close > was set to TRUE, the server MUST invalidate all layout segments > that were issued to the client for that file." > > While the idea that return on close layouts should be valid as > long as the "parent" stateid is around make a lot of sense, this > requirement to track all open / delegation stateids per file/client > combination seems insane. Christoph, I don't understand this concern. Section 8.2.1: open stateids: OPEN state for a given client ID/open-owner/filehandle triple delegation stateids: A stateid represents a single delegation held by a client for a particular filehandle. By definition, open/delegation stateids are tracked per file/client combination. > > The only logical way to extend the original text is to require > layouts to be implicitly returned when: > > - the file is close for a layout stateid that is created based on > the open or lock stateid I read you as saying that on the first CLOSE, the layout must be returned. This seems very burdensome in that the client is aware that other OPENs may have occured and expects to be able to still utilize the layout. Under this new model, it would need to get the layout again. I.e., Trond's orginal concern with Section 18.43.3 is just that, the text states that: The logr_return_on_close result field is a directive to return the layout before closing the file. Paraphrasing the errata, this could be rewritten as The logr_return_on_close result field is a directive to return the layout before the last close of the file. > - the delegation is returned for a layout stateid that is created > based on the delegation stateid. This agrees with the paragraph above. > > That is, only keep layouts opened based on the delegation stateid > alive over a close if they are hanging off that delegation stateid. Thanks, Tom -- 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