Deleted Added
full compact
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 ---