Home | History | Annotate | Download | only in raidframe

Lines Matching defs:disks

59  * rf_disks.c -- code to perform operations on the actual disks
97 * initialize the disks comprising the array
99 * We want the spare disks to have regular row,col numbers so that we can
101 * throughout that the array contains numRow by numCol _non-spare_ disks, so
113 RF_RaidDisk_t *disks;
126 disks = raidPtr->Disks;
132 &disks[c], c);
137 if (disks[c].status == rf_ds_optimal) {
144 disks[c].status = rf_ds_failed;
148 if (disks[c].status != rf_ds_optimal) {
151 if (disks[c].numBlocks < min_numblks)
152 min_numblks = disks[c].numBlocks;
154 c, disks[c].devname,
155 disks[c].numBlocks,
156 disks[c].blockSize,
157 (long int) disks[c].numBlocks *
158 disks[c].blockSize / 1024 / 1024);
167 /* all disks must be the same size & have the same block size, bs must
172 if (disks[c].status == rf_ds_optimal) {
173 bs = disks[c].blockSize;
179 RF_ERRORMSG("RAIDFRAME: Did not find any live disks in the array.\n");
187 RF_ERRORMSG1("Error: block size on disks (%d) must be a power of 2\n", bs);
204 if (disks[c].status == rf_ds_optimal) {
205 if (disks[c].blockSize != bs) {
210 if (disks[c].numBlocks != min_numblks) {
213 disks[c].numBlocks = min_numblks;
233 * set up the data structures describing the spare disks in the array
243 RF_RaidDisk_t *disks;
251 disks = &raidPtr->Disks[raidPtr->numCol];
254 &disks[i], raidPtr->numCol + i);
257 if (disks[i].status != rf_ds_optimal) {
261 disks[i].status = rf_ds_spare; /* change status to
264 disks[i].devname,
265 disks[i].numBlocks, disks[i].blockSize,
266 (long int) disks[i].numBlocks *
267 disks[i].blockSize / 1024 / 1024);
272 /* check sizes and block sizes on spare disks */
275 if (disks[i].blockSize != bs) {
276 RF_ERRORMSG3("Block size of %d on spare disk %s is not the same as on other disks (%d)\n", disks[i].blockSize, disks[i].devname, bs);
280 if (disks[i].numBlocks < raidPtr->sectorsPerDisk) {
282 disks[i].devname, disks[i].blockSize,
287 if (disks[i].numBlocks > raidPtr->sectorsPerDisk) {
289 disks[i].devname,
291 disks[i].numBlocks);
293 disks[i].numBlocks = raidPtr->sectorsPerDisk;
326 raidPtr->Disks = RF_MallocAndAdd(
327 entries * sizeof(*raidPtr->Disks), raidPtr->cleanupList);
328 if (raidPtr->Disks == NULL) {
362 RF_RaidDisk_t *disks;
381 disks = raidPtr->Disks;
407 diskPtr = &disks[c];
490 * only a fraction of the disks should
519 disks[c].status = rf_ds_failed;
529 disks[c].status = rf_ds_failed;
530 snprintf(disks[c].devname, sizeof(disks[c].devname),
648 * disks should be used this is just for debug: it speeds up
720 if (again && raidPtr->Disks[hosed_column].status == rf_ds_failed)
723 raidPtr->Disks[hosed_column].status = rf_ds_failed;
784 if (raidPtr->Disks[c].status != rf_ds_optimal)
841 if (raidPtr->Disks[c].status != rf_ds_optimal)
890 if (raidPtr->Disks[c].status != rf_ds_optimal)
944 if (raidPtr->Disks[c].status != rf_ds_optimal) {
990 RF_RaidDisk_t *disks;
1010 disks = &raidPtr->Disks[raidPtr->numCol];
1015 &disks[spare_number],
1020 if (disks[spare_number].status != rf_ds_optimal) {
1027 disks[spare_number].status = rf_ds_spare;
1030 disks[spare_number].devname,
1031 disks[spare_number].numBlocks,
1032 disks[spare_number].blockSize,
1033 (long int) disks[spare_number].numBlocks *
1034 disks[spare_number].blockSize / 1024 / 1024);
1040 if (disks[spare_number].blockSize != bs) {
1041 RF_ERRORMSG3("Block size of %d on spare disk %s is not the same as on other disks (%d)\n", disks[spare_number].blockSize, disks[spare_number].devname, bs);
1046 if (disks[spare_number].numBlocks < raidPtr->sectorsPerDisk) {
1048 disks[spare_number].devname,
1049 disks[spare_number].blockSize,
1055 if (disks[spare_number].numBlocks >
1058 disks[spare_number].devname,
1060 disks[spare_number].numBlocks);
1062 disks[spare_number].numBlocks = raidPtr->sectorsPerDisk;
1079 raidPtr->Disks[raidPtr->numCol +
1091 &disks[spare_number]);
1130 disk = &raidPtr->Disks[raidPtr->numCol + spare_number];
1198 disk = &raidPtr->Disks[col];
1272 snprintf(tmpdevname, sizeof(tmpdevname), "%s", raidPtr->Disks[a].devname);
1273 snprintf(raidPtr->Disks[a].devname, sizeof(raidPtr->Disks[a].devname), "%s", raidPtr->Disks[b].devname);
1274 snprintf(raidPtr->Disks[b].devname, sizeof(raidPtr->Disks[b].devname), "%s", tmpdevname);
1287 tmp_dev = raidPtr->Disks[a].dev;
1288 raidPtr->Disks[a].dev = raidPtr->Disks[b].dev;
1289 raidPtr->Disks[b].dev = tmp_dev;
1297 tmp_status = raidPtr->Disks[a].status;
1298 raidPtr->Disks[a].status = raidPtr->Disks[b].status;
1299 raidPtr->Disks[b].status = tmp_status;