HomeFreeBSD

Do not set B_NOCACHE on buffers when releasing them in flushbuflist().
rS158906Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

Do not set B_NOCACHE on buffers when releasing them in flushbuflist().
If B_NOCACHE is set the pages of vm backed buffers will be invalidated.
However clean buffers can be backed by dirty VM pages so invalidating them
can lead to data loss.
Add support for flush dirty page in the data invalidation function
of some network file systems.

This fixes data losses during vnode recycling (and other code paths
using invalbuf(*,V_SAVE,*,*)) for data written using an mmaped file.

Collaborative effort by: jhb@,mohans@,peter@,ps@,ups@
Reviewed by: tegge@
MFC after: 7 days

Details

Provenance
upsAuthored on
Parents
rS158905: Since NFSv4 is not SMP safe, nfsiod needs to acquire Giant for NFSv4 mounts
Branches
Unknown
Tags
Unknown

Event Timeline