Skip to content

Commit 005c674

Browse files
Christoph Hellwigaxboe
authored andcommitted
nvmet: ignore EOPNOTSUPP for discard
NVMe DSM is a pure hint, so if the underlying device / file system does not support discard-like operations we should not fail the operation but rather return success. Fixes: 3b031d1 ("nvmet: add error log support for bdev backend") Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> Tested-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent 9f0916a commit 005c674

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

drivers/nvme/target/io-cmd-bdev.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,11 +194,11 @@ static u16 nvmet_bdev_discard_range(struct nvmet_req *req,
194194
le64_to_cpu(range->slba) << (ns->blksize_shift - 9),
195195
le32_to_cpu(range->nlb) << (ns->blksize_shift - 9),
196196
GFP_KERNEL, 0, bio);
197-
198-
if (ret)
197+
if (ret && ret != -EOPNOTSUPP) {
199198
req->error_slba = le64_to_cpu(range->slba);
200-
201-
return blk_to_nvme_status(req, errno_to_blk_status(ret));
199+
return blk_to_nvme_status(req, errno_to_blk_status(ret));
200+
}
201+
return NVME_SC_SUCCESS;
202202
}
203203

204204
static void nvmet_bdev_execute_discard(struct nvmet_req *req)

drivers/nvme/target/io-cmd-file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ static void nvmet_file_execute_discard(struct nvmet_req *req)
297297
}
298298

299299
ret = vfs_fallocate(req->ns->file, mode, offset, len);
300-
if (ret) {
300+
if (ret && ret != -EOPNOTSUPP) {
301301
req->error_slba = le64_to_cpu(range.slba);
302302
status = errno_to_nvme_status(req, ret);
303303
break;

0 commit comments

Comments
 (0)