BIO_FLUSH and ips(4)

YONETANI Tomokazu qhwt+fbsd at les.ath.cx
Sun Apr 25 03:40:09 UTC 2010


Hello.

The ServeRAID driver, or ips(4), seems to distinguish read or write requests
with a macro called ips_read_request(), which is defined as

  #define ips_read_request(iobuf)		((iobuf)->bio_cmd == BIO_READ)

in its strategy routine and a few other places.  So when the request is
BIO_FLUSH, the ips driver issues a write command (IPS_WRITE_CMD) with
length == 0, right?

My question is, do ServeRAID controllers treat 0-byte write command
as a sync-to-disk request, or is there any command for that purpose?
There's a command called IPS_CACHE_FLUSH_CMD defined in ipsreg.h,
but it's not used anywhere in the normal code path.

Best regards,
YONETANI Tomokazu.


More information about the freebsd-hackers mailing list