Page MenuHomeFreeBSD

(lookup 4) ufs: add support for lockless lookup
ClosedPublic

Authored by mjg on Jul 6 2020, 7:34 PM.

Details

Summary

ACLs are not supported, meaning their presence will force the use of the old lookup.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

mjg requested review of this revision.Jul 6 2020, 7:34 PM

I cannot speak to the correctness of the whole patch, but looking over D25577, D25578, and this one, D25579, I see nothing that looks incorrect.

  • add missing seqc to ffs_write for case of clearing suid/sgid
sys/ufs/ffs/ffs_vnops.c
790 ↗(On Diff #74541)

I am not sure why clearing setuid/setgid bits on normal files (only normal files can be written to) requires blocking of lockless lookup. The bits do not affect permissions to do the lookup.

1088 ↗(On Diff #74541)

Same.

sys/ufs/ufs/ufs_vnops.c
1626 ↗(On Diff #74541)

is it _begin() or _end() ?

  • fix mismatched seqc on rename error
sys/ufs/ffs/ffs_vnops.c
790 ↗(On Diff #74541)

This is not necessary. It alters i_mode and I think only modifying it within seqc is a good invariant to have. However, this can be pushed way down to wrap the actual modification, I have no strong opinion.

mjg marked an inline comment as done.
  • tighten seqc coverage in write/extwrite
In D25579#570728, @mjg wrote:
  • tighten seqc coverage in write/extwrite

I think even this reduced scope is not needed.

This revision is now accepted and ready to land.Jul 22 2020, 8:54 PM
This revision was automatically updated to reflect the committed changes.