@@ -1922,7 +1922,7 @@ dump_bookmark(dsl_pool_t *dp, char *name, boolean_t print_redact,
1922
1922
}
1923
1923
1924
1924
static void
1925
- dump_bookmarks (objset_t * os , const char * osname , int verbosity )
1925
+ dump_bookmarks (objset_t * os , int verbosity )
1926
1926
{
1927
1927
zap_cursor_t zc ;
1928
1928
zap_attribute_t attr ;
@@ -1931,18 +1931,20 @@ dump_bookmarks(objset_t *os, const char *osname, int verbosity)
1931
1931
objset_t * mos = os -> os_spa -> spa_meta_objset ;
1932
1932
if (verbosity < 4 )
1933
1933
return ;
1934
- VERIFY0 ( dsl_pool_hold ( osname , FTAG , & dp ) );
1934
+ dsl_pool_config_enter ( dp , FTAG );
1935
1935
1936
1936
for (zap_cursor_init (& zc , mos , ds -> ds_bookmarks_obj );
1937
1937
zap_cursor_retrieve (& zc , & attr ) == 0 ;
1938
1938
zap_cursor_advance (& zc )) {
1939
+ char osname [ZFS_MAX_DATASET_NAME_LEN ];
1939
1940
char buf [ZFS_MAX_DATASET_NAME_LEN ];
1941
+ dmu_objset_name (os , osname );
1940
1942
VERIFY0 (snprintf (buf , sizeof (buf ), "%s#%s" , osname ,
1941
1943
attr .za_name ));
1942
1944
(void ) dump_bookmark (dp , buf , verbosity >= 5 , verbosity >= 6 );
1943
1945
}
1944
1946
zap_cursor_fini (& zc );
1945
- dsl_pool_rele (dp , FTAG );
1947
+ dsl_pool_config_exit (dp , FTAG );
1946
1948
}
1947
1949
1948
1950
static void
@@ -2057,7 +2059,7 @@ open_objset(const char *path, void *tag, objset_t **osp)
2057
2059
/*
2058
2060
* We can't own an objset if it's redacted. Therefore, we do this
2059
2061
* dance: hold the objset, then acquire a long hold on its dataset, then
2060
- * release the pool.
2062
+ * release the pool (which is held as part of holding the objset) .
2061
2063
*/
2062
2064
err = dmu_objset_hold (path , tag , osp );
2063
2065
if (err != 0 ) {
@@ -2660,7 +2662,7 @@ dump_dir(objset_t *os)
2660
2662
}
2661
2663
2662
2664
if (dmu_objset_ds (os ) != NULL )
2663
- dump_bookmarks (os , osname , verbosity );
2665
+ dump_bookmarks (os , verbosity );
2664
2666
2665
2667
if (verbosity < 2 )
2666
2668
return ;
0 commit comments