| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: rf_netbsdkintf.c,v 1.387 2020/07/31 20:34:38 christos Exp $ */ | | 1 | /* $NetBSD: rf_netbsdkintf.c,v 1.388 2020/07/31 20:35:33 christos Exp $ */ |
2 | | | 2 | |
3 | /*- | | 3 | /*- |
4 | * Copyright (c) 1996, 1997, 1998, 2008-2011 The NetBSD Foundation, Inc. | | 4 | * Copyright (c) 1996, 1997, 1998, 2008-2011 The NetBSD Foundation, Inc. |
5 | * All rights reserved. | | 5 | * All rights reserved. |
6 | * | | 6 | * |
7 | * This code is derived from software contributed to The NetBSD Foundation | | 7 | * This code is derived from software contributed to The NetBSD Foundation |
8 | * by Greg Oster; Jason R. Thorpe. | | 8 | * by Greg Oster; Jason R. Thorpe. |
9 | * | | 9 | * |
10 | * Redistribution and use in source and binary forms, with or without | | 10 | * Redistribution and use in source and binary forms, with or without |
11 | * modification, are permitted provided that the following conditions | | 11 | * modification, are permitted provided that the following conditions |
12 | * are met: | | 12 | * are met: |
13 | * 1. Redistributions of source code must retain the above copyright | | 13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions and the following disclaimer. | | 14 | * notice, this list of conditions and the following disclaimer. |
| @@ -91,27 +91,27 @@ | | | @@ -91,27 +91,27 @@ |
91 | * Pittsburgh PA 15213-3890 | | 91 | * Pittsburgh PA 15213-3890 |
92 | * | | 92 | * |
93 | * any improvements or extensions that they make and grant Carnegie the | | 93 | * any improvements or extensions that they make and grant Carnegie the |
94 | * rights to redistribute these changes. | | 94 | * rights to redistribute these changes. |
95 | */ | | 95 | */ |
96 | | | 96 | |
97 | /*********************************************************** | | 97 | /*********************************************************** |
98 | * | | 98 | * |
99 | * rf_kintf.c -- the kernel interface routines for RAIDframe | | 99 | * rf_kintf.c -- the kernel interface routines for RAIDframe |
100 | * | | 100 | * |
101 | ***********************************************************/ | | 101 | ***********************************************************/ |
102 | | | 102 | |
103 | #include <sys/cdefs.h> | | 103 | #include <sys/cdefs.h> |
104 | __KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.387 2020/07/31 20:34:38 christos Exp $"); | | 104 | __KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.388 2020/07/31 20:35:33 christos Exp $"); |
105 | | | 105 | |
106 | #ifdef _KERNEL_OPT | | 106 | #ifdef _KERNEL_OPT |
107 | #include "opt_raid_autoconfig.h" | | 107 | #include "opt_raid_autoconfig.h" |
108 | #include "opt_compat_netbsd32.h" | | 108 | #include "opt_compat_netbsd32.h" |
109 | #endif | | 109 | #endif |
110 | | | 110 | |
111 | #include <sys/param.h> | | 111 | #include <sys/param.h> |
112 | #include <sys/errno.h> | | 112 | #include <sys/errno.h> |
113 | #include <sys/pool.h> | | 113 | #include <sys/pool.h> |
114 | #include <sys/proc.h> | | 114 | #include <sys/proc.h> |
115 | #include <sys/queue.h> | | 115 | #include <sys/queue.h> |
116 | #include <sys/disk.h> | | 116 | #include <sys/disk.h> |
117 | #include <sys/device.h> | | 117 | #include <sys/device.h> |
| @@ -3687,27 +3687,26 @@ rf_sync_component_caches(RF_Raid_t *raid | | | @@ -3687,27 +3687,26 @@ rf_sync_component_caches(RF_Raid_t *raid |
3687 | int e = rf_sync_component_cache(raidPtr, c); | | 3687 | int e = rf_sync_component_cache(raidPtr, c); |
3688 | if (e && !error) | | 3688 | if (e && !error) |
3689 | error = e; | | 3689 | error = e; |
3690 | } | | 3690 | } |
3691 | } | | 3691 | } |
3692 | | | 3692 | |
3693 | for (c = 0; c < raidPtr->numSpare ; c++) { | | 3693 | for (c = 0; c < raidPtr->numSpare ; c++) { |
3694 | int sparecol = raidPtr->numCol + c; | | 3694 | int sparecol = raidPtr->numCol + c; |
3695 | /* Need to ensure that the reconstruct actually completed! */ | | 3695 | /* Need to ensure that the reconstruct actually completed! */ |
3696 | if (raidPtr->Disks[sparecol].status == rf_ds_used_spare) { | | 3696 | if (raidPtr->Disks[sparecol].status == rf_ds_used_spare) { |
3697 | int e = rf_sync_component_cache(raidPtr, sparecol); | | 3697 | int e = rf_sync_component_cache(raidPtr, sparecol); |
3698 | if (e && !error) | | 3698 | if (e && !error) |
3699 | error = e; | | 3699 | error = e; |
3700 | continue; | | | |
3701 | } | | 3700 | } |
3702 | } | | 3701 | } |
3703 | return error; | | 3702 | return error; |
3704 | } | | 3703 | } |
3705 | | | 3704 | |
3706 | /* Fill in info with the current status */ | | 3705 | /* Fill in info with the current status */ |
3707 | void | | 3706 | void |
3708 | rf_check_recon_status_ext(RF_Raid_t *raidPtr, RF_ProgressInfo_t *info) | | 3707 | rf_check_recon_status_ext(RF_Raid_t *raidPtr, RF_ProgressInfo_t *info) |
3709 | { | | 3708 | { |
3710 | | | 3709 | |
3711 | if (raidPtr->status != rf_rs_reconstructing) { | | 3710 | if (raidPtr->status != rf_rs_reconstructing) { |
3712 | info->total = 100; | | 3711 | info->total = 100; |
3713 | info->completed = 100; | | 3712 | info->completed = 100; |