target_core_iblock.h (824B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef TARGET_CORE_IBLOCK_H 3#define TARGET_CORE_IBLOCK_H 4 5#include <linux/atomic.h> 6#include <linux/refcount.h> 7#include <linux/blkdev.h> 8#include <target/target_core_base.h> 9 10#define IBLOCK_VERSION "4.0" 11 12#define IBLOCK_MAX_CDBS 16 13 14struct iblock_req { 15 refcount_t pending; 16 atomic_t ib_bio_err_cnt; 17} ____cacheline_aligned; 18 19#define IBDF_HAS_UDEV_PATH 0x01 20 21#define IBD_PLUGF_PLUGGED 0x01 22 23struct iblock_dev_plug { 24 struct se_dev_plug se_plug; 25 struct blk_plug blk_plug; 26 unsigned long flags; 27}; 28 29struct iblock_dev { 30 struct se_device dev; 31 unsigned char ibd_udev_path[SE_UDEV_PATH_LEN]; 32 u32 ibd_flags; 33 struct bio_set ibd_bio_set; 34 struct block_device *ibd_bd; 35 bool ibd_readonly; 36 struct iblock_dev_plug *ibd_plug; 37} ____cacheline_aligned; 38 39#endif /* TARGET_CORE_IBLOCK_H */