Re: [RFC PATCH 9/9] iscsi: filter flashnode sysfs by net namespace

2023-03-14 Thread Hannes Reinecke

On 2/8/23 18:40, Lee Duncan wrote:

From: Lee Duncan 

This finishes the net namespace support for flashnode sysfs devices.

Signed-off-by: Chris Leech 
Signed-off-by: Lee Duncan 
---
  drivers/scsi/scsi_transport_iscsi.c | 34 +
  include/scsi/scsi_transport_iscsi.h |  4 
  2 files changed, 34 insertions(+), 4 deletions(-)


Reviewed-by: Hannes Reinecke 

Cheers,

Hannes


--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/2f6cadce-3680-f80c-7016-5300e9b2ff9a%40suse.de.


Re: [RFC PATCH 8/9] iscsi: rename iscsi_bus_flash_* to iscsi_flash_*

2023-03-14 Thread Hannes Reinecke

On 2/8/23 18:40, Lee Duncan wrote:

From: Lee Duncan 

These are cleanups after the bus to class conversion
for flashnode devices.

Signed-off-by: Chris Leech 
Signed-off-by: Lee Duncan 
---
  drivers/scsi/qla4xxx/ql4_os.c   |  52 +++---
  drivers/scsi/scsi_transport_iscsi.c | 102 ++--
  include/scsi/scsi_transport_iscsi.h |  48 ++---
  3 files changed, 102 insertions(+), 100 deletions(-)


Can be merged with the previous patch, but otherwise:

Reviewed-by: Hannes Reinecke 

Cheers,

Hannes

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/0c54c25f-2aab-27b6-864e-2942ead86d36%40suse.de.


Re: [RFC PATCH 7/9] iscsi: convert flashnode devices from bus to class

2023-03-14 Thread Hannes Reinecke

On 2/8/23 18:40, Lee Duncan wrote:

From: Lee Duncan 

The flashnode session and connection devices should be filtered by net
namespace along with the iscsi_host, but we can't do that with a bus
device.  As these don't use any of the bus matching functionality, they
make more sense as a class device anyway.

Signed-off-by: Chris Leech 
Signed-off-by: Lee Duncan 
---
  drivers/scsi/qla4xxx/ql4_os.c   |  2 +-
  drivers/scsi/scsi_transport_iscsi.c | 36 -
  include/scsi/scsi_transport_iscsi.h |  2 ++
  3 files changed, 18 insertions(+), 22 deletions(-)


Reviewed-by: Hannes Reinecke 

Cheers,

Hannes


--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/81e3d1f1-26c4-0fd3-7c99-00de4d8d9f12%40suse.de.


Re: [RFC PATCH 6/9] iscsi: check net namespace for all iscsi lookup

2023-03-14 Thread Hannes Reinecke

On 2/8/23 18:40, Lee Duncan wrote:

From: Lee Duncan 

All internal lookups of iSCSI transport objects need to be filtered by
net namespace.

Signed-off-by: Chris Leech 
Signed-off-by: Lee Duncan 
---
  drivers/infiniband/ulp/iser/iscsi_iser.c |   5 +-
  drivers/scsi/be2iscsi/be_iscsi.c |   4 +-
  drivers/scsi/bnx2i/bnx2i_iscsi.c |   4 +-
  drivers/scsi/cxgbi/libcxgbi.c|   4 +-
  drivers/scsi/qedi/qedi_iscsi.c   |   4 +-
  drivers/scsi/qla4xxx/ql4_os.c|   8 +-
  drivers/scsi/scsi_transport_iscsi.c  | 202 ++-
  include/scsi/scsi_transport_iscsi.h  |   5 +-
  8 files changed, 149 insertions(+), 87 deletions(-)


Reviewed-by: Hannes Reinecke 

Cheers,

Hannes


--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/f6b53945-bbc2-f6b2-7d70-4f11849af5ce%40suse.de.


Re: [RFC PATCH 5/9] iscsi: set netns for iscsi_tcp hosts

2023-03-14 Thread Hannes Reinecke

