NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
PR/43986 CVS commit: src/sys/dev/ata
The following reply was made to PR kern/43986; it has been noted by GNATS.
From: "Andrius Varanavicius" <andvar%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc:
Subject: PR/43986 CVS commit: src/sys/dev/ata
Date: Sun, 16 Mar 2025 12:27:51 +0000
Module Name: src
Committed By: andvar
Date: Sun Mar 16 12:27:50 UTC 2025
Modified Files:
src/sys/dev/ata: ata_raid_subr.c ld_ataraid.c
Log Message:
ataraid(4), ld(4): ensure RAID disk status is set before resolving vnode.
Given a RAID array disk is missing (due to removal, failure, or a code bug),
its configuration is skipped. This causes ld(4) attachment at ataraid(4) to
fail because adi->adi_dev is NULL.
The fix will treat disks without known status (ADI_S_ONLINE, ADI_S_SPARE,
ADI_S_ASSIGNED) as if ata_raid_disk_vnode_find() returned NULL, more gracefully
solving above situation and avoiding the crash.
Additionally, replace vnode block device opening logic with vn_bdev_open()
(vn_subr(9)). This function provides identical functionality while also
incrementing vp->v_writecount, preventing a 'vp->v_writecount > 0` assertion
failure on vn_close().
More details are available in the tech-kern mailing list thread:
the https://mail-index.netbsd.org/tech-kern/2025/03/10/msg030179.html thread
and PR thread.
Should fix PR kern/43986
Also observed in PR kern/59130 (due to a different bug).
pullups are needed to netbsd-9, netbsd-10.
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/dev/ata/ata_raid_subr.c
cvs rdiff -u -r1.50 -r1.51 src/sys/dev/ata/ld_ataraid.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index