Page MenuHomeFreeBSD

umass: fail synchronize_cache
Needs ReviewPublic

Authored by imp on Sun, Mar 23, 9:50 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Mar 31, 1:53 PM
Unknown Object (File)
Mon, Mar 31, 1:53 PM
Unknown Object (File)
Mon, Mar 31, 1:53 PM
Unknown Object (File)
Mon, Mar 31, 1:53 PM
Unknown Object (File)
Mon, Mar 31, 1:53 PM
Unknown Object (File)
Mon, Mar 31, 1:53 PM
Unknown Object (File)
Mon, Mar 31, 1:53 PM
Unknown Object (File)
Mon, Mar 31, 1:53 PM
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