We don't generally handle MIG_BAD_ID.  That error indicates a server not
implementing the protocol for which it's being used, which is a server bug.
If anything, we'd translate that to EGRATUITOUS in the general case, and
perhaps to EOPNOTSUPP in particular cases where it's not an ironclad part
of the interface contract that it implement the particular protocol.  So I
think we should separate the MIG_BAD_ID case and treat it more generally,
if at all.

Since it's the norm for servers to return EOPNOTSUPP for miscellaneous RPCs
they aren't implementing, translating that to EINVAL for fsync/fdatasync is
reasonable.  It should have a comment saying that POSIX.1 specifies EINVAL
for a file descriptor on which sync is not supported.


Thanks,
Roland

Reply via email to