Commit d4168007 authored by Guixin Liu's avatar Guixin Liu Committed by Christoph Hellwig
Browse files

nvmet: avoid unnecessary flush bio



For no volatile write cache block device backend, sending flush bio is
unnecessary, avoid to do that.

Signed-off-by: default avatarGuixin Liu <kanie@linux.alibaba.com>
Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent c46724cb
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -334,6 +334,11 @@ static void nvmet_bdev_execute_flush(struct nvmet_req *req)
{
	struct bio *bio = &req->b.inline_bio;

	if (!bdev_write_cache(req->ns->bdev)) {
		nvmet_req_complete(req, NVME_SC_SUCCESS);
		return;
	}

	if (!nvmet_check_transfer_len(req, 0))
		return;

@@ -347,6 +352,9 @@ static void nvmet_bdev_execute_flush(struct nvmet_req *req)

u16 nvmet_bdev_flush(struct nvmet_req *req)
{
	if (!bdev_write_cache(req->ns->bdev))
		return 0;

	if (blkdev_issue_flush(req->ns->bdev))
		return NVME_SC_INTERNAL | NVME_SC_DNR;
	return 0;