I think there are two ways to analyze the code boundary issue. One is "does it belong in the kernel?" Another is, "does it belong in the filesystem. and if so should name resolution in a filesystem be split into two parts, one in kernel, and one in user space." In ten years I might have the knowledge needed to make such a split, but I know for sure that I don't know how to do it today without regretting it tomorrow, and I don't really have confidence that I will ever be able to do it without losing performance.
I don't see how exporting a set of indices on file attributes to userspace constitutes putting part of the name resolution into userspace. A file's name (or names, in the case of hardlinks) would still be determined entirely within the filesystem.
The more I think about it, the more I am convinced that "the index" is the correct primative to use for exposing any filesystem's fast searching features.
-- Will Dyson "Back off man, I'm a scientist!" -Dr. Peter Venkman