> int > attr_list_path(pathname_t *name, > char *buffer, > + const int buffersize) > { > char buf[NAME_MAX + 1]; > pathname_t newname; > int rval; > > + rval = llistxattr(name->path, buffer, buffersize); > if (rval >= 0 || errno != ENAMETOOLONG) > return rval; > separate_pathname(name, buf, &newname); > if (chdir(buf) == 0) { > + rval = attr_list_path(&newname, buffer, buffersize); Shouldn't this just call llistxattr directly instead of recursing into attr_list_path? That whole separate_pathname business looks weird, but that is for another time.. Otherwise looks good: Reviewed-by: Christoph Hellwig <hch@xxxxxx>