Page MenuHomeFreeBSD

umass: fail synchronize_cache
ClosedPublic

Authored by imp on Mar 23 2025, 9:50 PM.
Tags
None
Referenced Files
F154343395: D49466.diff
Mon, Apr 27, 11:43 PM
F154226670: D49466.id.diff
Mon, Apr 27, 6:35 AM
Unknown Object (File)
Thu, Apr 23, 8:02 AM
Unknown Object (File)
Wed, Apr 22, 11:30 PM
Unknown Object (File)
Wed, Apr 22, 6:19 PM
Unknown Object (File)
Tue, Apr 21, 3:50 AM
Unknown Object (File)
Fri, Apr 17, 7:09 AM
Unknown Object (File)
Tue, Apr 7, 9:21 AM
Subscribers
None

Details

Summary

When we know the umass device doesn't support synchronize cache
(either probed or hard quirk), fail the command w/o sending it to the
device. The da driver is the only driver that sends this command, and
since this filter was written has grown the ability to catch the
failure and never send the command again.

In an ideal world, we'd let the da driver work this out. However,
there's a lot of devices that hang when this command is sent in a way
that's impossible to detect other than a black list. There's also a
number that require a hard USB endpoint reset to recover, which the
autoquirk code takes care of. So umass has to act as a filter.

By failing this command, we're able to avoid upper level BIO_FLUSH
commands by tagging the underlying disk as not supporting that.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 63073
Build 59957: arc lint + arc unit