Browse Source

iscsi class: fix get_host_stats error handling

iscsi_get_host_stats was dropping the error code returned
by drivers like qla4xxx.

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Acked-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Mike Christie 11 years ago
parent
commit
2f7608fc5e
1 changed files with 4 additions and 0 deletions
  1. 4 0
      drivers/scsi/scsi_transport_iscsi.c

+ 4 - 0
drivers/scsi/scsi_transport_iscsi.c

@@ -3467,6 +3467,10 @@ iscsi_get_host_stats(struct iscsi_transport *transport, struct nlmsghdr *nlh)
 		memset(buf, 0, host_stats_size);
 		memset(buf, 0, host_stats_size);
 
 
 		err = transport->get_host_stats(shost, buf, host_stats_size);
 		err = transport->get_host_stats(shost, buf, host_stats_size);
+		if (err) {
+			kfree(skbhost_stats);
+			goto exit_host_stats;
+		}
 
 
 		actual_size = nlmsg_total_size(sizeof(*ev) + host_stats_size);
 		actual_size = nlmsg_total_size(sizeof(*ev) + host_stats_size);
 		skb_trim(skbhost_stats, NLMSG_ALIGN(actual_size));
 		skb_trim(skbhost_stats, NLMSG_ALIGN(actual_size));