Commit 9d1e05d2 authored by Daniel Verkamp's avatar Daniel Verkamp
Browse files

bdev: add getter for write cache enable status



Change-Id: I93656deda8956c77e9565ee1f271795642e62ac9
Signed-off-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent 0d56499d
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -249,6 +249,17 @@ uint32_t spdk_bdev_get_max_unmap_descriptors(const struct spdk_bdev *bdev);
 */
size_t spdk_bdev_get_buf_align(const struct spdk_bdev *bdev);

/**
 * Query whether block device has an enabled write cache.
 *
 * \param bdev Block device to query.
 * \return true if block device has a volatile write cache enabled.
 *
 * If this function returns true, written data may not be persistent until a flush command
 * is issued.
 */
bool spdk_bdev_has_write_cache(const struct spdk_bdev *bdev);

struct spdk_bdev_io *spdk_bdev_read(struct spdk_bdev *bdev, struct spdk_io_channel *ch,
				    void *buf, uint64_t offset, uint64_t nbytes,
				    spdk_bdev_io_completion_cb cb, void *cb_arg);
+6 −0
Original line number Diff line number Diff line
@@ -574,6 +574,12 @@ spdk_bdev_get_buf_align(const struct spdk_bdev *bdev)
	return 1;
}

bool
spdk_bdev_has_write_cache(const struct spdk_bdev *bdev)
{
	return bdev->write_cache;
}

static int
spdk_bdev_io_valid(struct spdk_bdev *bdev, uint64_t offset, uint64_t nbytes)
{
+1 −1
Original line number Diff line number Diff line
@@ -888,7 +888,7 @@ spdk_bdev_scsi_mode_sense_page(struct spdk_bdev *bdev,
		plen = 0x12 + 2;
		mode_sense_page_init(cp, plen, page, subpage);

		if (cp && bdev->write_cache && pc != 0x01)
		if (cp && spdk_bdev_has_write_cache(bdev) && pc != 0x01)
			cp[2] |= 0x4; /* WCE */

		/* Read Cache Disable (RCD) = 1 */
+6 −0
Original line number Diff line number Diff line
@@ -115,6 +115,12 @@ spdk_bdev_get_max_unmap_descriptors(const struct spdk_bdev *bdev)
	return 1;
}

bool
spdk_bdev_has_write_cache(const struct spdk_bdev *bdev)
{
	return false;
}

void
spdk_scsi_lun_clear_all(struct spdk_scsi_lun *lun)
{