dsl_pool.c (310511) | dsl_pool.c (310515) |
---|---|
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 --- 6 unchanged lines hidden (view full) --- 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21/* 22 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. | 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 --- 6 unchanged lines hidden (view full) --- 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21/* 22 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. |
23 * Copyright (c) 2011, 2015 by Delphix. All rights reserved. | 23 * Copyright (c) 2011, 2016 by Delphix. All rights reserved. |
24 * Copyright (c) 2013 Steven Hartland. All rights reserved. 25 * Copyright (c) 2014 Spectra Logic Corporation, All rights reserved. 26 * Copyright (c) 2014 Integros [integros.com] 27 */ 28 29#include <sys/dsl_pool.h> 30#include <sys/dsl_dataset.h> 31#include <sys/dsl_prop.h> --- 644 unchanged lines hidden (view full) --- 676 DTRACE_PROBE2(dsl_pool_sync__done, dsl_pool_t *dp, dp, uint64_t, txg); 677} 678 679void 680dsl_pool_sync_done(dsl_pool_t *dp, uint64_t txg) 681{ 682 zilog_t *zilog; 683 | 24 * Copyright (c) 2013 Steven Hartland. All rights reserved. 25 * Copyright (c) 2014 Spectra Logic Corporation, All rights reserved. 26 * Copyright (c) 2014 Integros [integros.com] 27 */ 28 29#include <sys/dsl_pool.h> 30#include <sys/dsl_dataset.h> 31#include <sys/dsl_prop.h> --- 644 unchanged lines hidden (view full) --- 676 DTRACE_PROBE2(dsl_pool_sync__done, dsl_pool_t *dp, dp, uint64_t, txg); 677} 678 679void 680dsl_pool_sync_done(dsl_pool_t *dp, uint64_t txg) 681{ 682 zilog_t *zilog; 683 |
684 while (zilog = txg_list_remove(&dp->dp_dirty_zilogs, txg)) { | 684 while (zilog = txg_list_head(&dp->dp_dirty_zilogs, txg)) { |
685 dsl_dataset_t *ds = dmu_objset_ds(zilog->zl_os); | 685 dsl_dataset_t *ds = dmu_objset_ds(zilog->zl_os); |
686 /* 687 * We don't remove the zilog from the dp_dirty_zilogs 688 * list until after we've cleaned it. This ensures that 689 * callers of zilog_is_dirty() receive an accurate 690 * answer when they are racing with the spa sync thread. 691 */ |
|
686 zil_clean(zilog, txg); | 692 zil_clean(zilog, txg); |
693 (void) txg_list_remove_this(&dp->dp_dirty_zilogs, zilog, txg); |
|
687 ASSERT(!dmu_objset_is_dirty(zilog->zl_os, txg)); 688 dmu_buf_rele(ds->ds_dbuf, zilog); 689 } 690 ASSERT(!dmu_objset_is_dirty(dp->dp_meta_objset, txg)); 691} 692 693/* 694 * TRUE if the current thread is the tx_sync_thread or if we --- 470 unchanged lines hidden --- | 694 ASSERT(!dmu_objset_is_dirty(zilog->zl_os, txg)); 695 dmu_buf_rele(ds->ds_dbuf, zilog); 696 } 697 ASSERT(!dmu_objset_is_dirty(dp->dp_meta_objset, txg)); 698} 699 700/* 701 * TRUE if the current thread is the tx_sync_thread or if we --- 470 unchanged lines hidden --- |