target_core_iblock.h 853 B

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