diff options
author | Mike Christie <michael.christie@oracle.com> | 2023-09-27 21:09:07 -0500 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2023-10-13 15:53:58 -0400 |
commit | 6dbc829d101d9edb41081de01968792a009c9a78 (patch) | |
tree | 84987815a97254f1e60447dfda55efd6dc54128f /drivers/target | |
parent | e344c00e7ccd8c86e284999921fe0a6e623fffc8 (diff) |
scsi: target: Export fabric driver direct submit settings
This exports the fabric driver's direct submit settings, so users know what
the driver supports. It will be helpful when they are exporting a device
through different targets and one doesn't support direct submission.
The new files allow the fabric to report what submission types they default
to and if they support direct submission:
default_submit_type:
1 - TARGET_DIRECT_SUBMIT - If the user has not requested a specific value
then the fabric requests direct submission.
2 - TARGET_QUEUE_SUBMIT - If the user has not requested a specific value
then the fabric requests queued submission.
Note that these fabric values are based on what the fabric driver currently
defaults to for compat with exiting setups.
direct_submit_supported:
0 - The fabric does not support direct submission.
1 - The fabric supports direct submission.
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Link: https://lore.kernel.org/r/20230928020907.5730-8-michael.christie@oracle.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/target')
-rw-r--r-- | drivers/target/target_core_fabric_configfs.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/target/target_core_fabric_configfs.c b/drivers/target/target_core_fabric_configfs.c index b7c637644cd4..7156a4dc1ca7 100644 --- a/drivers/target/target_core_fabric_configfs.c +++ b/drivers/target/target_core_fabric_configfs.c @@ -1065,8 +1065,32 @@ target_fabric_wwn_cmd_completion_affinity_store(struct config_item *item, } CONFIGFS_ATTR(target_fabric_wwn_, cmd_completion_affinity); +static ssize_t +target_fabric_wwn_default_submit_type_show(struct config_item *item, + char *page) +{ + struct se_wwn *wwn = container_of(to_config_group(item), struct se_wwn, + param_group); + return sysfs_emit(page, "%u\n", + wwn->wwn_tf->tf_ops->default_submit_type); +} +CONFIGFS_ATTR_RO(target_fabric_wwn_, default_submit_type); + +static ssize_t +target_fabric_wwn_direct_submit_supported_show(struct config_item *item, + char *page) +{ + struct se_wwn *wwn = container_of(to_config_group(item), struct se_wwn, + param_group); + return sysfs_emit(page, "%u\n", + wwn->wwn_tf->tf_ops->direct_submit_supp); +} +CONFIGFS_ATTR_RO(target_fabric_wwn_, direct_submit_supported); + static struct configfs_attribute *target_fabric_wwn_param_attrs[] = { &target_fabric_wwn_attr_cmd_completion_affinity, + &target_fabric_wwn_attr_default_submit_type, + &target_fabric_wwn_attr_direct_submit_supported, NULL, }; |