usr/src/uts/common/fs/zfs/sys/metaslab.h
changeset 9480 fcff33da767f
parent 7754 b80e4842ad54
child 10594 986cb68d2347
equal deleted inserted replaced
9479:ec0be6b2b1e3 9480:fcff33da767f
    17  * information: Portions Copyright [yyyy] [name of copyright owner]
    17  * information: Portions Copyright [yyyy] [name of copyright owner]
    18  *
    18  *
    19  * CDDL HEADER END
    19  * CDDL HEADER END
    20  */
    20  */
    21 /*
    21 /*
    22  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
    22  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
    23  * Use is subject to license terms.
    23  * Use is subject to license terms.
    24  */
    24  */
    25 
    25 
    26 #ifndef _SYS_METASLAB_H
    26 #ifndef _SYS_METASLAB_H
    27 #define	_SYS_METASLAB_H
    27 #define	_SYS_METASLAB_H
    37 #endif
    37 #endif
    38 
    38 
    39 typedef struct metaslab_class metaslab_class_t;
    39 typedef struct metaslab_class metaslab_class_t;
    40 typedef struct metaslab_group metaslab_group_t;
    40 typedef struct metaslab_group metaslab_group_t;
    41 
    41 
       
    42 extern space_map_ops_t *zfs_metaslab_ops;
       
    43 
    42 extern metaslab_t *metaslab_init(metaslab_group_t *mg, space_map_obj_t *smo,
    44 extern metaslab_t *metaslab_init(metaslab_group_t *mg, space_map_obj_t *smo,
    43     uint64_t start, uint64_t size, uint64_t txg);
    45     uint64_t start, uint64_t size, uint64_t txg);
    44 extern void metaslab_fini(metaslab_t *msp);
    46 extern void metaslab_fini(metaslab_t *msp);
    45 extern void metaslab_sync(metaslab_t *msp, uint64_t txg);
    47 extern void metaslab_sync(metaslab_t *msp, uint64_t txg);
    46 extern void metaslab_sync_done(metaslab_t *msp, uint64_t txg);
    48 extern void metaslab_sync_done(metaslab_t *msp, uint64_t txg);
    53     blkptr_t *bp, int ncopies, uint64_t txg, blkptr_t *hintbp, int flags);
    55     blkptr_t *bp, int ncopies, uint64_t txg, blkptr_t *hintbp, int flags);
    54 extern void metaslab_free(spa_t *spa, const blkptr_t *bp, uint64_t txg,
    56 extern void metaslab_free(spa_t *spa, const blkptr_t *bp, uint64_t txg,
    55     boolean_t now);
    57     boolean_t now);
    56 extern int metaslab_claim(spa_t *spa, const blkptr_t *bp, uint64_t txg);
    58 extern int metaslab_claim(spa_t *spa, const blkptr_t *bp, uint64_t txg);
    57 
    59 
    58 extern metaslab_class_t *metaslab_class_create(void);
    60 extern metaslab_class_t *metaslab_class_create(space_map_ops_t *ops);
    59 extern void metaslab_class_destroy(metaslab_class_t *mc);
    61 extern void metaslab_class_destroy(metaslab_class_t *mc);
    60 extern void metaslab_class_add(metaslab_class_t *mc, metaslab_group_t *mg);
    62 extern void metaslab_class_add(metaslab_class_t *mc, metaslab_group_t *mg);
    61 extern void metaslab_class_remove(metaslab_class_t *mc, metaslab_group_t *mg);
    63 extern void metaslab_class_remove(metaslab_class_t *mc, metaslab_group_t *mg);
    62 
    64 
    63 extern metaslab_group_t *metaslab_group_create(metaslab_class_t *mc,
    65 extern metaslab_group_t *metaslab_group_create(metaslab_class_t *mc,