History log of /src/sys/dev/ata/ata_raid_subr.c |
Revision | | Date | Author | Comments |
1.5 |
| 16-Mar-2025 |
andvar | 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.
|
1.4 |
| 19-Mar-2022 |
hannken | branches: 1.4.4; 1.4.10; Lock vnode across VOP_OPEN.
|
1.3 |
| 25-Jun-2017 |
maxv | dumb instruction
|
1.2 |
| 24-Jun-2010 |
hannken | branches: 1.2.18; 1.2.36; Clean up vnode lock operations pass 2:
VOP_UNLOCK(vp, flags) -> VOP_UNLOCK(vp): Remove the unneeded flags argument.
Welcome to 5.99.32.
Discussed on tech-kern.
|
1.1 |
| 16-Sep-2008 |
tron | branches: 1.1.2; 1.1.4; 1.1.6; 1.1.18; 1.1.22; 1.1.24; Support multiple volumes connected to Intel MatrixRAID controllers. Code contributed by Juan RP in PR kern/39552.
|
1.1.24.1 |
| 03-Jul-2010 |
rmind | sync with head
|
1.1.22.1 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.1.18.3 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.1.18.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.1.18.1 |
| 16-Sep-2008 |
yamt | file ata_raid_subr.c was added on branch yamt-nfs-mp on 2009-05-04 08:12:35 +0000
|
1.1.6.2 |
| 19-Oct-2008 |
haad | Sync with HEAD.
|
1.1.6.1 |
| 16-Sep-2008 |
haad | file ata_raid_subr.c was added on branch haad-dm on 2008-10-19 22:16:19 +0000
|
1.1.4.2 |
| 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.1.4.1 |
| 16-Sep-2008 |
mjf | file ata_raid_subr.c was added on branch mjf-devfs2 on 2008-09-28 10:40:19 +0000
|
1.1.2.2 |
| 24-Sep-2008 |
wrstuden | Merge in changes between wrstuden-revivesa-base-2 and wrstuden-revivesa-base-3.
|
1.1.2.1 |
| 16-Sep-2008 |
wrstuden | file ata_raid_subr.c was added on branch wrstuden-revivesa on 2008-09-24 16:38:51 +0000
|
1.2.36.1 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.2.18.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.4.10.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|
1.4.4.1 |
| 07-May-2025 |
martin | Pull up following revision(s) (requested by andvar in ticket #1100):
sys/dev/ata/ld_ataraid.c: revision 1.51 sys/dev/ata/ata_raid_subr.c: revision 1.5
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).
|