metaslab.c (249195) | metaslab.c (254591) |
---|---|
1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --- 166 unchanged lines hidden (view full) --- 175 int64_t defer_delta, int64_t space_delta, int64_t dspace_delta) 176{ 177 atomic_add_64(&mc->mc_alloc, alloc_delta); 178 atomic_add_64(&mc->mc_deferred, defer_delta); 179 atomic_add_64(&mc->mc_space, space_delta); 180 atomic_add_64(&mc->mc_dspace, dspace_delta); 181} 182 | 1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --- 166 unchanged lines hidden (view full) --- 175 int64_t defer_delta, int64_t space_delta, int64_t dspace_delta) 176{ 177 atomic_add_64(&mc->mc_alloc, alloc_delta); 178 atomic_add_64(&mc->mc_deferred, defer_delta); 179 atomic_add_64(&mc->mc_space, space_delta); 180 atomic_add_64(&mc->mc_dspace, dspace_delta); 181} 182 |
183void 184metaslab_class_minblocksize_update(metaslab_class_t *mc) 185{ 186 metaslab_group_t *mg; 187 vdev_t *vd; 188 uint64_t minashift = UINT64_MAX; 189 190 if ((mg = mc->mc_rotor) == NULL) { 191 mc->mc_minblocksize = SPA_MINBLOCKSIZE; 192 return; 193 } 194 195 do { 196 vd = mg->mg_vd; 197 if (vd->vdev_ashift < minashift) 198 minashift = vd->vdev_ashift; 199 } while ((mg = mg->mg_next) != mc->mc_rotor); 200 201 mc->mc_minblocksize = 1ULL << minashift; 202} 203 |
|
183uint64_t 184metaslab_class_get_alloc(metaslab_class_t *mc) 185{ 186 return (mc->mc_alloc); 187} 188 189uint64_t 190metaslab_class_get_deferred(metaslab_class_t *mc) --- 8 unchanged lines hidden (view full) --- 199} 200 201uint64_t 202metaslab_class_get_dspace(metaslab_class_t *mc) 203{ 204 return (spa_deflate(mc->mc_spa) ? mc->mc_dspace : mc->mc_space); 205} 206 | 204uint64_t 205metaslab_class_get_alloc(metaslab_class_t *mc) 206{ 207 return (mc->mc_alloc); 208} 209 210uint64_t 211metaslab_class_get_deferred(metaslab_class_t *mc) --- 8 unchanged lines hidden (view full) --- 220} 221 222uint64_t 223metaslab_class_get_dspace(metaslab_class_t *mc) 224{ 225 return (spa_deflate(mc->mc_spa) ? mc->mc_dspace : mc->mc_space); 226} 227 |
228uint64_t 229metaslab_class_get_minblocksize(metaslab_class_t *mc) 230{ 231 return (mc->mc_minblocksize); 232} 233 |
|
207/* 208 * ========================================================================== 209 * Metaslab groups 210 * ========================================================================== 211 */ 212static int 213metaslab_compare(const void *x1, const void *x2) 214{ --- 75 unchanged lines hidden (view full) --- 290 } else { 291 mgnext = mgprev->mg_next; 292 mg->mg_prev = mgprev; 293 mg->mg_next = mgnext; 294 mgprev->mg_next = mg; 295 mgnext->mg_prev = mg; 296 } 297 mc->mc_rotor = mg; | 234/* 235 * ========================================================================== 236 * Metaslab groups 237 * ========================================================================== 238 */ 239static int 240metaslab_compare(const void *x1, const void *x2) 241{ --- 75 unchanged lines hidden (view full) --- 317 } else { 318 mgnext = mgprev->mg_next; 319 mg->mg_prev = mgprev; 320 mg->mg_next = mgnext; 321 mgprev->mg_next = mg; 322 mgnext->mg_prev = mg; 323 } 324 mc->mc_rotor = mg; |
325 metaslab_class_minblocksize_update(mc); |
|
298} 299 300void 301metaslab_group_passivate(metaslab_group_t *mg) 302{ 303 metaslab_class_t *mc = mg->mg_class; 304 metaslab_group_t *mgprev, *mgnext; 305 --- 15 unchanged lines hidden (view full) --- 321 } else { 322 mc->mc_rotor = mgnext; 323 mgprev->mg_next = mgnext; 324 mgnext->mg_prev = mgprev; 325 } 326 327 mg->mg_prev = NULL; 328 mg->mg_next = NULL; | 326} 327 328void 329metaslab_group_passivate(metaslab_group_t *mg) 330{ 331 metaslab_class_t *mc = mg->mg_class; 332 metaslab_group_t *mgprev, *mgnext; 333 --- 15 unchanged lines hidden (view full) --- 349 } else { 350 mc->mc_rotor = mgnext; 351 mgprev->mg_next = mgnext; 352 mgnext->mg_prev = mgprev; 353 } 354 355 mg->mg_prev = NULL; 356 mg->mg_next = NULL; |
357 metaslab_class_minblocksize_update(mc); |
|
329} 330 331static void 332metaslab_group_add(metaslab_group_t *mg, metaslab_t *msp) 333{ 334 mutex_enter(&mg->mg_lock); 335 ASSERT(msp->ms_group == NULL); 336 msp->ms_group = mg; --- 1579 unchanged lines hidden --- | 358} 359 360static void 361metaslab_group_add(metaslab_group_t *mg, metaslab_t *msp) 362{ 363 mutex_enter(&mg->mg_lock); 364 ASSERT(msp->ms_group == NULL); 365 msp->ms_group = mg; --- 1579 unchanged lines hidden --- |