[RFC 2/2] vdpa_sim_blk: add support for fua write commands

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Expose VIRTIO_BLK_F_OUT_FUA to drivers. The simulator is a ramdisk, so
it handles VIRTIO_BLK_T_OUT and VIRTIO_BLK_T_OUT_FUA in the same way.

Signed-off-by: Alberto Faria <afaria@xxxxxxxxxx>
---
 drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c b/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
index b137f36793439..64f293e2931d1 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
@@ -31,7 +31,8 @@
 				 (1ULL << VIRTIO_BLK_F_TOPOLOGY) | \
 				 (1ULL << VIRTIO_BLK_F_MQ)       | \
 				 (1ULL << VIRTIO_BLK_F_DISCARD)  | \
-				 (1ULL << VIRTIO_BLK_F_WRITE_ZEROES))
+				 (1ULL << VIRTIO_BLK_F_WRITE_ZEROES)  | \
+				 (1ULL << VIRTIO_BLK_F_OUT_FUA))
 
 #define VDPASIM_BLK_CAPACITY	0x40000
 #define VDPASIM_BLK_SIZE_MAX	0x1000
@@ -158,7 +159,7 @@ static bool vdpasim_blk_handle_req(struct vdpasim *vdpasim,
 	status = VIRTIO_BLK_S_OK;
 
 	if (type != VIRTIO_BLK_T_IN && type != VIRTIO_BLK_T_OUT &&
-	    sector != 0) {
+	    type != VIRTIO_BLK_T_OUT_FUA && sector != 0) {
 		dev_dbg(&vdpasim->vdpa.dev,
 			"sector must be 0 for %u request - sector: 0x%llx\n",
 			type, sector);
@@ -191,6 +192,7 @@ static bool vdpasim_blk_handle_req(struct vdpasim *vdpasim,
 		break;
 
 	case VIRTIO_BLK_T_OUT:
+	case VIRTIO_BLK_T_OUT_FUA:
 		if (!vdpasim_blk_check_range(vdpasim, sector,
 					     to_pull >> SECTOR_SHIFT,
 					     VDPASIM_BLK_SIZE_MAX * VDPASIM_BLK_SEG_MAX)) {
-- 
2.49.0





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux