mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-17 10:11:33 +00:00

We might be running a local application that also interacts with the backing device. In this setup we have some clustering type of software that manages the ownwer of it, so we don't want the kernel to restrict us. This patch allows the user to control if the driver gets exclusive access. Signed-off-by: Mike Christie <michael.christie@oracle.com> Link: https://lore.kernel.org/r/20250721185145.20913-1-michael.christie@oracle.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
42 lines
874 B
C
42 lines
874 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef TARGET_CORE_IBLOCK_H
|
|
#define TARGET_CORE_IBLOCK_H
|
|
|
|
#include <linux/atomic.h>
|
|
#include <linux/refcount.h>
|
|
#include <linux/blkdev.h>
|
|
#include <target/target_core_base.h>
|
|
|
|
#define IBLOCK_VERSION "4.0"
|
|
|
|
#define IBLOCK_MAX_CDBS 16
|
|
|
|
struct iblock_req {
|
|
refcount_t pending;
|
|
atomic_t ib_bio_err_cnt;
|
|
} ____cacheline_aligned;
|
|
|
|
#define IBDF_HAS_UDEV_PATH 0x01
|
|
|
|
#define IBD_PLUGF_PLUGGED 0x01
|
|
|
|
struct iblock_dev_plug {
|
|
struct se_dev_plug se_plug;
|
|
struct blk_plug blk_plug;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct iblock_dev {
|
|
struct se_device dev;
|
|
unsigned char ibd_udev_path[SE_UDEV_PATH_LEN];
|
|
u32 ibd_flags;
|
|
struct bio_set ibd_bio_set;
|
|
struct block_device *ibd_bd;
|
|
struct file *ibd_bdev_file;
|
|
bool ibd_readonly;
|
|
bool ibd_exclusive;
|
|
struct iblock_dev_plug *ibd_plug;
|
|
} ____cacheline_aligned;
|
|
|
|
#endif /* TARGET_CORE_IBLOCK_H */
|