mdpreen.c revision d7cd82522afdd890a66c7600b499590ad44e84bd
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * CDDL HEADER START
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * The contents of this file are subject to the terms of the
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * Common Development and Distribution License (the "License").
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * You may not use this file except in compliance with the License.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * or http://www.opensolaris.org/os/licensing.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * See the License for the specific language governing permissions
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * and limitations under the License.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * When distributing Covered Code, include this CDDL HEADER in each
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * If applicable, add the following below this CDDL HEADER, with the
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * fields enclosed by brackets "[]" replaced with your own identifying
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * information: Portions Copyright [yyyy] [name of copyright owner]
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * CDDL HEADER END
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * Use is subject to license terms.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#pragma ident "%Z%%M% %I% %E% SMI"
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy * preenlib interface for SVM.
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy * On startup fsck attempts to check filesystems in parallel. However
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * running mutiple fscks on the same disk at the same time
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * significantly degrades the performance. fsck code avoids such
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * behavior. To analyse such patterns it needs the physical disk
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * instance. preen_build_devs provides that information for
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * filesystems that are on top of metadevices.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define MAX_N2M_ALIAS_LINE (2*FILENAME_MAX + 1)
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * Macros to produce a quoted string containing the value of a
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * preprocessor macro. For example, if SIZE is defined to be 256,
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * VAL2STR(SIZE) is "256". This is used to construct format
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * strings for scanf-family functions below.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedyextern void preen_addunit(void *cookie, char *dname, int (*cf)(),
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedyextern int preen_subdev(char *name, struct dk_cinfo *dkiop, void *dp);
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedyget_major_from_n2m(char *modname, int *major)
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy if ((fp = fopen(NAME_TO_MAJOR, "r")) == NULL) {
status == 0) {
if (found == 0)
return (status);
char *cpdev;
char *setname;
return (setname);
mdnamelist_t *p;
goto out;
goto out;
goto out;
goto out;
goto out;
goto out;
goto out;
int fd;
char *devname;
if (md_did)
goto out;
out:
if (ep_valid != 0) {