Lines Matching refs:fd_dev

32 static inline struct fd_dev *FD_DEV(struct se_device *dev)  in FD_DEV()
34 return container_of(dev, struct fd_dev, dev); in FD_DEV()
73 struct fd_dev *fd_dev; in fd_alloc_device() local
76 fd_dev = kzalloc(sizeof(struct fd_dev), GFP_KERNEL); in fd_alloc_device()
77 if (!fd_dev) { in fd_alloc_device()
82 fd_dev->fd_host = fd_host; in fd_alloc_device()
86 return &fd_dev->dev; in fd_alloc_device()
109 struct fd_dev *fd_dev = FD_DEV(dev); in fd_configure_device() local
115 if (!(fd_dev->fbd_flags & FBDF_HAS_PATH)) { in fd_configure_device()
135 if (fd_dev->fbd_flags & FDBD_HAS_BUFFERED_IO_WCE) { in fd_configure_device()
140 file = filp_open(fd_dev->fd_dev_name, flags, 0600); in fd_configure_device()
142 pr_err("filp_open(%s) failed\n", fd_dev->fd_dev_name); in fd_configure_device()
146 fd_dev->fd_file = file; in fd_configure_device()
158 fd_dev->fd_block_size = bdev_logical_block_size(bdev); in fd_configure_device()
164 fd_dev->fd_block_size); in fd_configure_device()
168 dev_size, div_u64(dev_size, fd_dev->fd_block_size), in fd_configure_device()
169 fd_dev->fd_block_size); in fd_configure_device()
179 if (!(fd_dev->fbd_flags & FBDF_HAS_SIZE)) { in fd_configure_device()
186 fd_dev->fd_block_size = FD_BLOCKSIZE; in fd_configure_device()
195 dev->dev_attrib.hw_block_size = fd_dev->fd_block_size; in fd_configure_device()
196 dev->dev_attrib.hw_max_sectors = FD_MAX_BYTES / fd_dev->fd_block_size; in fd_configure_device()
199 if (fd_dev->fbd_flags & FDBD_HAS_BUFFERED_IO_WCE) { in fd_configure_device()
205 fd_dev->fd_dev_id = fd_host->fd_host_dev_id_count++; in fd_configure_device()
206 fd_dev->fd_queue_depth = dev->queue_depth; in fd_configure_device()
209 " %llu total bytes\n", fd_host->fd_host_id, fd_dev->fd_dev_id, in fd_configure_device()
210 fd_dev->fd_dev_name, fd_dev->fd_dev_size); in fd_configure_device()
214 if (fd_dev->fd_file) { in fd_configure_device()
215 filp_close(fd_dev->fd_file, NULL); in fd_configure_device()
216 fd_dev->fd_file = NULL; in fd_configure_device()
224 struct fd_dev *fd_dev = FD_DEV(dev); in fd_dev_call_rcu() local
226 kfree(fd_dev); in fd_dev_call_rcu()
236 struct fd_dev *fd_dev = FD_DEV(dev); in fd_destroy_device() local
238 if (fd_dev->fd_file) { in fd_destroy_device()
239 filp_close(fd_dev->fd_file, NULL); in fd_destroy_device()
240 fd_dev->fd_file = NULL; in fd_destroy_device()
271 struct fd_dev *fd_dev = FD_DEV(dev); in fd_execute_rw_aio() local
272 struct file *file = fd_dev->fd_file; in fd_execute_rw_aio()
386 struct fd_dev *fd_dev = FD_DEV(dev); in fd_execute_sync_cache() local
412 ret = vfs_fsync_range(fd_dev->fd_file, start, end, 1); in fd_execute_sync_cache()
431 struct fd_dev *fd_dev = FD_DEV(se_dev); in fd_execute_write_same() local
470 ret = vfs_iter_write(fd_dev->fd_file, &iter, &pos, 0); in fd_execute_write_same()
486 struct fd_dev *fd_dev = FD_DEV(se_dev); in fd_do_prot_fill() local
487 struct file *prot_fd = fd_dev->fd_prot_file; in fd_do_prot_fill()
588 struct fd_dev *fd_dev = FD_DEV(dev); in fd_execute_rw_buffered() local
589 struct file *file = fd_dev->fd_file; in fd_execute_rw_buffered()
590 struct file *pfile = fd_dev->fd_prot_file; in fd_execute_rw_buffered()
648 vfs_fsync_range(fd_dev->fd_file, start, end, 1); in fd_execute_rw_buffered()
672 struct fd_dev *fd_dev = FD_DEV(dev); in fd_execute_rw() local
685 if (fd_dev->fbd_flags & FDBD_HAS_ASYNC_IO) in fd_execute_rw()
706 struct fd_dev *fd_dev = FD_DEV(dev); in fd_set_configfs_dev_params() local
724 if (match_strlcpy(fd_dev->fd_dev_name, &args[0], in fd_set_configfs_dev_params()
730 fd_dev->fd_dev_name); in fd_set_configfs_dev_params()
731 fd_dev->fbd_flags |= FBDF_HAS_PATH; in fd_set_configfs_dev_params()
739 ret = kstrtoull(arg_p, 0, &fd_dev->fd_dev_size); in fd_set_configfs_dev_params()
747 " bytes\n", fd_dev->fd_dev_size); in fd_set_configfs_dev_params()
748 fd_dev->fbd_flags |= FBDF_HAS_SIZE; in fd_set_configfs_dev_params()
763 fd_dev->fbd_flags |= FDBD_HAS_BUFFERED_IO_WCE; in fd_set_configfs_dev_params()
778 fd_dev->fbd_flags |= FDBD_HAS_ASYNC_IO; in fd_set_configfs_dev_params()
792 struct fd_dev *fd_dev = FD_DEV(dev); in fd_show_configfs_dev_params() local
795 bl = sprintf(b + bl, "TCM FILEIO ID: %u", fd_dev->fd_dev_id); in fd_show_configfs_dev_params()
797 fd_dev->fd_dev_name, fd_dev->fd_dev_size, in fd_show_configfs_dev_params()
798 (fd_dev->fbd_flags & FDBD_HAS_BUFFERED_IO_WCE) ? in fd_show_configfs_dev_params()
800 !!(fd_dev->fbd_flags & FDBD_HAS_ASYNC_IO)); in fd_show_configfs_dev_params()
806 struct fd_dev *fd_dev = FD_DEV(dev); in fd_get_blocks() local
807 struct file *f = fd_dev->fd_file; in fd_get_blocks()
818 dev_size = fd_dev->fd_dev_size; in fd_get_blocks()
826 struct fd_dev *fd_dev = FD_DEV(dev); in fd_init_prot() local
827 struct file *prot_file, *file = fd_dev->fd_file; in fd_init_prot()
844 if (fd_dev->fbd_flags & FDBD_HAS_BUFFERED_IO_WCE) in fd_init_prot()
848 fd_dev->fd_dev_name); in fd_init_prot()
856 fd_dev->fd_prot_file = prot_file; in fd_init_prot()
890 struct fd_dev *fd_dev = FD_DEV(dev); in fd_free_prot() local
892 if (!fd_dev->fd_prot_file) in fd_free_prot()
895 filp_close(fd_dev->fd_prot_file, NULL); in fd_free_prot()
896 fd_dev->fd_prot_file = NULL; in fd_free_prot()