mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
target: Propigate backend read-only to core_tpg_add_lun
This patch adds a DF_READ_ONLY flag that is used by IBLOCK to signal when a backend has been set to read-only mode, in order to propigate read-only status up to core_tpg_add_lun() for all future LUN fabric exports. With this is place, existing emulation for reporting read-only in spc_emulate_modesense() and normal transport_lookup_cmd_lun() TCM_WRITE_PROTECTED status checking just works as expected. Reported-by: Joeue Deng <[email protected]> Reported-by: Andy Grover <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
This commit is contained in:
parent
3ccd6e83df
commit
eeeb952223
3 changed files with 7 additions and 1 deletions
|
|
@ -105,6 +105,8 @@ static int iblock_configure_device(struct se_device *dev)
|
|||
mode = FMODE_READ|FMODE_EXCL;
|
||||
if (!ib_dev->ibd_readonly)
|
||||
mode |= FMODE_WRITE;
|
||||
else
|
||||
dev->dev_flags |= DF_READ_ONLY;
|
||||
|
||||
bd = blkdev_get_by_path(ib_dev->ibd_udev_path, mode, ib_dev);
|
||||
if (IS_ERR(bd)) {
|
||||
|
|
|
|||
|
|
@ -668,7 +668,10 @@ int core_tpg_add_lun(
|
|||
list_add_tail(&lun->lun_dev_link, &dev->dev_sep_list);
|
||||
spin_unlock(&dev->se_port_lock);
|
||||
|
||||
lun->lun_access = lun_access;
|
||||
if (dev->dev_flags & DF_READ_ONLY)
|
||||
lun->lun_access = TRANSPORT_LUNFLAGS_READ_ONLY;
|
||||
else
|
||||
lun->lun_access = lun_access;
|
||||
if (!(dev->se_hba->hba_flags & HBA_FLAGS_INTERNAL_USE))
|
||||
hlist_add_head_rcu(&lun->link, &tpg->tpg_lun_hlist);
|
||||
mutex_unlock(&tpg->tpg_lun_mutex);
|
||||
|
|
|
|||
Loading…
Reference in a new issue