HomeFreeBSD

Allow some VOPs to return ERELOOKUP to indicate VFS operation restart at top…

Description

Allow some VOPs to return ERELOOKUP to indicate VFS operation restart at top level.

Restart syscalls and some sync operations when filesystem indicated
ERELOOKUP condition, mostly for VOPs operating on metdata. In
particular, lookup results cached in the inode/v_data is no longer
valid and needs recalculating. Right now this should be nop.

Assert that ERELOOKUP is catched everywhere and not returned to
userspace, by asserting that td_errno != ERELOOKUP on syscall return
path.

In collaboration with: pho
Reviewed by: mckusick (previous version), markj
Tested by: markj (syzkaller), pho
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D26136

Details

Provenance
kibAuthored on
Reviewer
mckusick
Differential Revision
D26136: Handle LoR in flush_pagedep_deps().
Parents
rS367631: Implement vn_lock_pair().
Branches
Unknown
Tags
Unknown