Page MenuHomeFreeBSD

swap on file: fix locking
ClosedPublic

Authored by kib on Nov 25 2021, 5:29 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 17 2024, 2:17 PM
Unknown Object (File)
Jan 12 2024, 2:30 PM
Unknown Object (File)
Dec 26 2023, 4:18 AM
Unknown Object (File)
Nov 17 2023, 5:32 AM
Unknown Object (File)
Sep 20 2023, 11:20 PM
Unknown Object (File)
Aug 29 2023, 2:55 AM
Unknown Object (File)
Aug 6 2023, 7:55 AM
Unknown Object (File)
Jul 9 2023, 5:32 PM
Subscribers

Details

Summary
swap pager: lock vnode around VOP_CLOSE()
swapon: extend the region where the swap vnode is locked

to cover VOP_GETATTR() call in sys_swapon().  Move locking from inside
swapongeom() and swaponvp() into sys_swapon().
swap_pager: lock vnode in swapdev_strategy()

VOP_STRATEGY() requires locked vnode.  Note that we lock the swap vnode
while pages are busy, but this would only cause real LoR if pages belong
to the swap vnode, which must not be the case for correct use.

Reported and tested by: peterj

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable