diff options
| author | Dan McDonald <danmcd@joyent.com> | 2022-02-04 10:38:56 -0500 |
|---|---|---|
| committer | Dan McDonald <danmcd@joyent.com> | 2022-02-04 10:38:56 -0500 |
| commit | b57791dd2ad47157c6f0aedb7c1a3dc1abd4bfb3 (patch) | |
| tree | 15d9b767cc031fac8a05a90c688af75867efc6ed /usr/src | |
| parent | d17f64dace0684de9710c41b5d8b6b76dd82a5ce (diff) | |
| parent | c2270953142194d5f260d803d60104fad12ab076 (diff) | |
| download | illumos-joyent-b57791dd2ad47157c6f0aedb7c1a3dc1abd4bfb3.tar.gz | |
[illumos-gate merge]
commit c2270953142194d5f260d803d60104fad12ab076
6779 kernel panic in zfs_readdir shortly after mount
commit b8aa3def2e2531e693fba6d1f00a74339a4a663d
11174 new driver for Smart Array storage controllers
Conflicts (whitespace only):
usr/src/uts/common/io/scsi/adapters/smrt/smrt_ciss.c
usr/src/uts/common/io/scsi/adapters/smrt/smrt_device.c
usr/src/uts/common/io/scsi/adapters/smrt/smrt_physical.c
usr/src/uts/common/sys/scsi/adapters/smrt/smrt_scsi.h
usr/src/uts/intel/smrt/Makefile
Diffstat (limited to 'usr/src')
| -rw-r--r-- | usr/src/pkg/manifests/driver-storage-smrt.p5m | 74 | ||||
| -rw-r--r-- | usr/src/uts/common/fs/zfs/zfs_dir.c | 1 | ||||
| -rw-r--r-- | usr/src/uts/common/fs/zfs/zfs_znode.c | 2 | ||||
| -rw-r--r-- | usr/src/uts/common/io/scsi/adapters/smrt/smrt_ciss.c | 16 | ||||
| -rw-r--r-- | usr/src/uts/common/io/scsi/adapters/smrt/smrt_device.c | 2 | ||||
| -rw-r--r-- | usr/src/uts/common/io/scsi/adapters/smrt/smrt_physical.c | 1 | ||||
| -rw-r--r-- | usr/src/uts/common/sys/scsi/adapters/smrt/smrt_scsi.h | 8 | ||||
| -rw-r--r-- | usr/src/uts/intel/smrt/Makefile | 2 |
8 files changed, 91 insertions, 15 deletions
diff --git a/usr/src/pkg/manifests/driver-storage-smrt.p5m b/usr/src/pkg/manifests/driver-storage-smrt.p5m new file mode 100644 index 0000000000..8ef3e50718 --- /dev/null +++ b/usr/src/pkg/manifests/driver-storage-smrt.p5m @@ -0,0 +1,74 @@ +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright 2019 Joyent, Inc. +# + +<include global_zone_only_component> +set name=pkg.fmri value=pkg:/driver/storage/smrt@$(PKGVERS) +set name=pkg.summary value="HP SmartArray SAS HBA Driver" +set name=pkg.description value="HP SmartArray SAS HBA Driver" +set name=info.classification value=org.opensolaris.category.2008:Drivers/Storage +set name=variant.arch value=i386 +dir path=kernel group=sys +dir path=kernel/drv group=sys +dir path=kernel/drv/$(ARCH64) group=sys +file path=kernel/drv/$(ARCH64)/smrt group=sys +file path=kernel/drv/smrt.conf group=sys +driver name=smrt class=scsi-self-identifying +# +# The smrt driver overlaps with cpqary3 and supports several of the same +# devices. To ensure that folks can still boot existing systems we have +# left all the devices supported by smrt commented out as they all +# overlay with cpqary3. In this form, users may swap over and the driver +# also provides a useful reference for SCSAv3. When adding these +# aliases, please make sure to remember to add the appropriate '\' to +# the driver line above and below as needed. +# +# alias=pci103c,1920 +# alias=pci103c,1921 +# alias=pci103c,1922 +# alias=pci103c,1923 +# alias=pci103c,1924 +# alias=pci103c,1926 +# alias=pci103c,1928 +# alias=pci103c,21bd +# alias=pci103c,21be +# alias=pci103c,21bf +# alias=pci103c,21c0 +# alias=pci103c,21c1 +# alias=pci103c,21c2 +# alias=pci103c,21c3 +# alias=pci103c,21c5 +# alias=pci103c,21c6 +# alias=pci103c,21c7 +# alias=pci103c,21c8 +# alias=pci103c,21ca +# alias=pci103c,21cb +# alias=pci103c,21cc +# alias=pci103c,21cd +# alias=pci103c,21ce +# alias=pci103c,3241 +# alias=pci103c,3243 +# alias=pci103c,3245 +# alias=pci103c,3247 +# alias=pci103c,3249 +# alias=pci103c,324a +# alias=pci103c,324b +# alias=pci103c,3350 +# alias=pci103c,3351 +# alias=pci103c,3352 +# alias=pci103c,3353 +# alias=pci103c,3354 +# alias=pci103c,3355 +# alias=pci103c,3356 +license lic_CDDL license=lic_CDDL diff --git a/usr/src/uts/common/fs/zfs/zfs_dir.c b/usr/src/uts/common/fs/zfs/zfs_dir.c index 3841c11d11..5d377a109e 100644 --- a/usr/src/uts/common/fs/zfs/zfs_dir.c +++ b/usr/src/uts/common/fs/zfs/zfs_dir.c @@ -717,6 +717,7 @@ zfs_rmnode(znode_t *zp) dmu_tx_hold_free(tx, acl_obj, 0, DMU_OBJECT_END); zfs_sa_upgrade_txholds(tx, zp); + dmu_tx_mark_netfree(tx); error = dmu_tx_assign(tx, TXG_WAIT); if (error) { /* diff --git a/usr/src/uts/common/fs/zfs/zfs_znode.c b/usr/src/uts/common/fs/zfs/zfs_znode.c index 257d5b2a35..84ba5947fa 100644 --- a/usr/src/uts/common/fs/zfs/zfs_znode.c +++ b/usr/src/uts/common/fs/zfs/zfs_znode.c @@ -1246,6 +1246,8 @@ zfs_zget(zfsvfs_t *zfsvfs, uint64_t obj_num, znode_t **zpp) if (zp == NULL) { err = SET_ERROR(ENOENT); } else { + if (zp->z_links == 0) + zp->z_unlinked = B_TRUE; *zpp = zp; } ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num); diff --git a/usr/src/uts/common/io/scsi/adapters/smrt/smrt_ciss.c b/usr/src/uts/common/io/scsi/adapters/smrt/smrt_ciss.c index b4cdd5607e..8da9ac9038 100644 --- a/usr/src/uts/common/io/scsi/adapters/smrt/smrt_ciss.c +++ b/usr/src/uts/common/io/scsi/adapters/smrt/smrt_ciss.c @@ -123,15 +123,15 @@ * The CISS specification allows for three different kinds of attributes that * describe how requests are queued to the controller. These are: * - * HEAD OF QUEUE The request should go to the head of the - * controller queue. This is used for resets and - * aborts to ensure that they're not blocked behind - * additional I/O. + * HEAD OF QUEUE The request should go to the head of the + * controller queue. This is used for resets and + * aborts to ensure that they're not blocked behind + * additional I/O. * - * SIMPLE This queues the request for normal processing. - * Commands queued this way are not special with - * respect to one another. We use this for all I/O - * and discovery commands. + * SIMPLE This queues the request for normal processing. + * Commands queued this way are not special with + * respect to one another. We use this for all I/O + * and discovery commands. * * ORDERED This attribute is used to indicate that commands * should be submitted and processed in some order. diff --git a/usr/src/uts/common/io/scsi/adapters/smrt/smrt_device.c b/usr/src/uts/common/io/scsi/adapters/smrt/smrt_device.c index 9e27448b68..433b2ea2ee 100644 --- a/usr/src/uts/common/io/scsi/adapters/smrt/smrt_device.c +++ b/usr/src/uts/common/io/scsi/adapters/smrt/smrt_device.c @@ -58,7 +58,7 @@ smrt_locate_cfgtbl(smrt_t *smrt, pci_regspec_t *regs, unsigned nregs, /* * Locate the Configuration Table. Three different values read * from two I2O registers allow us to determine the location: - * - the correct PCI BAR offset is in the low 16 bits of + * - the correct PCI BAR offset is in the low 16 bits of * CISS_I2O_CFGTBL_CFG_OFFSET * - bit 16 is 0 for a 32-bit space, and 1 for 64-bit * - the memory offset from the base of this BAR is diff --git a/usr/src/uts/common/io/scsi/adapters/smrt/smrt_physical.c b/usr/src/uts/common/io/scsi/adapters/smrt/smrt_physical.c index 8ab3927673..88ed57bc7d 100644 --- a/usr/src/uts/common/io/scsi/adapters/smrt/smrt_physical.c +++ b/usr/src/uts/common/io/scsi/adapters/smrt/smrt_physical.c @@ -606,7 +606,6 @@ smrt_phys_teardown(smrt_t *smrt) { smrt_physical_t *smpt; - VERIFY(MUTEX_HELD(&smrt->smrt_mutex)); while ((smpt = list_remove_head(&smrt->smrt_physicals)) != NULL) { smrt_physical_free(smpt); } diff --git a/usr/src/uts/common/sys/scsi/adapters/smrt/smrt_scsi.h b/usr/src/uts/common/sys/scsi/adapters/smrt/smrt_scsi.h index 47ef99b2e0..45c4c84407 100644 --- a/usr/src/uts/common/sys/scsi/adapters/smrt/smrt_scsi.h +++ b/usr/src/uts/common/sys/scsi/adapters/smrt/smrt_scsi.h @@ -26,10 +26,10 @@ extern "C" { #endif /* CISS LUN Addressing MODEs */ -#define PERIPHERIAL_DEV_ADDR 0x0 -#define LOGICAL_VOL_ADDR 0x1 -#define MASK_PERIPHERIAL_DEV_ADDR 0x3 -#define CISS_PHYS_MODE 0x0 +#define PERIPHERIAL_DEV_ADDR 0x0 +#define LOGICAL_VOL_ADDR 0x1 +#define MASK_PERIPHERIAL_DEV_ADDR 0x3 +#define CISS_PHYS_MODE 0x0 /* * Vendor-specific SCSI Commands diff --git a/usr/src/uts/intel/smrt/Makefile b/usr/src/uts/intel/smrt/Makefile index ce78cddb11..37d47e1395 100644 --- a/usr/src/uts/intel/smrt/Makefile +++ b/usr/src/uts/intel/smrt/Makefile @@ -38,7 +38,7 @@ ALL_TARGET = $(BINARY) $(CONFMOD) INSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE) # -# Kernel Module Dependencies +# Kernel Module Dependencies # LDFLAGS += -Nmisc/scsi |
