Lines Matching +full:0 +full:ns
15 /* Logical blocks per physical block, 0's based. */ in nvmet_bdev_set_limits()
38 /* NPWG = Namespace Preferred Write Granularity. 0's based */ in nvmet_bdev_set_limits()
40 /* NPWA = Namespace Preferred Write Alignment. 0's based */ in nvmet_bdev_set_limits()
42 /* NPDG = Namespace Preferred Deallocate Granularity. 0's based */ in nvmet_bdev_set_limits()
52 id->dlfeat = (1 << 3) | 0x1; in nvmet_bdev_set_limits()
55 void nvmet_bdev_ns_disable(struct nvmet_ns *ns) in nvmet_bdev_ns_disable() argument
57 if (ns->bdev_file) { in nvmet_bdev_ns_disable()
58 fput(ns->bdev_file); in nvmet_bdev_ns_disable()
59 ns->bdev = NULL; in nvmet_bdev_ns_disable()
60 ns->bdev_file = NULL; in nvmet_bdev_ns_disable()
64 static void nvmet_bdev_ns_enable_integrity(struct nvmet_ns *ns) in nvmet_bdev_ns_enable_integrity() argument
66 struct blk_integrity *bi = bdev_get_integrity(ns->bdev); in nvmet_bdev_ns_enable_integrity()
72 ns->metadata_size = bi->metadata_size; in nvmet_bdev_ns_enable_integrity()
74 ns->pi_type = NVME_NS_DPS_PI_TYPE1; in nvmet_bdev_ns_enable_integrity()
76 ns->pi_type = NVME_NS_DPS_PI_TYPE3; in nvmet_bdev_ns_enable_integrity()
78 ns->metadata_size = 0; in nvmet_bdev_ns_enable_integrity()
82 int nvmet_bdev_ns_enable(struct nvmet_ns *ns) in nvmet_bdev_ns_enable() argument
91 if (ns->buffered_io) in nvmet_bdev_ns_enable()
94 ns->bdev_file = bdev_file_open_by_path(ns->device_path, in nvmet_bdev_ns_enable()
96 if (IS_ERR(ns->bdev_file)) { in nvmet_bdev_ns_enable()
97 ret = PTR_ERR(ns->bdev_file); in nvmet_bdev_ns_enable()
100 ns->device_path, ret); in nvmet_bdev_ns_enable()
102 ns->bdev_file = NULL; in nvmet_bdev_ns_enable()
105 ns->bdev = file_bdev(ns->bdev_file); in nvmet_bdev_ns_enable()
106 ns->size = bdev_nr_bytes(ns->bdev); in nvmet_bdev_ns_enable()
107 ns->blksize_shift = blksize_bits(bdev_logical_block_size(ns->bdev)); in nvmet_bdev_ns_enable()
109 ns->pi_type = 0; in nvmet_bdev_ns_enable()
110 ns->metadata_size = 0; in nvmet_bdev_ns_enable()
112 nvmet_bdev_ns_enable_integrity(ns); in nvmet_bdev_ns_enable()
114 if (bdev_is_zoned(ns->bdev)) { in nvmet_bdev_ns_enable()
115 if (!nvmet_bdev_zns_enable(ns)) { in nvmet_bdev_ns_enable()
116 nvmet_bdev_ns_disable(ns); in nvmet_bdev_ns_enable()
119 ns->csi = NVME_CSI_ZNS; in nvmet_bdev_ns_enable()
122 return 0; in nvmet_bdev_ns_enable()
125 void nvmet_bdev_ns_revalidate(struct nvmet_ns *ns) in nvmet_bdev_ns_revalidate() argument
127 ns->size = bdev_nr_bytes(ns->bdev); in nvmet_bdev_ns_revalidate()
175 req->error_slba = 0; in blk_to_nvme_status()
197 bi = bdev_get_integrity(req->ns->bdev); in nvmet_bdev_alloc_bip()
215 while (resid > 0 && sg_miter_next(miter)) { in nvmet_bdev_alloc_bip()
231 return 0; in nvmet_bdev_alloc_bip()
258 nvmet_req_complete(req, 0); in nvmet_bdev_execute_rw()
278 sector = nvmet_lba_to_sect(req->ns, req->cmd->rw.slba); in nvmet_bdev_execute_rw()
282 bio_init(bio, req->ns->bdev, req->inline_bvec, in nvmet_bdev_execute_rw()
285 bio = bio_alloc(req->ns->bdev, bio_max_segs(sg_cnt), opf, in nvmet_bdev_execute_rw()
311 bio = bio_alloc(req->ns->bdev, bio_max_segs(sg_cnt), in nvmet_bdev_execute_rw()
339 if (!bdev_write_cache(req->ns->bdev)) { in nvmet_bdev_execute_flush()
344 if (!nvmet_check_transfer_len(req, 0)) in nvmet_bdev_execute_flush()
347 bio_init(bio, req->ns->bdev, req->inline_bvec, in nvmet_bdev_execute_flush()
357 if (!bdev_write_cache(req->ns->bdev)) in nvmet_bdev_flush()
358 return 0; in nvmet_bdev_flush()
360 if (blkdev_issue_flush(req->ns->bdev)) in nvmet_bdev_flush()
362 return 0; in nvmet_bdev_flush()
368 struct nvmet_ns *ns = req->ns; in nvmet_bdev_discard_range() local
371 ret = __blkdev_issue_discard(ns->bdev, in nvmet_bdev_discard_range()
372 nvmet_lba_to_sect(ns, range->slba), in nvmet_bdev_discard_range()
373 le32_to_cpu(range->nlb) << (ns->blksize_shift - 9), in nvmet_bdev_discard_range()
389 for (i = 0; i <= le32_to_cpu(req->cmd->dsm.nr); i++) { in nvmet_bdev_execute_discard()
425 nvmet_req_complete(req, 0); in nvmet_bdev_execute_dsm()
438 if (!nvmet_check_transfer_len(req, 0)) in nvmet_bdev_execute_write_zeroes()
441 sector = nvmet_lba_to_sect(req->ns, write_zeroes->slba); in nvmet_bdev_execute_write_zeroes()
443 (req->ns->blksize_shift - 9)); in nvmet_bdev_execute_write_zeroes()
445 ret = __blkdev_issue_zeroout(req->ns->bdev, sector, nr_sector, in nvmet_bdev_execute_write_zeroes()
446 GFP_KERNEL, &bio, 0); in nvmet_bdev_execute_write_zeroes()
462 if (req->sq->ctrl->pi_support && nvmet_ns_has_pi(req->ns)) in nvmet_bdev_parse_io_cmd()
464 return 0; in nvmet_bdev_parse_io_cmd()
467 return 0; in nvmet_bdev_parse_io_cmd()
470 return 0; in nvmet_bdev_parse_io_cmd()
473 return 0; in nvmet_bdev_parse_io_cmd()