HomeFreeBSD

vinvalbuf: do not panic if we were unable to flush dirty buffers

Description

vinvalbuf: do not panic if we were unable to flush dirty buffers

Return EBUSY instead and let caller to handle the issue.

For vgone()/vnode reclamation, caller first does vinvalbuf(V_SAVE),
which return EBUSY in case dirty buffers where not flushed. Then caller
calls vinvalbuf(0) due to non-zero return, which gets rid of all dirty
buffers without dependencies.

PR: 238565
Reviewed by: asomers, mckusick
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D30555

(cherry picked from commit 27006229f7a40a18a61a0e8fd270bc583326b690)

fusefs: reenable the WriteCluster.cluster_write_err test

The underlying panic was just fixed by
revision 27006229f7a40a18a61a0e8fd270bc583326b690

PR: 238565
(cherry picked from commit 425bbe9e64f7af6bdb30a099bd90a32885de1ab8)

Details

Provenance
kibAuthored on May 30 2021, 4:52 PM
asomersCommitted on Oct 7 2021, 7:34 PM
Reviewer
asomers
Differential Revision
D30555: vinvalbuf: do not panic if we were unable to flush dirty buffers
Parents
rG09be14a7b80d: gmultipath: make physpath distinct from the underlying providers'
Branches
Unknown
Tags
Unknown