HomeFreeBSD

Fix various issues with invalid file operations:

Description

Fix various issues with invalid file operations:

  • Add invfo_rdwr() (for read and write), invfo_ioctl(), invfo_poll(), and invfo_kqfilter() for use by file types that do not support the respective operations. Home-grown versions of invfo_poll() were universally broken (they returned an errno value, invfo_poll() uses poll_no_poll() to return an appropriate event mask). Home-grown ioctl routines also tended to return an incorrect errno (invfo_ioctl returns ENOTTY).
  • Use the invfo_*() functions instead of local versions for unsupported file operations.
  • Reorder fileops members to match the order in the structure definition to make it easier to spot missing members.
  • Add several missing methods to linuxfileops used by the OFED shim layer: fo_write(), fo_truncate(), fo_kqfilter(), and fo_stat(). Most of these used invfo_*(), but a dummy fo_stat() implementation was added.

Details

Provenance
jhbAuthored on
Parents
rS271488: Tweak pipe_truncate() to more closely match pipe_chown() and pipe_chmod()
Branches
Unknown
Tags
Unknown

Event Timeline