On 2/8/23 18:40, Lee Duncan wrote:

From: Lee Duncan 

This lets iscsi_tcp operate in multiple namespaces.  It uses current
during session creation to find the net namespace, but it might be
better to manage to pass it along from the iscsi netlink socket.


And indeed, I'd rather use the namespace from the iscsi netlink socket.
If you use the namespace from session creation you'd better hope that
this function is not called from a workqueue ...



Signed-off-by: Chris Leech 
Signed-off-by: Lee Duncan 
---
  drivers/scsi/iscsi_tcp.c| 7 +++
  drivers/scsi/scsi_transport_iscsi.c | 7 ++-
  include/scsi/scsi_transport_iscsi.h | 1 +
  3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c
index 0454d94e8cf0..22e7a5c93627 100644
--- a/drivers/scsi/iscsi_tcp.c
+++ b/drivers/scsi/iscsi_tcp.c
@@ -1069,6 +1069,11 @@ static int iscsi_sw_tcp_slave_configure(struct 
scsi_device *sdev)
return 0;
  }
  
+static struct net *iscsi_sw_tcp_netns(struct Scsi_Host *shost)

+{
+   return current->nsproxy->net_ns;
+}
+


See above if you can't reference the namespace for the netlink socket here.


  static struct scsi_host_template iscsi_sw_tcp_sht = {
.module = THIS_MODULE,
.name   = "iSCSI Initiator over TCP/IP",
@@ -1124,6 +1129,8 @@ static struct iscsi_transport iscsi_sw_tcp_transport = {
.alloc_pdu  = iscsi_sw_tcp_pdu_alloc,
/* recovery */
.session_recovery_timedout = iscsi_session_recovery_timedout,
+   /* net namespace */
+   .get_netns  = iscsi_sw_tcp_netns,
  };
  
  static int __init iscsi_sw_tcp_init(void)

diff --git a/drivers/scsi/scsi_transport_iscsi.c 
b/drivers/scsi/scsi_transport_iscsi.c
index 230b43d34c5f..996a9abfa1f5 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -1600,10 +1600,15 @@ static int iscsi_setup_host(struct transport_container 
*tc, struct device *dev,
  {
struct Scsi_Host *shost = dev_to_shost(dev);
struct iscsi_cls_host *ihost = shost->shost_data;
+   struct iscsi_internal *priv = to_iscsi_internal(shost->transportt);
+   struct iscsi_transport *transport = priv->iscsi_transport;
  
  	memset(ihost, 0, sizeof(*ihost));

mutex_init(&ihost->mutex);
-   ihost->netns = &init_net;
+   if (transport->get_netns)
+   ihost->netns = transport->get_netns(shost);
+   else
+   ihost->netns = &init_net;
  
  	iscsi_bsg_host_add(shost, ihost);

/* ignore any bsg add error - we just can't do sgio */
diff --git a/include/scsi/scsi_transport_iscsi.h 
b/include/scsi/scsi_transport_iscsi.h
index af0c5a15f316..f8885d0c37d8 100644
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -156,6 +156,7 @@ struct iscsi_transport {
int (*logout_flashnode_sid) (struct iscsi_cls_session *cls_sess);
int (*get_host_stats) (struct Scsi_Host *shost, char *buf, int len);
u8 (*check_protection)(struct iscsi_task *task, sector_t *sector);
+   struct net *(*get_netns)(struct Scsi_Host *shost);
  };
  
  /*


Cheers,

Hannes

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/82eb95ac-2dca-7a7a-116a-2771c4551bab%40suse.de.


Re: [RFC PATCH 4/9] iscsi: make all iSCSI netlink multicast namespace aware

2023-03-14 Thread Hannes Reinecke

On 2/8/23 18:40, Lee Duncan wrote:

From: Lee Duncan 

Make use of the per-net netlink sockets. Responses are sent back on the
same socket/namespace the request was received on.  Async events are
reported on the socket/namespace stored in the iscsi_cls_host associated
with the event.

Signed-off-by: Chris Leech 
Signed-off-by: Lee Duncan 
---
  drivers/scsi/scsi_transport_iscsi.c | 92 +++--
  1 file changed, 60 insertions(+), 32 deletions(-)

diff --git a/drivers/scsi/scsi_transport_iscsi.c 
b/drivers/scsi/scsi_transport_iscsi.c
index 2e2b291bce41..230b43d34c5f 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -2653,8 +2653,8 @@ iscsi_if_transport_lookup(struct iscsi_transport *tt)
  }
  
  static int

-iscsi_multicast_netns(struct net *net, struct sk_buff *skb,
- uint32_t group, gfp_t gfp)
+iscsi_multicast_skb(struct net *net, struct sk_buff *skb,
+   uint32_t group, gfp_t gfp)
  {
struct sock *nls;
struct iscsi_net *isn;
@@ -2665,17 +2665,10 @@ iscsi_multicast_netns(struct net *net, struct sk_buff 
*skb,
  }
  
  static int

-iscsi_multicast_skb(struct sk_buff *skb, uint32_t group, gfp_t gfp)
-{
-   return iscsi_multicast_netns(&init_net, skb, group, gfp);
-}
-
-static int
-iscsi_unicast_skb(struct sk_buff *skb, u32 portid)
+iscsi_unicast_skb(struct net *net, struct sk_buff *skb, u32 portid)
  {
struct sock *nls;
struct iscsi_net *isn;
-   struct net *net = &init_net;
  
  	isn = net_generic(net, iscsi_net_id);

nls = isn->nls;
@@ -2690,6 +2683,7 @@ int iscsi_recv_pdu(struct iscsi_cls_conn *conn, struct 
iscsi_hdr *hdr,
struct iscsi_uevent *ev;
char *pdu;
struct iscsi_internal *priv;
+   struct net *net;
int len = nlmsg_total_size(sizeof(*ev) + sizeof(struct iscsi_hdr) +
   data_size);
  
@@ -2716,7 +2710,8 @@ int iscsi_recv_pdu(struct iscsi_cls_conn *conn, struct iscsi_hdr *hdr,

memcpy(pdu, hdr, sizeof(struct iscsi_hdr));
memcpy(pdu + sizeof(struct iscsi_hdr), data, data_size);
  
-	return iscsi_multicast_skb(skb, ISCSI_NL_GRP_ISCSID, GFP_ATOMIC);

+   net = iscsi_conn_net(conn);
+   return iscsi_multicast_skb(net, skb, ISCSI_NL_GRP_ISCSID, GFP_ATOMIC);
  }
  EXPORT_SYMBOL_GPL(iscsi_recv_pdu);
  
@@ -2727,6 +2722,7 @@ int iscsi_offload_mesg(struct Scsi_Host *shost,

struct nlmsghdr *nlh;
struct sk_buff *skb;
struct iscsi_uevent *ev;
+   struct net *net;
int len = nlmsg_total_size(sizeof(*ev) + data_size);
  
  	skb = alloc_skb(len, GFP_ATOMIC);

@@ -2751,7 +2747,8 @@ int iscsi_offload_mesg(struct Scsi_Host *shost,
  
  	memcpy((char *)ev + sizeof(*ev), data, data_size);
  
-	return iscsi_multicast_skb(skb, ISCSI_NL_GRP_UIP, GFP_ATOMIC);

+   net = iscsi_host_net(shost->shost_data);
+   return iscsi_multicast_skb(net, skb, ISCSI_NL_GRP_UIP, GFP_ATOMIC);
  }
  EXPORT_SYMBOL_GPL(iscsi_offload_mesg);
  
@@ -2761,6 +2758,7 @@ void iscsi_conn_error_event(struct iscsi_cls_conn *conn, enum iscsi_err error)

struct sk_buff  *skb;
struct iscsi_uevent *ev;
struct iscsi_internal *priv;
+   struct net *net;
int len = nlmsg_total_size(sizeof(*ev));
unsigned long flags;
int state;
@@ -2808,7 +2806,8 @@ void iscsi_conn_error_event(struct iscsi_cls_conn *conn, 
enum iscsi_err error)
ev->r.connerror.cid = conn->cid;
ev->r.connerror.sid = iscsi_conn_get_sid(conn);
  
-	iscsi_multicast_skb(skb, ISCSI_NL_GRP_ISCSID, GFP_ATOMIC);

+   net = iscsi_conn_net(conn);
+   iscsi_multicast_skb(net, skb, ISCSI_NL_GRP_ISCSID, GFP_ATOMIC);
  
  	iscsi_cls_conn_printk(KERN_INFO, conn, "detected conn error (%d)\n",

  error);
@@ -2822,6 +2821,7 @@ void iscsi_conn_login_event(struct iscsi_cls_conn *conn,
struct sk_buff  *skb;
struct iscsi_uevent *ev;
struct iscsi_internal *priv;
+   struct net *net;
int len = nlmsg_total_size(sizeof(*ev));
  
  	priv = iscsi_if_transport_lookup(conn->transport);

@@ -2842,7 +2842,9 @@ void iscsi_conn_login_event(struct iscsi_cls_conn *conn,
ev->r.conn_login.state = state;
ev->r.conn_login.cid = conn->cid;
ev->r.conn_login.sid = iscsi_conn_get_sid(conn);
-   iscsi_multicast_skb(skb, ISCSI_NL_GRP_ISCSID, GFP_ATOMIC);
+
+   net = iscsi_conn_net(conn);
+   iscsi_multicast_skb(net, skb, ISCSI_NL_GRP_ISCSID, GFP_ATOMIC);
  
  	iscsi_cls_conn_printk(KERN_INFO, conn, "detected conn login (%d)\n",

  state);
@@ -2853,11 +2855,17 @@ void iscsi_post_host_event(uint32_t host_no, struct 
iscsi_transport *transport,
   enum iscsi_host_event_code code, uint32_t data_size,
   uint8_t *data)
  {
+   struct Scsi_Host *shost;
+   struct net *net;
struct nlmsghdr *nlh;

Re: [RFC PATCH 3/9] iscsi: sysfs filtering by network namespace

2023-03-14 Thread Hannes Reinecke

On 2/8/23 18:40, Lee Duncan wrote:

From: Lee Duncan 

This makes the iscsi_host, iscsi_session, iscsi_connection, iscsi_iface,
and iscsi_endpoint transport class devices only visible in sysfs under a
matching network namespace.  The network namespace for all of these
objects is tracked in the iscsi_cls_host structure.

Signed-off-by: Chris Leech 
Signed-off-by: Lee Duncan 
---
  drivers/scsi/scsi_transport_iscsi.c | 124 
  include/scsi/scsi_transport_iscsi.h |   1 +
  2 files changed, 110 insertions(+), 15 deletions(-)


Reviewed-by: Hannes Reinecke 

Cheers,

Hannes


--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/e71a718e-9d36-095a-9c7b-ea7761fe486a%40suse.de.


Re: [RFC PATCH 2/9] iscsi: associate endpoints with a host

2023-03-14 Thread Hannes Reinecke

On 2/8/23 18:40, Lee Duncan wrote:

From: Lee Duncan 

Right now the iscsi_endpoint is only linked to a connection once that
connection has been established.  For net namespace filtering of the
sysfs objects, associate an endpoint with the host that it was
allocated for when it is created.

Signed-off-by: Chris Leech 
Signed-off-by: Lee Duncan 
---
  drivers/infiniband/ulp/iser/iscsi_iser.c | 2 +-
  drivers/scsi/be2iscsi/be_iscsi.c | 2 +-
  drivers/scsi/bnx2i/bnx2i_iscsi.c | 2 +-
  drivers/scsi/cxgbi/libcxgbi.c| 2 +-
  drivers/scsi/qedi/qedi_iscsi.c   | 2 +-
  drivers/scsi/qla4xxx/ql4_os.c| 2 +-
  drivers/scsi/scsi_transport_iscsi.c  | 3 ++-
  include/scsi/scsi_transport_iscsi.h  | 6 +-
  8 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c 
b/drivers/infiniband/ulp/iser/iscsi_iser.c
index 620ae5b2d80d..d38c909b462f 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -802,7 +802,7 @@ static struct iscsi_endpoint *iscsi_iser_ep_connect(struct 
Scsi_Host *shost,
struct iser_conn *iser_conn;
struct iscsi_endpoint *ep;
  
-	ep = iscsi_create_endpoint(0);

+   ep = iscsi_create_endpoint(shost, 0);
if (!ep)
return ERR_PTR(-ENOMEM);
  
diff --git a/drivers/scsi/be2iscsi/be_iscsi.c b/drivers/scsi/be2iscsi/be_iscsi.c

index 8aeaddc93b16..c893d193f5ef 100644
--- a/drivers/scsi/be2iscsi/be_iscsi.c
+++ b/drivers/scsi/be2iscsi/be_iscsi.c
@@ -1168,7 +1168,7 @@ beiscsi_ep_connect(struct Scsi_Host *shost, struct 
sockaddr *dst_addr,
return ERR_PTR(ret);
}
  
-	ep = iscsi_create_endpoint(sizeof(struct beiscsi_endpoint));

+   ep = iscsi_create_endpoint(shost, sizeof(struct beiscsi_endpoint));
if (!ep) {
ret = -ENOMEM;
return ERR_PTR(ret);
diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c
index a3c800e04a2e..ac63e93e07c6 100644
--- a/drivers/scsi/bnx2i/bnx2i_iscsi.c
+++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c
@@ -384,7 +384,7 @@ static struct iscsi_endpoint *bnx2i_alloc_ep(struct 
bnx2i_hba *hba)
struct bnx2i_endpoint *bnx2i_ep;
u32 ec_div;
  
-	ep = iscsi_create_endpoint(sizeof(*bnx2i_ep));

+   ep = iscsi_create_endpoint(hba->shost, sizeof(*bnx2i_ep));
if (!ep) {
printk(KERN_ERR "bnx2i: Could not allocate ep\n");
return NULL;
diff --git a/drivers/scsi/cxgbi/libcxgbi.c b/drivers/scsi/cxgbi/libcxgbi.c
index af281e271f88..94edf8e1fb0c 100644
--- a/drivers/scsi/cxgbi/libcxgbi.c
+++ b/drivers/scsi/cxgbi/libcxgbi.c
@@ -2926,7 +2926,7 @@ struct iscsi_endpoint *cxgbi_ep_connect(struct Scsi_Host 
*shost,
goto release_conn;
}
  
-	ep = iscsi_create_endpoint(sizeof(*cep));

+   ep = iscsi_create_endpoint(shost, sizeof(*cep));
if (!ep) {
err = -ENOMEM;
pr_info("iscsi alloc ep, OOM.\n");
diff --git a/drivers/scsi/qedi/qedi_iscsi.c b/drivers/scsi/qedi/qedi_iscsi.c
index 31ec429104e2..4baf1dbb8e92 100644
--- a/drivers/scsi/qedi/qedi_iscsi.c
+++ b/drivers/scsi/qedi/qedi_iscsi.c
@@ -931,7 +931,7 @@ qedi_ep_connect(struct Scsi_Host *shost, struct sockaddr 
*dst_addr,
return ERR_PTR(-ENXIO);
}
  
-	ep = iscsi_create_endpoint(sizeof(struct qedi_endpoint));

+   ep = iscsi_create_endpoint(shost, sizeof(struct qedi_endpoint));
if (!ep) {
QEDI_ERR(&qedi->dbg_ctx, "endpoint create fail\n");
ret = -ENOMEM;
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index 005502125b27..acebf9c92c04 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -1717,7 +1717,7 @@ qla4xxx_ep_connect(struct Scsi_Host *shost, struct 
sockaddr *dst_addr,
}
  
  	ha = iscsi_host_priv(shost);

-   ep = iscsi_create_endpoint(sizeof(struct qla_endpoint));
+   ep = iscsi_create_endpoint(shost, sizeof(struct qla_endpoint));
if (!ep) {
ret = -ENOMEM;
return ERR_PTR(ret);
diff --git a/drivers/scsi/scsi_transport_iscsi.c 
b/drivers/scsi/scsi_transport_iscsi.c
index be69cea9c6f8..86bafdb862a5 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -204,7 +204,7 @@ static struct attribute_group iscsi_endpoint_group = {
  };
  
  struct iscsi_endpoint *

-iscsi_create_endpoint(int dd_size)
+iscsi_create_endpoint(struct Scsi_Host *shost, int dd_size)
  {
struct iscsi_endpoint *ep;
int err, id;
@@ -230,6 +230,7 @@ iscsi_create_endpoint(int dd_size)
  
  	ep->id = id;

ep->dev.class = &iscsi_endpoint_class;
+   ep->dev.parent = &shost->shost_gendev;
dev_set_name(&ep->dev, "ep-%d", id);
err = device_register(&ep->dev);
  if (err)


Umm... doesn't this change the sysfs layout?
IE won't the endpoint node

Re: [RFC PATCH 1/9] iscsi: create per-net iscsi netlink kernel sockets

2023-03-14 Thread Hannes Reinecke

On 2/8/23 18:40, Lee Duncan wrote:

From: Lee Duncan 

Prepare iSCSI netlink to operate in multiple namespaces.

Signed-off-by: Chris Leech 
Signed-off-by: Lee Duncan 
Reviewed-by: Hannes Reinecke 

Cheers,

Hannes

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/b867f388-df15-df08-349e-4c80aabec5a7%40suse.de.


Re: [RFC 0/9] Make iscsid-kernel communications namespace-aware

2023-03-14 Thread Hannes Reinecke

On 2/8/23 18:40, Lee Duncan wrote:

From: Lee Duncan 

This is a request for comment on a set of patches that
modify the kernel iSCSI initiator communications so that
they are namespace-aware. The goal is to allow multiple
iSCSI daemon (iscsid) to run at once as long as they
are in separate namespaces, and so that iscsid can
run in containers.

Comments and suggestions are more than welcome. I do not
expect that this code is production-ready yet, and
networking isn't my strongest suit (yet).

These patches were originally posted in 2015 by Chris
Leech. There were some issues at the time about how
to handle namespaces going away. I hope to address
any issues raised with this patchset and then
to merge these changes upstream to address working
in working in containers.

My contribution thus far has been to update these patches
to work with the current upstream kernel.

Chris Leech/Lee Duncan (9):
   iscsi: create per-net iscsi netlink kernel sockets
   iscsi: associate endpoints with a host
   iscsi: sysfs filtering by network namespace
   iscsi: make all iSCSI netlink multicast namespace aware
   iscsi: set netns for iscsi_tcp hosts
   iscsi: check net namespace for all iscsi lookup
   iscsi: convert flashnode devices from bus to class
   iscsi: rename iscsi_bus_flash_* to iscsi_flash_*
   iscsi: filter flashnode sysfs by net namespace

  drivers/infiniband/ulp/iser/iscsi_iser.c |   7 +-
  drivers/scsi/be2iscsi/be_iscsi.c |   6 +-
  drivers/scsi/bnx2i/bnx2i_iscsi.c |   6 +-
  drivers/scsi/cxgbi/libcxgbi.c|   6 +-
  drivers/scsi/iscsi_tcp.c |   7 +
  drivers/scsi/qedi/qedi_iscsi.c   |   6 +-
  drivers/scsi/qla4xxx/ql4_os.c|  64 +--
  drivers/scsi/scsi_transport_iscsi.c  | 625 ---
  include/scsi/scsi_transport_iscsi.h  |  63 ++-
  9 files changed, 537 insertions(+), 253 deletions(-)


Awesome work!

Thanks for this!

Comments to follow on the individual patches.

Cheers,

Hannes

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/bc73fcf1-d679-ec43-8235-b6342f78c1ba%40suse.de.