Lines Matching full:array
91 if ((pVDevice->u.array.dArStamp != 0) && (pVDevice == p)) in check_VDevice_valid()
119 /* The array is disabled */ in get_array_flag()
126 /* array need synchronizing */ in get_array_flag()
127 if(pVDevice->u.array.rf_need_rebuild && !pVDevice->u.array.rf_duplicate_and_create) in get_array_flag()
130 /* array is in rebuilding process */ in get_array_flag()
131 if(pVDevice->u.array.rf_rebuilding) in get_array_flag()
134 /* array is being verified */ in get_array_flag()
135 if(pVDevice->u.array.rf_verifying) in get_array_flag()
138 /* array is being initialized */ in get_array_flag()
139 if(pVDevice->u.array.rf_initializing) in get_array_flag()
143 if(pVDevice->u.array.rf_broken) in get_array_flag()
146 /* array has a active partition */ in get_array_flag()
150 /* a newly created array */ in get_array_flag()
151 if(pVDevice->u.array.rf_newly_created) in get_array_flag()
154 /* array has boot mark set */ in get_array_flag()
159 if(pVDevice->u.array.rf_auto_rebuild) in get_array_flag()
162 for(i = 0; i < pVDevice->u.array.bArnMember; i++) in get_array_flag()
164 PVDevice pMember = pVDevice->u.array.pMember[i]; in get_array_flag()
168 /* array need synchronizing */ in get_array_flag()
169 if(pMember->u.array.rf_need_rebuild && in get_array_flag()
170 !pMember->u.array.rf_duplicate_and_create) in get_array_flag()
173 /* array is in rebuilding process */ in get_array_flag()
174 if(pMember->u.array.rf_rebuilding) in get_array_flag()
177 /* array is being verified */ in get_array_flag()
178 if(pMember->u.array.rf_verifying) in get_array_flag()
181 /* array is being initialized */ in get_array_flag()
182 if(pMember->u.array.rf_initializing) in get_array_flag()
186 if(pMember->u.array.rf_broken) in get_array_flag()
189 /* a newly created array */ in get_array_flag()
190 if(pMember->u.array.rf_newly_created) in get_array_flag()
194 if(pMember->u.array.rf_auto_rebuild) in get_array_flag()
204 DWORD result = ((ULONG)(pVDevice->u.array.RebuildSectors>>11)*1000 / in calc_rebuild_progress()
205 (ULONG)(pVDevice->VDeviceCapacity>>11) * (pVDevice->u.array.bArnMember-1)) * 10; in calc_rebuild_progress()
207 for(i = 0; i < pVDevice->u.array.bArnMember; i++) in calc_rebuild_progress()
209 PVDevice pMember = pVDevice->u.array.pMember[i]; in calc_rebuild_progress()
214 if (pMember->u.array.rf_rebuilding || in calc_rebuild_progress()
215 pMember->u.array.rf_verifying || in calc_rebuild_progress()
216 pMember->u.array.rf_initializing) in calc_rebuild_progress()
218 DWORD percent = ((ULONG)(pMember->u.array.RebuildSectors>>11)*1000 / in calc_rebuild_progress()
219 (ULONG)(pMember->VDeviceCapacity>>11) * (pMember->u.array.bArnMember-1)) * 10; in calc_rebuild_progress()
233 memcpy(pArrayInfo->Name, pVDevice->u.array.ArrayName, MAX_ARRAY_NAME); in get_array_info()
235 pArrayInfo->BlockSizeShift = pVDevice->u.array.bArBlockSizeShift; in get_array_info()
236 pArrayInfo->RebuiltSectors = pVDevice->u.array.RebuildSectors; in get_array_info()
242 for(i = 0; i < pVDevice->u.array.bArnMember; i++) in get_array_info()
243 if(pVDevice->u.array.pMember[i] != NULL) in get_array_info()
244 pArrayInfo->Members[pArrayInfo->nDisk++] = VDEV_TO_ID(pVDevice->u.array.pMember[i]); in get_array_info()
254 memcpy(pArrayInfo->Name, pVDevice->u.array.ArrayName, MAX_ARRAYNAME_LEN); in get_array_info_v2()
256 pArrayInfo->BlockSizeShift = pVDevice->u.array.bArBlockSizeShift; in get_array_info_v2()
257 pArrayInfo->RebuiltSectors.lo32 = pVDevice->u.array.RebuildSectors; in get_array_info_v2()
258 pArrayInfo->RebuiltSectors.hi32 = sizeof(LBA_T)>4? (pVDevice->u.array.RebuildSectors>>32) : 0; in get_array_info_v2()
264 for(i = 0; i < pVDevice->u.array.bArnMember; i++) in get_array_info_v2()
265 if(pVDevice->u.array.pMember[i] != NULL) in get_array_info_v2()
266 pArrayInfo->Members[pArrayInfo->nDisk++] = VDEV_TO_ID(pVDevice->u.array.pMember[i]); in get_array_info_v2()
522 get_array_info(pVDevice, &pInfo->u.array); in hpt_get_device_info()
547 get_array_info_v2(pVDevice, &pInfo->u.array); in hpt_get_device_info_v2()
608 pArray->u.array.rf_need_rebuild = 1; in hpt_create_array_v2()
616 pArray->u.array.bArnMember = pParam->nDisk; in hpt_create_array_v2()
617 pArray->u.array.bArRealnMember = pParam->nDisk; in hpt_create_array_v2()
618 pArray->u.array.bArBlockSizeShift = pParam->BlockSizeShift; in hpt_create_array_v2()
619 pArray->u.array.bStripeWitch = (1 << pParam->BlockSizeShift); in hpt_create_array_v2()
620 pArray->u.array.dArStamp = Stamp; in hpt_create_array_v2()
622 pArray->u.array.rf_need_sync = 1; in hpt_create_array_v2()
623 pArray->u.array.rf_newly_created = 1; in hpt_create_array_v2()
628 pArray->u.array.rf_newly_created = 0; /* R1 shall still be accessible */ in hpt_create_array_v2()
629 pArray->u.array.rf_need_rebuild = 1; in hpt_create_array_v2()
630 pArray->u.array.rf_auto_rebuild = 1; in hpt_create_array_v2()
631 pArray->u.array.rf_duplicate_and_create = 1; in hpt_create_array_v2()
638 pArray->u.array.RebuildSectors = pArray->u.array.rf_need_rebuild? 0 : MAX_LBA_T; in hpt_create_array_v2()
640 memcpy(pArray->u.array.ArrayName, pParam->ArrayName, MAX_ARRAY_NAME); in hpt_create_array_v2()
644 pArray->u.array.pMember[i] = ID_TO_VDEV(pParam->Members[i]); in hpt_create_array_v2()
645 pArray->u.array.pMember[i]->bSerialNumber = i; in hpt_create_array_v2()
646 pArray->u.array.pMember[i]->pParent = pArray; in hpt_create_array_v2()
652 UnregisterVDevice(pArray->u.array.pMember[i]); in hpt_create_array_v2()
655 pArray->u.array.pMember[i]->vf_cache_disk = 1; in hpt_create_array_v2()
665 pChild->u.array.bArnMember = 2; in hpt_create_array_v2()
666 pChild->u.array.bArRealnMember = 2; in hpt_create_array_v2()
667 pChild->u.array.bArBlockSizeShift = pParam->BlockSizeShift; in hpt_create_array_v2()
668 pChild->u.array.bStripeWitch = (1 << pParam->BlockSizeShift); in hpt_create_array_v2()
669 pChild->u.array.dArStamp = Stamp; in hpt_create_array_v2()
671 pChild->u.array.rf_need_sync = 1; in hpt_create_array_v2()
672 pChild->u.array.rf_newly_created = 1; in hpt_create_array_v2()
674 pChild->u.array.RebuildSectors = MAX_LBA_T; in hpt_create_array_v2()
676 memcpy(pChild->u.array.ArrayName, pParam->ArrayName, MAX_ARRAY_NAME); in hpt_create_array_v2()
680 pChild->u.array.pMember[j] = ID_TO_VDEV(pParam->Members[i*2 + j]); in hpt_create_array_v2()
681 pChild->u.array.pMember[j]->bSerialNumber = j; in hpt_create_array_v2()
682 pChild->u.array.pMember[j]->pParent = pChild; in hpt_create_array_v2()
683 pChild->u.array.pMember[j]->pfnDeviceFailed = pfnDeviceFailed[pChild->VDeviceType]; in hpt_create_array_v2()
684 UnregisterVDevice(pChild->u.array.pMember[j]); in hpt_create_array_v2()
687 pArray->u.array.pMember[i] = pChild; in hpt_create_array_v2()
692 pChild->VDeviceCapacity = MIN(pChild->u.array.pMember[0]->VDeviceCapacity, in hpt_create_array_v2()
693 pChild->u.array.pMember[1]->VDeviceCapacity); in hpt_create_array_v2()
701 pArray->u.array.bArnMember = pParam->nDisk / 2; in hpt_create_array_v2()
702 pArray->u.array.bArRealnMember = pParam->nDisk / 2; in hpt_create_array_v2()
703 pArray->u.array.bArBlockSizeShift = pParam->BlockSizeShift; in hpt_create_array_v2()
704 pArray->u.array.bStripeWitch = (1 << pParam->BlockSizeShift); in hpt_create_array_v2()
705 pArray->u.array.dArStamp = Stamp; in hpt_create_array_v2()
707 pArray->u.array.rf_need_sync = 1; in hpt_create_array_v2()
708 pArray->u.array.rf_newly_created = 1; in hpt_create_array_v2()
710 memcpy(pArray->u.array.ArrayName, pParam->ArrayName, MAX_ARRAY_NAME); in hpt_create_array_v2()
718 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_create_array_v2()
719 pArray->u.array.pMember[i]->pfnDeviceFailed = pfnDeviceFailed[pArray->VDeviceType]; in hpt_create_array_v2()
724 pArray->vf_bootmark = pArray->u.array.pMember[0]->vf_bootmark; in hpt_create_array_v2()
725 pArray->vf_bootable = pArray->u.array.pMember[0]->vf_bootable; in hpt_create_array_v2()
726 pArray->u.array.pMember[0]->vf_bootable = 0; in hpt_create_array_v2()
727 pArray->u.array.pMember[0]->vf_bootmark = 0; in hpt_create_array_v2()
731 pArray->u.array.rf_duplicate_and_created = 1; in hpt_create_array_v2()
752 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_create_array_v2()
753 if(pArray->u.array.pMember[i]->VDeviceCapacity < capacity) in hpt_create_array_v2()
754 capacity = pArray->u.array.pMember[i]->VDeviceCapacity; in hpt_create_array_v2()
758 capacity &= ~(pArray->u.array.bStripeWitch - 1); in hpt_create_array_v2()
760 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_create_array_v2()
761 if (mIsArray(pArray->u.array.pMember[i])) in hpt_create_array_v2()
762 pArray->u.array.pMember[i]->VDeviceCapacity = capacity; in hpt_create_array_v2()
763 pArray->VDeviceCapacity = capacity * pArray->u.array.bArnMember; in hpt_create_array_v2()
767 pArray->VDeviceCapacity = MIN(pArray->u.array.pMember[0]->VDeviceCapacity, in hpt_create_array_v2()
768 pArray->u.array.pMember[1]->VDeviceCapacity); in hpt_create_array_v2()
772 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_create_array_v2()
773 pArray->VDeviceCapacity += pArray->u.array.pMember[i]->VDeviceCapacity in hpt_create_array_v2()
781 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_create_array_v2()
782 if(pArray->u.array.pMember[i]->VDeviceCapacity < capacity) in hpt_create_array_v2()
783 capacity = pArray->u.array.pMember[i]->VDeviceCapacity; in hpt_create_array_v2()
784 pArray->VDeviceCapacity = rounddown2(capacity, pArray->u.array.bStripeWitch) * in hpt_create_array_v2()
785 (pArray->u.array.bArnMember - 1); in hpt_create_array_v2()
796 if (!pArray->u.array.rf_duplicate_and_created) in hpt_create_array_v2()
801 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_create_array_v2()
803 pChild = pArray->u.array.pMember[i]; in hpt_create_array_v2()
842 pArray2 = pArray1->u.array.pMember[1]; in old_add_disk_to_raid01()
847 pArray2->u.array.dArStamp = GetStamp(); in old_add_disk_to_raid01()
849 pArray2->u.array.rf_broken = 1; in old_add_disk_to_raid01()
850 pArray2->u.array.bArBlockSizeShift = pArray1->u.array.bArBlockSizeShift; in old_add_disk_to_raid01()
851 pArray2->u.array.bStripeWitch = (1 << pArray2->u.array.bArBlockSizeShift); in old_add_disk_to_raid01()
852 pArray2->u.array.bArnMember = 2; in old_add_disk_to_raid01()
856 memcpy(pArray2->u.array.ArrayName, pArray1->u.array.ArrayName, MAX_ARRAY_NAME); in old_add_disk_to_raid01()
859 pArray1->u.array.pMember[1] = pArray2; in old_add_disk_to_raid01()
860 pArray1->u.array.bArRealnMember++; in old_add_disk_to_raid01()
863 for(i = 0; i < pArray2->u.array.bArnMember; i++) in old_add_disk_to_raid01()
864 if((pArray2->u.array.pMember[i] == NULL) || !pArray2->u.array.pMember[i]->vf_online) in old_add_disk_to_raid01()
866 if(pArray2->u.array.pMember[i] != NULL) in old_add_disk_to_raid01()
867 pArray2->u.array.pMember[i]->pParent = NULL; in old_add_disk_to_raid01()
868 pArray2->u.array.pMember[i] = pDisk; in old_add_disk_to_raid01()
883 pArray2->u.array.bArRealnMember++; in old_add_disk_to_raid01()
884 if(pArray2->u.array.bArnMember == pArray2->u.array.bArRealnMember){ in old_add_disk_to_raid01()
886 pArray2->u.array.rf_broken = 0; in old_add_disk_to_raid01()
889 if(pArray1->u.array.pMember[0]->vf_online && pArray1->u.array.pMember[1]->vf_online){ in old_add_disk_to_raid01()
890 pArray1->u.array.bArRealnMember = pArray1->u.array.bArnMember; in old_add_disk_to_raid01()
891 pArray1->u.array.rf_broken = 0; in old_add_disk_to_raid01()
892 pArray1->u.array.rf_need_rebuild = 1; in old_add_disk_to_raid01()
893 pArray1->u.array.rf_auto_rebuild = 1; in old_add_disk_to_raid01()
896 pArray1->u.array.RebuildSectors = 0; in old_add_disk_to_raid01()
897 pArray1->u.array.dArStamp = GetStamp(); in old_add_disk_to_raid01()
913 if(!pArray->u.array.rf_broken) return -1; in hpt_add_disk_to_array()
923 pArray->u.array.pMember[0] && in hpt_add_disk_to_array()
924 mIsArray(pArray->u.array.pMember[0])) in hpt_add_disk_to_array()
933 Capacity = pArray->VDeviceCapacity / (pArray->u.array.bArnMember - 1); in hpt_add_disk_to_array()
943 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_add_disk_to_array()
944 if((pArray->u.array.pMember[i] == 0) || !pArray->u.array.pMember[i]->vf_online) in hpt_add_disk_to_array()
946 if(pArray->u.array.pMember[i] != NULL) in hpt_add_disk_to_array()
947 pArray->u.array.pMember[i]->pParent = NULL; in hpt_add_disk_to_array()
948 pArray->u.array.pMember[i] = pDisk; in hpt_add_disk_to_array()
965 pArray->u.array.bArRealnMember++; in hpt_add_disk_to_array()
966 if(pArray->u.array.bArnMember == pArray->u.array.bArRealnMember) in hpt_add_disk_to_array()
968 pArray->u.array.rf_need_rebuild = 1; in hpt_add_disk_to_array()
969 pArray->u.array.RebuildSectors = 0; in hpt_add_disk_to_array()
970 pArray->u.array.rf_auto_rebuild = 1; in hpt_add_disk_to_array()
971 pArray->u.array.rf_broken = 0; in hpt_add_disk_to_array()
973 pArray->u.array.RebuildSectors = 0; in hpt_add_disk_to_array()
975 /* sync the whole array */ in hpt_add_disk_to_array()
977 pArray->u.array.dArStamp = GetStamp(); in hpt_add_disk_to_array()
1031 memset(pVDevice->u.array.ArrayName, 0, MAX_ARRAY_NAME); in hpt_set_array_info()
1032 memcpy(pVDevice->u.array.ArrayName, pInfo->Name, sizeof(pInfo->Name)); in hpt_set_array_info()
1033 pVDevice->u.array.rf_need_sync = 1; in hpt_set_array_info()
1037 memcpy(pVDevice->u.array.Description, pInfo->Description, sizeof(pInfo->Description)); in hpt_set_array_info()
1038 pVDevice->u.array.rf_need_sync = 1; in hpt_set_array_info()
1041 if (pVDevice->u.array.rf_need_sync) in hpt_set_array_info()