aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2008-01-31 14:36:52 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-02-07 19:02:37 -0500
commit322d739da83bbff0309c202181f79c08d9534880 (patch)
tree4bbe485dc4f942ac6d5c8ad1c4508599a1eb2c66
parentc238c3bba9b422a9b453c75e157b416204f22a71 (diff)
[SCSI] iscsi: fix up iscsi printk prefix
Some iscsi class messages have the dev_printk prefix and some libiscsi and iscsi_tcp messages have "iscsi" or the module name as a prefix which is normally pretty useless when trying to figure out which session or connection the message is attached to. This patch adds iscsi lib and class dev_printks so all messages have a common prefix that can be used to figure out which object printed it. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-rw-r--r--drivers/scsi/iscsi_tcp.c57
-rw-r--r--drivers/scsi/libiscsi.c76
-rw-r--r--drivers/scsi/scsi_transport_iscsi.c56
-rw-r--r--include/scsi/libiscsi.h7
-rw-r--r--include/scsi/scsi_transport_iscsi.h6
5 files changed, 116 insertions, 86 deletions
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c
index b6f99dfbb038..8a178674cb18 100644
--- a/drivers/scsi/iscsi_tcp.c
+++ b/drivers/scsi/iscsi_tcp.c
@@ -629,8 +629,9 @@ iscsi_r2t_rsp(struct iscsi_conn *conn, struct iscsi_cmd_task *ctask)
629 int rc; 629 int rc;
630 630
631 if (tcp_conn->in.datalen) { 631 if (tcp_conn->in.datalen) {
632 printk(KERN_ERR "iscsi_tcp: invalid R2t with datalen %d\n", 632 iscsi_conn_printk(KERN_ERR, conn,
633 tcp_conn->in.datalen); 633 "invalid R2t with datalen %d\n",
634 tcp_conn->in.datalen);
634 return ISCSI_ERR_DATALEN; 635 return ISCSI_ERR_DATALEN;
635 } 636 }
636 637
@@ -644,8 +645,9 @@ iscsi_r2t_rsp(struct iscsi_conn *conn, struct iscsi_cmd_task *ctask)
644 iscsi_update_cmdsn(session, (struct iscsi_nopin*)rhdr); 645 iscsi_update_cmdsn(session, (struct iscsi_nopin*)rhdr);
645 646
646 if (!ctask->sc || session->state != ISCSI_STATE_LOGGED_IN) { 647 if (!ctask->sc || session->state != ISCSI_STATE_LOGGED_IN) {
647 printk(KERN_INFO "iscsi_tcp: dropping R2T itt %d in " 648 iscsi_conn_printk(KERN_INFO, conn,
648 "recovery...\n", ctask->itt); 649 "dropping R2T itt %d in recovery.\n",
650 ctask->itt);
649 return 0; 651 return 0;
650 } 652 }
651 653
@@ -655,7 +657,8 @@ iscsi_r2t_rsp(struct iscsi_conn *conn, struct iscsi_cmd_task *ctask)
655 r2t->exp_statsn = rhdr->statsn; 657 r2t->exp_statsn = rhdr->statsn;
656 r2t->data_length = be32_to_cpu(rhdr->data_length); 658 r2t->data_length = be32_to_cpu(rhdr->data_length);
657 if (r2t->data_length == 0) { 659 if (r2t->data_length == 0) {
658 printk(KERN_ERR "iscsi_tcp: invalid R2T with zero data len\n"); 660 iscsi_conn_printk(KERN_ERR, conn,
661 "invalid R2T with zero data len\n");
659 __kfifo_put(tcp_ctask->r2tpool.queue, (void*)&r2t, 662 __kfifo_put(tcp_ctask->r2tpool.queue, (void*)&r2t,
660 sizeof(void*)); 663 sizeof(void*));
661 return ISCSI_ERR_DATALEN; 664 return ISCSI_ERR_DATALEN;
@@ -668,9 +671,10 @@ iscsi_r2t_rsp(struct iscsi_conn *conn, struct iscsi_cmd_task *ctask)
668 671
669 r2t->data_offset = be32_to_cpu(rhdr->data_offset); 672 r2t->data_offset = be32_to_cpu(rhdr->data_offset);
670 if (r2t->data_offset + r2t->data_length > scsi_bufflen(ctask->sc)) { 673 if (r2t->data_offset + r2t->data_length > scsi_bufflen(ctask->sc)) {
671 printk(KERN_ERR "iscsi_tcp: invalid R2T with data len %u at " 674 iscsi_conn_printk(KERN_ERR, conn,
672 "offset %u and total length %d\n", r2t->data_length, 675 "invalid R2T with data len %u at offset %u "
673 r2t->data_offset, scsi_bufflen(ctask->sc)); 676 "and total length %d\n", r2t->data_length,
677 r2t->data_offset, scsi_bufflen(ctask->sc));
674 __kfifo_put(tcp_ctask->r2tpool.queue, (void*)&r2t, 678 __kfifo_put(tcp_ctask->r2tpool.queue, (void*)&r2t,
675 sizeof(void*)); 679 sizeof(void*));
676 return ISCSI_ERR_DATALEN; 680 return ISCSI_ERR_DATALEN;
@@ -736,8 +740,9 @@ iscsi_tcp_hdr_dissect(struct iscsi_conn *conn, struct iscsi_hdr *hdr)
736 /* verify PDU length */ 740 /* verify PDU length */
737 tcp_conn->in.datalen = ntoh24(hdr->dlength); 741 tcp_conn->in.datalen = ntoh24(hdr->dlength);
738 if (tcp_conn->in.datalen > conn->max_recv_dlength) { 742 if (tcp_conn->in.datalen > conn->max_recv_dlength) {
739 printk(KERN_ERR "iscsi_tcp: datalen %d > %d\n", 743 iscsi_conn_printk(KERN_ERR, conn,
740 tcp_conn->in.datalen, conn->max_recv_dlength); 744 "iscsi_tcp: datalen %d > %d\n",
745 tcp_conn->in.datalen, conn->max_recv_dlength);
741 return ISCSI_ERR_DATALEN; 746 return ISCSI_ERR_DATALEN;
742 } 747 }
743 748
@@ -819,10 +824,12 @@ iscsi_tcp_hdr_dissect(struct iscsi_conn *conn, struct iscsi_hdr *hdr)
819 * For now we fail until we find a vendor that needs it 824 * For now we fail until we find a vendor that needs it
820 */ 825 */
821 if (ISCSI_DEF_MAX_RECV_SEG_LEN < tcp_conn->in.datalen) { 826 if (ISCSI_DEF_MAX_RECV_SEG_LEN < tcp_conn->in.datalen) {
822 printk(KERN_ERR "iscsi_tcp: received buffer of len %u " 827 iscsi_conn_printk(KERN_ERR, conn,
823 "but conn buffer is only %u (opcode %0x)\n", 828 "iscsi_tcp: received buffer of "
824 tcp_conn->in.datalen, 829 "len %u but conn buffer is only %u "
825 ISCSI_DEF_MAX_RECV_SEG_LEN, opcode); 830 "(opcode %0x)\n",
831 tcp_conn->in.datalen,
832 ISCSI_DEF_MAX_RECV_SEG_LEN, opcode);
826 rc = ISCSI_ERR_PROTO; 833 rc = ISCSI_ERR_PROTO;
827 break; 834 break;
828 } 835 }
@@ -1496,30 +1503,25 @@ iscsi_tcp_conn_create(struct iscsi_cls_session *cls_session, uint32_t conn_idx)
1496 tcp_conn->tx_hash.tfm = crypto_alloc_hash("crc32c", 0, 1503 tcp_conn->tx_hash.tfm = crypto_alloc_hash("crc32c", 0,
1497 CRYPTO_ALG_ASYNC); 1504 CRYPTO_ALG_ASYNC);
1498 tcp_conn->tx_hash.flags = 0; 1505 tcp_conn->tx_hash.flags = 0;
1499 if (IS_ERR(tcp_conn->tx_hash.tfm)) { 1506 if (IS_ERR(tcp_conn->tx_hash.tfm))
1500 printk(KERN_ERR "Could not create connection due to crc32c "
1501 "loading error %ld. Make sure the crc32c module is "
1502 "built as a module or into the kernel\n",
1503 PTR_ERR(tcp_conn->tx_hash.tfm));
1504 goto free_tcp_conn; 1507 goto free_tcp_conn;
1505 }
1506 1508
1507 tcp_conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0, 1509 tcp_conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0,
1508 CRYPTO_ALG_ASYNC); 1510 CRYPTO_ALG_ASYNC);
1509 tcp_conn->rx_hash.flags = 0; 1511 tcp_conn->rx_hash.flags = 0;
1510 if (IS_ERR(tcp_conn->rx_hash.tfm)) { 1512 if (IS_ERR(tcp_conn->rx_hash.tfm))
1511 printk(KERN_ERR "Could not create connection due to crc32c "
1512 "loading error %ld. Make sure the crc32c module is "
1513 "built as a module or into the kernel\n",
1514 PTR_ERR(tcp_conn->rx_hash.tfm));
1515 goto free_tx_tfm; 1513 goto free_tx_tfm;
1516 }
1517 1514
1518 return cls_conn; 1515 return cls_conn;
1519 1516
1520free_tx_tfm: 1517free_tx_tfm:
1521 crypto_free_hash(tcp_conn->tx_hash.tfm); 1518 crypto_free_hash(tcp_conn->tx_hash.tfm);
1522free_tcp_conn: 1519free_tcp_conn:
1520 iscsi_conn_printk(KERN_ERR, conn,
1521 "Could not create connection due to crc32c "
1522 "loading error. Make sure the crc32c "
1523 "module is built as a module or into the "
1524 "kernel\n");
1523 kfree(tcp_conn); 1525 kfree(tcp_conn);
1524tcp_conn_alloc_fail: 1526tcp_conn_alloc_fail:
1525 iscsi_conn_teardown(cls_conn); 1527 iscsi_conn_teardown(cls_conn);
@@ -1627,7 +1629,8 @@ iscsi_tcp_conn_bind(struct iscsi_cls_session *cls_session,
1627 /* lookup for existing socket */ 1629 /* lookup for existing socket */
1628 sock = sockfd_lookup((int)transport_eph, &err); 1630 sock = sockfd_lookup((int)transport_eph, &err);
1629 if (!sock) { 1631 if (!sock) {
1630 printk(KERN_ERR "iscsi_tcp: sockfd_lookup failed %d\n", err); 1632 iscsi_conn_printk(KERN_ERR, conn,
1633 "sockfd_lookup failed %d\n", err);
1631 return -EEXIST; 1634 return -EEXIST;
1632 } 1635 }
1633 /* 1636 /*
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index b2a1ec8725b8..10ba76285852 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -416,8 +416,9 @@ static void iscsi_scsi_cmd_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
416 416
417 if (datalen < 2) { 417 if (datalen < 2) {
418invalid_datalen: 418invalid_datalen:
419 printk(KERN_ERR "iscsi: Got CHECK_CONDITION but " 419 iscsi_conn_printk(KERN_ERR, conn,
420 "invalid data buffer size of %d\n", datalen); 420 "Got CHECK_CONDITION but invalid data "
421 "buffer size of %d\n", datalen);
421 sc->result = DID_BAD_TARGET << 16; 422 sc->result = DID_BAD_TARGET << 16;
422 goto out; 423 goto out;
423 } 424 }
@@ -494,7 +495,7 @@ static void iscsi_send_nopout(struct iscsi_conn *conn, struct iscsi_nopin *rhdr)
494 495
495 mtask = __iscsi_conn_send_pdu(conn, (struct iscsi_hdr *)&hdr, NULL, 0); 496 mtask = __iscsi_conn_send_pdu(conn, (struct iscsi_hdr *)&hdr, NULL, 0);
496 if (!mtask) { 497 if (!mtask) {
497 printk(KERN_ERR "Could not send nopout\n"); 498 iscsi_conn_printk(KERN_ERR, conn, "Could not send nopout\n");
498 return; 499 return;
499 } 500 }
500 501
@@ -522,9 +523,10 @@ static int iscsi_handle_reject(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
522 if (ntoh24(reject->dlength) >= sizeof(struct iscsi_hdr)) { 523 if (ntoh24(reject->dlength) >= sizeof(struct iscsi_hdr)) {
523 memcpy(&rejected_pdu, data, sizeof(struct iscsi_hdr)); 524 memcpy(&rejected_pdu, data, sizeof(struct iscsi_hdr));
524 itt = get_itt(rejected_pdu.itt); 525 itt = get_itt(rejected_pdu.itt);
525 printk(KERN_ERR "itt 0x%x had pdu (op 0x%x) rejected " 526 iscsi_conn_printk(KERN_ERR, conn,
526 "due to DataDigest error.\n", itt, 527 "itt 0x%x had pdu (op 0x%x) rejected "
527 rejected_pdu.opcode); 528 "due to DataDigest error.\n", itt,
529 rejected_pdu.opcode);
528 } 530 }
529 } 531 }
530 return 0; 532 return 0;
@@ -696,16 +698,19 @@ int iscsi_verify_itt(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
696 if (hdr->itt != RESERVED_ITT) { 698 if (hdr->itt != RESERVED_ITT) {
697 if (((__force u32)hdr->itt & ISCSI_AGE_MASK) != 699 if (((__force u32)hdr->itt & ISCSI_AGE_MASK) !=
698 (session->age << ISCSI_AGE_SHIFT)) { 700 (session->age << ISCSI_AGE_SHIFT)) {
699 printk(KERN_ERR "iscsi: received itt %x expected " 701 iscsi_conn_printk(KERN_ERR, conn,
700 "session age (%x)\n", (__force u32)hdr->itt, 702 "received itt %x expected session "
701 session->age & ISCSI_AGE_MASK); 703 "age (%x)\n", (__force u32)hdr->itt,
704 session->age & ISCSI_AGE_MASK);
702 return ISCSI_ERR_BAD_ITT; 705 return ISCSI_ERR_BAD_ITT;
703 } 706 }
704 707
705 if (((__force u32)hdr->itt & ISCSI_CID_MASK) != 708 if (((__force u32)hdr->itt & ISCSI_CID_MASK) !=
706 (conn->id << ISCSI_CID_SHIFT)) { 709 (conn->id << ISCSI_CID_SHIFT)) {
707 printk(KERN_ERR "iscsi: received itt %x, expected " 710 iscsi_conn_printk(KERN_ERR, conn,
708 "CID (%x)\n", (__force u32)hdr->itt, conn->id); 711 "iscsi: received itt %x, expected "
712 "CID (%x)\n",
713 (__force u32)hdr->itt, conn->id);
709 return ISCSI_ERR_BAD_ITT; 714 return ISCSI_ERR_BAD_ITT;
710 } 715 }
711 itt = get_itt(hdr->itt); 716 itt = get_itt(hdr->itt);
@@ -716,16 +721,17 @@ int iscsi_verify_itt(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
716 ctask = session->cmds[itt]; 721 ctask = session->cmds[itt];
717 722
718 if (!ctask->sc) { 723 if (!ctask->sc) {
719 printk(KERN_INFO "iscsi: dropping ctask with " 724 iscsi_conn_printk(KERN_INFO, conn, "dropping ctask "
720 "itt 0x%x\n", ctask->itt); 725 "with itt 0x%x\n", ctask->itt);
721 /* force drop */ 726 /* force drop */
722 return ISCSI_ERR_NO_SCSI_CMD; 727 return ISCSI_ERR_NO_SCSI_CMD;
723 } 728 }
724 729
725 if (ctask->sc->SCp.phase != session->age) { 730 if (ctask->sc->SCp.phase != session->age) {
726 printk(KERN_ERR "iscsi: ctask's session age %d, " 731 iscsi_conn_printk(KERN_ERR, conn,
727 "expected %d\n", ctask->sc->SCp.phase, 732 "iscsi: ctask's session age %d, "
728 session->age); 733 "expected %d\n", ctask->sc->SCp.phase,
734 session->age);
729 return ISCSI_ERR_SESSION_FAILED; 735 return ISCSI_ERR_SESSION_FAILED;
730 } 736 }
731 } 737 }
@@ -1170,7 +1176,8 @@ failed:
1170 mutex_lock(&session->eh_mutex); 1176 mutex_lock(&session->eh_mutex);
1171 spin_lock_bh(&session->lock); 1177 spin_lock_bh(&session->lock);
1172 if (session->state == ISCSI_STATE_LOGGED_IN) 1178 if (session->state == ISCSI_STATE_LOGGED_IN)
1173 printk(KERN_INFO "iscsi: host reset succeeded\n"); 1179 iscsi_session_printk(KERN_INFO, session,
1180 "host reset succeeded\n");
1174 else 1181 else
1175 goto failed; 1182 goto failed;
1176 spin_unlock_bh(&session->lock); 1183 spin_unlock_bh(&session->lock);
@@ -1368,10 +1375,10 @@ static void iscsi_check_transport_timeouts(unsigned long data)
1368 last_recv = conn->last_recv; 1375 last_recv = conn->last_recv;
1369 if (time_before_eq(last_recv + timeout + (conn->ping_timeout * HZ), 1376 if (time_before_eq(last_recv + timeout + (conn->ping_timeout * HZ),
1370 jiffies)) { 1377 jiffies)) {
1371 printk(KERN_ERR "ping timeout of %d secs expired, " 1378 iscsi_conn_printk(KERN_ERR, conn, "ping timeout of %d secs "
1372 "last rx %lu, last ping %lu, now %lu\n", 1379 "expired, last rx %lu, last ping %lu, "
1373 conn->ping_timeout, last_recv, 1380 "now %lu\n", conn->ping_timeout, last_recv,
1374 conn->last_ping, jiffies); 1381 conn->last_ping, jiffies);
1375 spin_unlock(&session->lock); 1382 spin_unlock(&session->lock);
1376 iscsi_conn_failure(conn, ISCSI_ERR_CONN_FAILED); 1383 iscsi_conn_failure(conn, ISCSI_ERR_CONN_FAILED);
1377 return; 1384 return;
@@ -1952,9 +1959,10 @@ void iscsi_conn_teardown(struct iscsi_cls_conn *cls_conn)
1952 } 1959 }
1953 spin_unlock_irqrestore(session->host->host_lock, flags); 1960 spin_unlock_irqrestore(session->host->host_lock, flags);
1954 msleep_interruptible(500); 1961 msleep_interruptible(500);
1955 printk(KERN_INFO "iscsi: scsi conn_destroy(): host_busy %d " 1962 iscsi_conn_printk(KERN_INFO, conn, "iscsi conn_destroy(): "
1956 "host_failed %d\n", session->host->host_busy, 1963 "host_busy %d host_failed %d\n",
1957 session->host->host_failed); 1964 session->host->host_busy,
1965 session->host->host_failed);
1958 /* 1966 /*
1959 * force eh_abort() to unblock 1967 * force eh_abort() to unblock
1960 */ 1968 */
@@ -1983,27 +1991,28 @@ int iscsi_conn_start(struct iscsi_cls_conn *cls_conn)
1983 struct iscsi_session *session = conn->session; 1991 struct iscsi_session *session = conn->session;
1984 1992
1985 if (!session) { 1993 if (!session) {
1986 printk(KERN_ERR "iscsi: can't start unbound connection\n"); 1994 iscsi_conn_printk(KERN_ERR, conn,
1995 "can't start unbound connection\n");
1987 return -EPERM; 1996 return -EPERM;
1988 } 1997 }
1989 1998
1990 if ((session->imm_data_en || !session->initial_r2t_en) && 1999 if ((session->imm_data_en || !session->initial_r2t_en) &&
1991 session->first_burst > session->max_burst) { 2000 session->first_burst > session->max_burst) {
1992 printk("iscsi: invalid burst lengths: " 2001 iscsi_conn_printk(KERN_INFO, conn, "invalid burst lengths: "
1993 "first_burst %d max_burst %d\n", 2002 "first_burst %d max_burst %d\n",
1994 session->first_burst, session->max_burst); 2003 session->first_burst, session->max_burst);
1995 return -EINVAL; 2004 return -EINVAL;
1996 } 2005 }
1997 2006
1998 if (conn->ping_timeout && !conn->recv_timeout) { 2007 if (conn->ping_timeout && !conn->recv_timeout) {
1999 printk(KERN_ERR "iscsi: invalid recv timeout of zero " 2008 iscsi_conn_printk(KERN_ERR, conn, "invalid recv timeout of "
2000 "Using 5 seconds\n."); 2009 "zero. Using 5 seconds\n.");
2001 conn->recv_timeout = 5; 2010 conn->recv_timeout = 5;
2002 } 2011 }
2003 2012
2004 if (conn->recv_timeout && !conn->ping_timeout) { 2013 if (conn->recv_timeout && !conn->ping_timeout) {
2005 printk(KERN_ERR "iscsi: invalid ping timeout of zero " 2014 iscsi_conn_printk(KERN_ERR, conn, "invalid ping timeout of "
2006 "Using 5 seconds.\n"); 2015 "zero. Using 5 seconds.\n");
2007 conn->ping_timeout = 5; 2016 conn->ping_timeout = 5;
2008 } 2017 }
2009 2018
@@ -2147,7 +2156,8 @@ void iscsi_conn_stop(struct iscsi_cls_conn *cls_conn, int flag)
2147 iscsi_start_session_recovery(session, conn, flag); 2156 iscsi_start_session_recovery(session, conn, flag);
2148 break; 2157 break;
2149 default: 2158 default:
2150 printk(KERN_ERR "iscsi: invalid stop flag %d\n", flag); 2159 iscsi_conn_printk(KERN_ERR, conn,
2160 "invalid stop flag %d\n", flag);
2151 } 2161 }
2152} 2162}
2153EXPORT_SYMBOL_GPL(iscsi_conn_stop); 2163EXPORT_SYMBOL_GPL(iscsi_conn_stop);
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index 35834bf4ba86..8e73ff02fb74 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -350,8 +350,9 @@ static void session_recovery_timedout(struct work_struct *work)
350 recovery_work.work); 350 recovery_work.work);
351 unsigned long flags; 351 unsigned long flags;
352 352
353 dev_printk(KERN_INFO, &session->dev, "iscsi: session recovery timed " 353 iscsi_cls_session_printk(KERN_INFO, session,
354 "out after %d secs\n", session->recovery_tmo); 354 "session recovery timed out after %d secs\n",
355 session->recovery_tmo);
355 356
356 spin_lock_irqsave(&session->lock, flags); 357 spin_lock_irqsave(&session->lock, flags);
357 switch (session->state) { 358 switch (session->state) {
@@ -492,8 +493,8 @@ int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id)
492 session->sid); 493 session->sid);
493 err = device_add(&session->dev); 494 err = device_add(&session->dev);
494 if (err) { 495 if (err) {
495 dev_printk(KERN_ERR, &session->dev, "iscsi: could not " 496 iscsi_cls_session_printk(KERN_ERR, session,
496 "register session's dev\n"); 497 "could not register session's dev\n");
497 goto release_host; 498 goto release_host;
498 } 499 }
499 transport_register_device(&session->dev); 500 transport_register_device(&session->dev);
@@ -597,8 +598,9 @@ void iscsi_remove_session(struct iscsi_cls_session *session)
597 err = device_for_each_child(&session->dev, NULL, 598 err = device_for_each_child(&session->dev, NULL,
598 iscsi_iter_destroy_conn_fn); 599 iscsi_iter_destroy_conn_fn);
599 if (err) 600 if (err)
600 dev_printk(KERN_ERR, &session->dev, "iscsi: Could not delete " 601 iscsi_cls_session_printk(KERN_ERR, session,
601 "all connections for session. Error %d.\n", err); 602 "Could not delete all connections "
603 "for session. Error %d.\n", err);
602 604
603 transport_unregister_device(&session->dev); 605 transport_unregister_device(&session->dev);
604 device_del(&session->dev); 606 device_del(&session->dev);
@@ -670,8 +672,8 @@ iscsi_create_conn(struct iscsi_cls_session *session, uint32_t cid)
670 conn->dev.release = iscsi_conn_release; 672 conn->dev.release = iscsi_conn_release;
671 err = device_register(&conn->dev); 673 err = device_register(&conn->dev);
672 if (err) { 674 if (err) {
673 dev_printk(KERN_ERR, &conn->dev, "iscsi: could not register " 675 iscsi_cls_session_printk(KERN_ERR, session, "could not "
674 "connection's dev\n"); 676 "register connection's dev\n");
675 goto release_parent_ref; 677 goto release_parent_ref;
676 } 678 }
677 transport_register_device(&conn->dev); 679 transport_register_device(&conn->dev);
@@ -778,8 +780,8 @@ int iscsi_recv_pdu(struct iscsi_cls_conn *conn, struct iscsi_hdr *hdr,
778 skb = alloc_skb(len, GFP_ATOMIC); 780 skb = alloc_skb(len, GFP_ATOMIC);
779 if (!skb) { 781 if (!skb) {
780 iscsi_conn_error(conn, ISCSI_ERR_CONN_FAILED); 782 iscsi_conn_error(conn, ISCSI_ERR_CONN_FAILED);
781 dev_printk(KERN_ERR, &conn->dev, "iscsi: can not deliver " 783 iscsi_cls_conn_printk(KERN_ERR, conn, "can not deliver "
782 "control PDU: OOM\n"); 784 "control PDU: OOM\n");
783 return -ENOMEM; 785 return -ENOMEM;
784 } 786 }
785 787
@@ -819,8 +821,8 @@ void iscsi_conn_error(struct iscsi_cls_conn *conn, enum iscsi_err error)
819 821
820 skb = alloc_skb(len, GFP_ATOMIC); 822 skb = alloc_skb(len, GFP_ATOMIC);
821 if (!skb) { 823 if (!skb) {
822 dev_printk(KERN_ERR, &conn->dev, "iscsi: gracefully ignored " 824 iscsi_cls_conn_printk(KERN_ERR, conn, "gracefully ignored "
823 "conn error (%d)\n", error); 825 "conn error (%d)\n", error);
824 return; 826 return;
825 } 827 }
826 828
@@ -834,8 +836,8 @@ void iscsi_conn_error(struct iscsi_cls_conn *conn, enum iscsi_err error)
834 836
835 iscsi_broadcast_skb(skb, GFP_ATOMIC); 837 iscsi_broadcast_skb(skb, GFP_ATOMIC);
836 838
837 dev_printk(KERN_INFO, &conn->dev, "iscsi: detected conn error (%d)\n", 839 iscsi_cls_conn_printk(KERN_INFO, conn, "detected conn error (%d)\n",
838 error); 840 error);
839} 841}
840EXPORT_SYMBOL_GPL(iscsi_conn_error); 842EXPORT_SYMBOL_GPL(iscsi_conn_error);
841 843
@@ -890,8 +892,8 @@ iscsi_if_get_stats(struct iscsi_transport *transport, struct nlmsghdr *nlh)
890 892
891 skbstat = alloc_skb(len, GFP_ATOMIC); 893 skbstat = alloc_skb(len, GFP_ATOMIC);
892 if (!skbstat) { 894 if (!skbstat) {
893 dev_printk(KERN_ERR, &conn->dev, "iscsi: can not " 895 iscsi_cls_conn_printk(KERN_ERR, conn, "can not "
894 "deliver stats: OOM\n"); 896 "deliver stats: OOM\n");
895 return -ENOMEM; 897 return -ENOMEM;
896 } 898 }
897 899
@@ -947,8 +949,9 @@ int iscsi_session_event(struct iscsi_cls_session *session,
947 949
948 skb = alloc_skb(len, GFP_KERNEL); 950 skb = alloc_skb(len, GFP_KERNEL);
949 if (!skb) { 951 if (!skb) {
950 dev_printk(KERN_ERR, &session->dev, "Cannot notify userspace " 952 iscsi_cls_session_printk(KERN_ERR, session,
951 "of session event %u\n", event); 953 "Cannot notify userspace of session "
954 "event %u\n", event);
952 return -ENOMEM; 955 return -ENOMEM;
953 } 956 }
954 957
@@ -971,8 +974,8 @@ int iscsi_session_event(struct iscsi_cls_session *session,
971 ev->r.unbind_session.sid = session->sid; 974 ev->r.unbind_session.sid = session->sid;
972 break; 975 break;
973 default: 976 default:
974 dev_printk(KERN_ERR, &session->dev, "Invalid event %u.\n", 977 iscsi_cls_session_printk(KERN_ERR, session, "Invalid event "
975 event); 978 "%u.\n", event);
976 kfree_skb(skb); 979 kfree_skb(skb);
977 return -EINVAL; 980 return -EINVAL;
978 } 981 }
@@ -983,8 +986,10 @@ int iscsi_session_event(struct iscsi_cls_session *session,
983 */ 986 */
984 rc = iscsi_broadcast_skb(skb, GFP_KERNEL); 987 rc = iscsi_broadcast_skb(skb, GFP_KERNEL);
985 if (rc < 0) 988 if (rc < 0)
986 dev_printk(KERN_ERR, &session->dev, "Cannot notify userspace " 989 iscsi_cls_session_printk(KERN_ERR, session,
987 "of session event %u. Check iscsi daemon\n", event); 990 "Cannot notify userspace of session "
991 "event %u. Check iscsi daemon\n",
992 event);
988 return rc; 993 return rc;
989} 994}
990EXPORT_SYMBOL_GPL(iscsi_session_event); 995EXPORT_SYMBOL_GPL(iscsi_session_event);
@@ -1017,16 +1022,15 @@ iscsi_if_create_conn(struct iscsi_transport *transport, struct iscsi_uevent *ev)
1017 1022
1018 session = iscsi_session_lookup(ev->u.c_conn.sid); 1023 session = iscsi_session_lookup(ev->u.c_conn.sid);
1019 if (!session) { 1024 if (!session) {
1020 printk(KERN_ERR "iscsi: invalid session %d\n", 1025 printk(KERN_ERR "iscsi: invalid session %d.\n",
1021 ev->u.c_conn.sid); 1026 ev->u.c_conn.sid);
1022 return -EINVAL; 1027 return -EINVAL;
1023 } 1028 }
1024 1029
1025 conn = transport->create_conn(session, ev->u.c_conn.cid); 1030 conn = transport->create_conn(session, ev->u.c_conn.cid);
1026 if (!conn) { 1031 if (!conn) {
1027 printk(KERN_ERR "iscsi: couldn't create a new " 1032 iscsi_cls_session_printk(KERN_ERR, session,
1028 "connection for session %d\n", 1033 "couldn't create a new connection.");
1029 session->sid);
1030 return -ENOMEM; 1034 return -ENOMEM;
1031 } 1035 }
1032 1036
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h
index 278011fb3c2f..5784e4ff8edc 100644
--- a/include/scsi/libiscsi.h
+++ b/include/scsi/libiscsi.h
@@ -344,6 +344,10 @@ extern int iscsi_session_get_param(struct iscsi_cls_session *cls_session,
344#define session_to_cls(_sess) \ 344#define session_to_cls(_sess) \
345 hostdata_session(_sess->host->hostdata) 345 hostdata_session(_sess->host->hostdata)
346 346
347#define iscsi_session_printk(prefix, _sess, fmt, a...) \
348 iscsi_cls_session_printk(prefix, \
349 (struct iscsi_cls_session *)session_to_cls(_sess), fmt, ##a)
350
347/* 351/*
348 * connection management 352 * connection management
349 */ 353 */
@@ -358,6 +362,9 @@ extern void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err);
358extern int iscsi_conn_get_param(struct iscsi_cls_conn *cls_conn, 362extern int iscsi_conn_get_param(struct iscsi_cls_conn *cls_conn,
359 enum iscsi_param param, char *buf); 363 enum iscsi_param param, char *buf);
360 364
365#define iscsi_conn_printk(prefix, _c, fmt, a...) \
366 iscsi_cls_conn_printk(prefix, _c->cls_conn, fmt, ##a)
367
361/* 368/*
362 * pdu and task processing 369 * pdu and task processing
363 */ 370 */
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h
index 83693ba09c29..dbc96ef4cc72 100644
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -212,6 +212,12 @@ struct iscsi_host {
212/* 212/*
213 * session and connection functions that can be used by HW iSCSI LLDs 213 * session and connection functions that can be used by HW iSCSI LLDs
214 */ 214 */
215#define iscsi_cls_session_printk(prefix, _cls_session, fmt, a...) \
216 dev_printk(prefix, &(_cls_session)->dev, fmt, ##a)
217
218#define iscsi_cls_conn_printk(prefix, _cls_conn, fmt, a...) \
219 dev_printk(prefix, &(_cls_conn)->dev, fmt, ##a)
220
215extern int iscsi_session_chkready(struct iscsi_cls_session *session); 221extern int iscsi_session_chkready(struct iscsi_cls_session *session);
216extern struct iscsi_cls_session *iscsi_alloc_session(struct Scsi_Host *shost, 222extern struct iscsi_cls_session *iscsi_alloc_session(struct Scsi_Host *shost,
217 struct iscsi_transport *transport); 223 struct iscsi_transport *transport);