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)); |
