On Thu, Aug 29, 2019 at 03:28:38AM -0700, Christoph Hellwig wrote: > On Fri, Aug 02, 2019 at 08:53:31PM +0800, Gao Xiang wrote: > > +struct erofs_qstr { > > + const unsigned char *name; > > + const unsigned char *end; > > +}; > > Maybe erofs_name? The q in qstr stands for quick, because of the > existing hash and len, which this doesn't really provide. > > Also I don't really see why you don't just pass the actual qstr and > just document that dirnamecmp does not look at the hash and thus > doesn't require it to be filled out. q in erofs_qstr also means quick substring. If you have some time to look into it more, it uses a prefixed binary search algorithm (rather than linear traversal), which provides similar proformance with hashed approach but no need to save such hash field and it's natively sorted in alphabet order. Thanks, Gao Xiang >