scsi: target: add helper to check if dev is configured
This just adds a helper function to check if a device is configured and it converts the target users to use it. The next patch will add a backend module user so those types of modules do not have to know the lio core details. Signed-off-by: Mike Christie <mchristi@redhat.com> Reviewed-by: Xiubo Li <xiubli@redhat.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:

committed by
Martin K. Petersen

父節點
ff07e4a414
當前提交
cb0f32e12c
@@ -810,7 +810,7 @@ static ssize_t pi_prot_type_store(struct config_item *item,
|
||||
dev->transport->name);
|
||||
return -ENOSYS;
|
||||
}
|
||||
if (!(dev->dev_flags & DF_CONFIGURED)) {
|
||||
if (!target_dev_configured(dev)) {
|
||||
pr_err("DIF protection requires device to be configured\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
@@ -859,7 +859,7 @@ static ssize_t pi_prot_format_store(struct config_item *item,
|
||||
dev->transport->name);
|
||||
return -ENOSYS;
|
||||
}
|
||||
if (!(dev->dev_flags & DF_CONFIGURED)) {
|
||||
if (!target_dev_configured(dev)) {
|
||||
pr_err("DIF protection format requires device to be configured\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
@@ -1948,7 +1948,7 @@ static ssize_t target_dev_enable_show(struct config_item *item, char *page)
|
||||
{
|
||||
struct se_device *dev = to_device(item);
|
||||
|
||||
return snprintf(page, PAGE_SIZE, "%d\n", !!(dev->dev_flags & DF_CONFIGURED));
|
||||
return snprintf(page, PAGE_SIZE, "%d\n", target_dev_configured(dev));
|
||||
}
|
||||
|
||||
static ssize_t target_dev_enable_store(struct config_item *item,
|
||||
@@ -2473,7 +2473,7 @@ static ssize_t target_tg_pt_gp_alua_access_state_store(struct config_item *item,
|
||||
" tg_pt_gp ID: %hu\n", tg_pt_gp->tg_pt_gp_valid_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (!(dev->dev_flags & DF_CONFIGURED)) {
|
||||
if (!target_dev_configured(dev)) {
|
||||
pr_err("Unable to set alua_access_state while device is"
|
||||
" not configured\n");
|
||||
return -ENODEV;
|
||||
|
@@ -900,7 +900,7 @@ static int target_devices_idr_iter(int id, void *p, void *data)
|
||||
* to allow other callers to access partially setup devices,
|
||||
* so we skip them here.
|
||||
*/
|
||||
if (!(dev->dev_flags & DF_CONFIGURED))
|
||||
if (!target_dev_configured(dev))
|
||||
return 0;
|
||||
|
||||
iter->prev_item = config_item_get_unless_zero(&dev->dev_group.cg_item);
|
||||
@@ -940,7 +940,7 @@ int target_configure_device(struct se_device *dev)
|
||||
struct se_hba *hba = dev->se_hba;
|
||||
int ret, id;
|
||||
|
||||
if (dev->dev_flags & DF_CONFIGURED) {
|
||||
if (target_dev_configured(dev)) {
|
||||
pr_err("se_dev->se_dev_ptr already set for storage"
|
||||
" object\n");
|
||||
return -EEXIST;
|
||||
@@ -1045,7 +1045,7 @@ void target_free_device(struct se_device *dev)
|
||||
|
||||
WARN_ON(!list_empty(&dev->dev_sep_list));
|
||||
|
||||
if (dev->dev_flags & DF_CONFIGURED) {
|
||||
if (target_dev_configured(dev)) {
|
||||
destroy_workqueue(dev->tmr_wq);
|
||||
|
||||
dev->transport->destroy_device(dev);
|
||||
|
@@ -34,6 +34,7 @@
|
||||
#include <linux/configfs.h>
|
||||
|
||||
#include <target/target_core_base.h>
|
||||
#include <target/target_core_backend.h>
|
||||
#include <target/target_core_fabric.h>
|
||||
|
||||
#include "target_core_internal.h"
|
||||
@@ -642,7 +643,7 @@ static int target_fabric_port_link(
|
||||
}
|
||||
dev = container_of(to_config_group(se_dev_ci), struct se_device, dev_group);
|
||||
|
||||
if (!(dev->dev_flags & DF_CONFIGURED)) {
|
||||
if (!target_dev_configured(dev)) {
|
||||
pr_err("se_device not configured yet, cannot port link\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
Reference in New Issue
Block a user