Why ENFILE when EINVAL is used for other arguments on invalid name?  EINVAL is annoying because it's so non-descriptive, but I would expect ENFILE to be a confusing error to see...