mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-14 10:09:48 +00:00
Finally implement read policies. The previous "implementation" didn't
work because it referred to plexes which were almost invariably when referred to. Instead, deprecate the "prefer" keyword for volumes (though it's still there for the moment) and add a keyword "preferred" to the plex definition. The relationship is like this: Old: vol foo ... prefer foo.p3 New: plex foo.p3 volume foo preferred printconfig: Print out the "preferred" keyword for plexes where appropriate. Still print out "prefer" for volumes. The kernel module continues to accept this version, but it's probably not going to live much longer.
This commit is contained in:
parent
f508d26091
commit
48f14420c5
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=114690
@ -1144,13 +1144,14 @@ printconfig(FILE * of, char *comment)
|
||||
for (i = 0; i < vinum_conf.volumes_allocated; i++) {
|
||||
get_volume_info(&vol, i);
|
||||
if (vol.state != volume_unallocated) {
|
||||
if (vol.preferred_plex >= 0) /* preferences, */
|
||||
if (vol.preferred_plex >= 0) { /* preferences, */
|
||||
get_plex_info(&plex, vol.plex[vol.preferred_plex]);
|
||||
fprintf(of,
|
||||
"%svolume %s readpol prefer %s\n",
|
||||
comment,
|
||||
vol.name,
|
||||
vinum_conf.plex[vol.preferred_plex].name);
|
||||
else /* default round-robin */
|
||||
plex.name);
|
||||
} else /* default round-robin */
|
||||
fprintf(of, "%svolume %s\n", comment, vol.name);
|
||||
}
|
||||
}
|
||||
@ -1168,6 +1169,9 @@ printconfig(FILE * of, char *comment)
|
||||
if (plex.volno >= 0) { /* we have a volume */
|
||||
get_volume_info(&vol, plex.volno);
|
||||
fprintf(of, "vol %s ", vol.name);
|
||||
if ((vol.preferred_plex >= 0) /* has a preferred plex */
|
||||
&&vol.plex[vol.preferred_plex] == i) /* and it's us */
|
||||
fprintf(of, "preferred ");
|
||||
} else
|
||||
fprintf(of, "detached ");
|
||||
fprintf(of, "\n");
|
||||
|
Loading…
Reference in New Issue
Block a user