forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/drivers/target/iscsi/iscsi_target_configfs.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*******************************************************************************
23 * This file contains the configfs implementation for iSCSI Target mode
34 * from the LIO-Target Project.
....@@ -6,15 +7,6 @@
67 *
78 * Author: Nicholas A. Bellinger <nab@linux-iscsi.org>
89 *
9
- * This program is free software; you can redistribute it and/or modify
10
- * it under the terms of the GNU General Public License as published by
11
- * the Free Software Foundation; either version 2 of the License, or
12
- * (at your option) any later version.
13
- *
14
- * This program is distributed in the hope that it will be useful,
15
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
- * GNU General Public License for more details.
1810 ****************************************************************************/
1911
2012 #include <linux/configfs.h>
....@@ -516,102 +508,102 @@
516508 spin_lock_bh(&se_nacl->nacl_sess_lock);
517509 se_sess = se_nacl->nacl_sess;
518510 if (!se_sess) {
519
- rb += sprintf(page+rb, "No active iSCSI Session for Initiator"
511
+ rb += sysfs_emit_at(page, rb, "No active iSCSI Session for Initiator"
520512 " Endpoint: %s\n", se_nacl->initiatorname);
521513 } else {
522514 sess = se_sess->fabric_sess_ptr;
523515
524
- rb += sprintf(page+rb, "InitiatorName: %s\n",
516
+ rb += sysfs_emit_at(page, rb, "InitiatorName: %s\n",
525517 sess->sess_ops->InitiatorName);
526
- rb += sprintf(page+rb, "InitiatorAlias: %s\n",
518
+ rb += sysfs_emit_at(page, rb, "InitiatorAlias: %s\n",
527519 sess->sess_ops->InitiatorAlias);
528520
529
- rb += sprintf(page+rb,
521
+ rb += sysfs_emit_at(page, rb,
530522 "LIO Session ID: %u ISID: 0x%6ph TSIH: %hu ",
531523 sess->sid, sess->isid, sess->tsih);
532
- rb += sprintf(page+rb, "SessionType: %s\n",
524
+ rb += sysfs_emit_at(page, rb, "SessionType: %s\n",
533525 (sess->sess_ops->SessionType) ?
534526 "Discovery" : "Normal");
535
- rb += sprintf(page+rb, "Session State: ");
527
+ rb += sysfs_emit_at(page, rb, "Session State: ");
536528 switch (sess->session_state) {
537529 case TARG_SESS_STATE_FREE:
538
- rb += sprintf(page+rb, "TARG_SESS_FREE\n");
530
+ rb += sysfs_emit_at(page, rb, "TARG_SESS_FREE\n");
539531 break;
540532 case TARG_SESS_STATE_ACTIVE:
541
- rb += sprintf(page+rb, "TARG_SESS_STATE_ACTIVE\n");
533
+ rb += sysfs_emit_at(page, rb, "TARG_SESS_STATE_ACTIVE\n");
542534 break;
543535 case TARG_SESS_STATE_LOGGED_IN:
544
- rb += sprintf(page+rb, "TARG_SESS_STATE_LOGGED_IN\n");
536
+ rb += sysfs_emit_at(page, rb, "TARG_SESS_STATE_LOGGED_IN\n");
545537 break;
546538 case TARG_SESS_STATE_FAILED:
547
- rb += sprintf(page+rb, "TARG_SESS_STATE_FAILED\n");
539
+ rb += sysfs_emit_at(page, rb, "TARG_SESS_STATE_FAILED\n");
548540 break;
549541 case TARG_SESS_STATE_IN_CONTINUE:
550
- rb += sprintf(page+rb, "TARG_SESS_STATE_IN_CONTINUE\n");
542
+ rb += sysfs_emit_at(page, rb, "TARG_SESS_STATE_IN_CONTINUE\n");
551543 break;
552544 default:
553
- rb += sprintf(page+rb, "ERROR: Unknown Session"
545
+ rb += sysfs_emit_at(page, rb, "ERROR: Unknown Session"
554546 " State!\n");
555547 break;
556548 }
557549
558
- rb += sprintf(page+rb, "---------------------[iSCSI Session"
550
+ rb += sysfs_emit_at(page, rb, "---------------------[iSCSI Session"
559551 " Values]-----------------------\n");
560
- rb += sprintf(page+rb, " CmdSN/WR : CmdSN/WC : ExpCmdSN"
552
+ rb += sysfs_emit_at(page, rb, " CmdSN/WR : CmdSN/WC : ExpCmdSN"
561553 " : MaxCmdSN : ITT : TTT\n");
562554 max_cmd_sn = (u32) atomic_read(&sess->max_cmd_sn);
563
- rb += sprintf(page+rb, " 0x%08x 0x%08x 0x%08x 0x%08x"
555
+ rb += sysfs_emit_at(page, rb, " 0x%08x 0x%08x 0x%08x 0x%08x"
564556 " 0x%08x 0x%08x\n",
565557 sess->cmdsn_window,
566558 (max_cmd_sn - sess->exp_cmd_sn) + 1,
567559 sess->exp_cmd_sn, max_cmd_sn,
568560 sess->init_task_tag, sess->targ_xfer_tag);
569
- rb += sprintf(page+rb, "----------------------[iSCSI"
561
+ rb += sysfs_emit_at(page, rb, "----------------------[iSCSI"
570562 " Connections]-------------------------\n");
571563
572564 spin_lock(&sess->conn_lock);
573565 list_for_each_entry(conn, &sess->sess_conn_list, conn_list) {
574
- rb += sprintf(page+rb, "CID: %hu Connection"
566
+ rb += sysfs_emit_at(page, rb, "CID: %hu Connection"
575567 " State: ", conn->cid);
576568 switch (conn->conn_state) {
577569 case TARG_CONN_STATE_FREE:
578
- rb += sprintf(page+rb,
570
+ rb += sysfs_emit_at(page, rb,
579571 "TARG_CONN_STATE_FREE\n");
580572 break;
581573 case TARG_CONN_STATE_XPT_UP:
582
- rb += sprintf(page+rb,
574
+ rb += sysfs_emit_at(page, rb,
583575 "TARG_CONN_STATE_XPT_UP\n");
584576 break;
585577 case TARG_CONN_STATE_IN_LOGIN:
586
- rb += sprintf(page+rb,
578
+ rb += sysfs_emit_at(page, rb,
587579 "TARG_CONN_STATE_IN_LOGIN\n");
588580 break;
589581 case TARG_CONN_STATE_LOGGED_IN:
590
- rb += sprintf(page+rb,
582
+ rb += sysfs_emit_at(page, rb,
591583 "TARG_CONN_STATE_LOGGED_IN\n");
592584 break;
593585 case TARG_CONN_STATE_IN_LOGOUT:
594
- rb += sprintf(page+rb,
586
+ rb += sysfs_emit_at(page, rb,
595587 "TARG_CONN_STATE_IN_LOGOUT\n");
596588 break;
597589 case TARG_CONN_STATE_LOGOUT_REQUESTED:
598
- rb += sprintf(page+rb,
590
+ rb += sysfs_emit_at(page, rb,
599591 "TARG_CONN_STATE_LOGOUT_REQUESTED\n");
600592 break;
601593 case TARG_CONN_STATE_CLEANUP_WAIT:
602
- rb += sprintf(page+rb,
594
+ rb += sysfs_emit_at(page, rb,
603595 "TARG_CONN_STATE_CLEANUP_WAIT\n");
604596 break;
605597 default:
606
- rb += sprintf(page+rb,
598
+ rb += sysfs_emit_at(page, rb,
607599 "ERROR: Unknown Connection State!\n");
608600 break;
609601 }
610602
611
- rb += sprintf(page+rb, " Address %pISc %s", &conn->login_sockaddr,
603
+ rb += sysfs_emit_at(page, rb, " Address %pISc %s", &conn->login_sockaddr,
612604 (conn->network_transport == ISCSI_TCP) ?
613605 "TCP" : "SCTP");
614
- rb += sprintf(page+rb, " StatSN: 0x%08x\n",
606
+ rb += sysfs_emit_at(page, rb, " StatSN: 0x%08x\n",
615607 conn->stat_sn);
616608 }
617609 spin_unlock(&sess->conn_lock);
....@@ -1343,11 +1335,6 @@
13431335
13441336 /* Start functions for target_core_fabric_ops */
13451337
1346
-static char *iscsi_get_fabric_name(void)
1347
-{
1348
- return "iSCSI";
1349
-}
1350
-
13511338 static int iscsi_get_cmd_state(struct se_cmd *se_cmd)
13521339 {
13531340 struct iscsi_cmd *cmd = container_of(se_cmd, struct iscsi_cmd, se_cmd);
....@@ -1392,18 +1379,6 @@
13921379 return conn->conn_transport->iscsit_get_dataout(conn, cmd, false);
13931380
13941381 return 0;
1395
-}
1396
-
1397
-static int lio_write_pending_status(struct se_cmd *se_cmd)
1398
-{
1399
- struct iscsi_cmd *cmd = container_of(se_cmd, struct iscsi_cmd, se_cmd);
1400
- int ret;
1401
-
1402
- spin_lock_bh(&cmd->istate_lock);
1403
- ret = !(cmd->cmd_flags & ICF_GOT_LAST_DATAOUT);
1404
- spin_unlock_bh(&cmd->istate_lock);
1405
-
1406
- return ret;
14071382 }
14081383
14091384 static int lio_queue_status(struct se_cmd *se_cmd)
....@@ -1552,9 +1527,9 @@
15521527
15531528 const struct target_core_fabric_ops iscsi_ops = {
15541529 .module = THIS_MODULE,
1555
- .name = "iscsi",
1530
+ .fabric_alias = "iscsi",
1531
+ .fabric_name = "iSCSI",
15561532 .node_acl_size = sizeof(struct iscsi_node_acl),
1557
- .get_fabric_name = iscsi_get_fabric_name,
15581533 .tpg_get_wwn = lio_tpg_get_endpoint_wwn,
15591534 .tpg_get_tag = lio_tpg_get_tag,
15601535 .tpg_get_default_depth = lio_tpg_get_default_depth,
....@@ -1572,7 +1547,6 @@
15721547 .sess_get_index = lio_sess_get_index,
15731548 .sess_get_initiator_sid = lio_sess_get_initiator_sid,
15741549 .write_pending = lio_write_pending,
1575
- .write_pending_status = lio_write_pending_status,
15761550 .set_default_node_attributes = lio_set_default_node_attributes,
15771551 .get_cmd_state = iscsi_get_cmd_state,
15781552 .queue_data_in = lio_queue_data_in,
....@@ -1599,4 +1573,6 @@
15991573 .tfc_tpg_nacl_attrib_attrs = lio_target_nacl_attrib_attrs,
16001574 .tfc_tpg_nacl_auth_attrs = lio_target_nacl_auth_attrs,
16011575 .tfc_tpg_nacl_param_attrs = lio_target_nacl_param_attrs,
1576
+
1577
+ .write_pending_must_be_called = true,
16021578 };