Mercurial > illumos > illumos-gate
changeset 13276:5fc9a1e8f648
429 "iostat -E" does not report serial number...
Reviewed by: garrett@nexenta.com
Reviewed by: gwr@nexenta.com
Approved by: trisk@nexenta.com
author | Alexander Eremin <a.eremin@nexenta.com> |
---|---|
date | Thu, 27 Jan 2011 18:50:51 +0000 |
parents | 229035fe864a |
children | 6e9c2509dda5 |
files | usr/src/uts/common/io/scsi/targets/sd.c |
diffstat | 1 files changed, 15 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/io/scsi/targets/sd.c Wed Jan 26 19:18:35 2011 -0800 +++ b/usr/src/uts/common/io/scsi/targets/sd.c Thu Jan 27 18:50:51 2011 +0000 @@ -22,6 +22,9 @@ /* * Copyright (c) 1990, 2010, Oracle and/or its affiliates. All rights reserved. */ +/* + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + */ /* * SCSI disk target driver. @@ -9105,6 +9108,7 @@ sd_set_errstats(struct sd_lun *un) { struct sd_errstats *stp; + char *sn; ASSERT(un != NULL); ASSERT(un->un_errstats != NULL); @@ -9143,6 +9147,17 @@ if (bcmp(&SD_INQUIRY(un)->inq_pid[9], "SUN", 3) == 0) { bcopy(&SD_INQUIRY(un)->inq_serial, stp->sd_serial.value.c, sizeof (SD_INQUIRY(un)->inq_serial)); + } else { + /* + * Set the "Serial No" kstat for non-Sun qualified drives + */ + if (ddi_prop_lookup_string(DDI_DEV_T_ANY, SD_DEVINFO(un), + DDI_PROP_NOTPROM | DDI_PROP_DONTPASS, + INQUIRY_SERIAL_NO, &sn) == DDI_SUCCESS) { + (void) strlcpy(stp->sd_serial.value.c, sn, + sizeof (stp->sd_serial.value.c)); + ddi_prop_free(sn); + } } if (un->un_f_blockcount_is_valid != TRUE) {