Lines Matching full:ns
16 void nvmet_file_ns_disable(struct nvmet_ns *ns) in nvmet_file_ns_disable() argument
18 if (ns->file) { in nvmet_file_ns_disable()
19 if (ns->buffered_io) in nvmet_file_ns_disable()
21 mempool_destroy(ns->bvec_pool); in nvmet_file_ns_disable()
22 ns->bvec_pool = NULL; in nvmet_file_ns_disable()
23 kmem_cache_destroy(ns->bvec_cache); in nvmet_file_ns_disable()
24 ns->bvec_cache = NULL; in nvmet_file_ns_disable()
25 fput(ns->file); in nvmet_file_ns_disable()
26 ns->file = NULL; in nvmet_file_ns_disable()
30 int nvmet_file_ns_enable(struct nvmet_ns *ns) in nvmet_file_ns_enable() argument
36 if (!ns->buffered_io) in nvmet_file_ns_enable()
39 ns->file = filp_open(ns->device_path, flags, 0); in nvmet_file_ns_enable()
40 if (IS_ERR(ns->file)) { in nvmet_file_ns_enable()
42 ns->device_path, PTR_ERR(ns->file)); in nvmet_file_ns_enable()
43 return PTR_ERR(ns->file); in nvmet_file_ns_enable()
46 ret = vfs_getattr(&ns->file->f_path, in nvmet_file_ns_enable()
51 ns->size = stat.size; in nvmet_file_ns_enable()
52 ns->blksize_shift = file_inode(ns->file)->i_blkbits; in nvmet_file_ns_enable()
54 ns->bvec_cache = kmem_cache_create("nvmet-bvec", in nvmet_file_ns_enable()
57 if (!ns->bvec_cache) { in nvmet_file_ns_enable()
62 ns->bvec_pool = mempool_create(NVMET_MIN_MPOOL_OBJ, mempool_alloc_slab, in nvmet_file_ns_enable()
63 mempool_free_slab, ns->bvec_cache); in nvmet_file_ns_enable()
65 if (!ns->bvec_pool) { in nvmet_file_ns_enable()
72 ns->size = 0; in nvmet_file_ns_enable()
73 ns->blksize_shift = 0; in nvmet_file_ns_enable()
74 nvmet_file_ns_disable(ns); in nvmet_file_ns_enable()
97 call_iter = req->ns->file->f_op->write_iter; in nvmet_file_submit_bvec()
100 call_iter = req->ns->file->f_op->read_iter; in nvmet_file_submit_bvec()
107 iocb->ki_filp = req->ns->file; in nvmet_file_submit_bvec()
108 iocb->ki_flags = ki_flags | iocb_flags(req->ns->file); in nvmet_file_submit_bvec()
126 mempool_free(req->f.bvec, req->ns->bvec_pool); in nvmet_file_io_done()
148 pos = le64_to_cpu(req->cmd->rw.slba) << req->ns->blksize_shift; in nvmet_file_execute_rw()
149 if (unlikely(pos + req->data_len > req->ns->size)) { in nvmet_file_execute_rw()
163 req->f.bvec = mempool_alloc(req->ns->bvec_pool, GFP_KERNEL); in nvmet_file_execute_rw()
216 if (vfs_fsync(req->ns->file, 1) < 0) in nvmet_file_flush()
248 offset = le64_to_cpu(range.slba) << req->ns->blksize_shift; in nvmet_file_execute_discard()
250 len <<= req->ns->blksize_shift; in nvmet_file_execute_discard()
251 if (offset + len > req->ns->size) { in nvmet_file_execute_discard()
256 if (vfs_fallocate(req->ns->file, mode, offset, len)) { in nvmet_file_execute_discard()
297 offset = le64_to_cpu(write_zeroes->slba) << req->ns->blksize_shift; in nvmet_file_write_zeroes_work()
299 req->ns->blksize_shift); in nvmet_file_write_zeroes_work()
301 if (unlikely(offset + len > req->ns->size)) { in nvmet_file_write_zeroes_work()
306 ret = vfs_fallocate(req->ns->file, mode, offset, len); in nvmet_file_write_zeroes_work()
323 if (req->ns->buffered_io) in nvmet_file_parse_io_cmd()
343 pr_err("unhandled cmd for file ns %d on qid %d\n", in nvmet_file_parse_io_cmd()