diff options
Diffstat (limited to 'drivers/scsi/scsi_transport_iscsi.c')
-rw-r--r-- | drivers/scsi/scsi_transport_iscsi.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c index b481e62a12cc..67d43e35693d 100644 --- a/drivers/scsi/scsi_transport_iscsi.c +++ b/drivers/scsi/scsi_transport_iscsi.c | |||
@@ -3429,7 +3429,7 @@ iscsi_get_host_stats(struct iscsi_transport *transport, struct nlmsghdr *nlh) | |||
3429 | char *buf; | 3429 | char *buf; |
3430 | 3430 | ||
3431 | if (!transport->get_host_stats) | 3431 | if (!transport->get_host_stats) |
3432 | return -EINVAL; | 3432 | return -ENOSYS; |
3433 | 3433 | ||
3434 | priv = iscsi_if_transport_lookup(transport); | 3434 | priv = iscsi_if_transport_lookup(transport); |
3435 | if (!priv) | 3435 | if (!priv) |
@@ -3467,6 +3467,10 @@ iscsi_get_host_stats(struct iscsi_transport *transport, struct nlmsghdr *nlh) | |||
3467 | memset(buf, 0, host_stats_size); | 3467 | memset(buf, 0, host_stats_size); |
3468 | 3468 | ||
3469 | err = transport->get_host_stats(shost, buf, host_stats_size); | 3469 | err = transport->get_host_stats(shost, buf, host_stats_size); |
3470 | if (err) { | ||
3471 | kfree_skb(skbhost_stats); | ||
3472 | goto exit_host_stats; | ||
3473 | } | ||
3470 | 3474 | ||
3471 | actual_size = nlmsg_total_size(sizeof(*ev) + host_stats_size); | 3475 | actual_size = nlmsg_total_size(sizeof(*ev) + host_stats_size); |
3472 | skb_trim(skbhost_stats, NLMSG_ALIGN(actual_size)); | 3476 | skb_trim(skbhost_stats, NLMSG_ALIGN(actual_size)); |