Print this page
zpool import speedup
        
*** 1001,1023 ****
   * dmu_objset_{hold,rele}() are convenience routines that also do the pool
   * hold/rele.
   */
  
  int
! dsl_pool_hold(const char *name, void *tag, dsl_pool_t **dp)
  {
          spa_t *spa;
          int error;
  
!         error = spa_open(name, &spa, tag);
          if (error == 0) {
                  *dp = spa_get_dsl(spa);
                  dsl_pool_config_enter(*dp, tag);
          }
          return (error);
  }
  
  void
  dsl_pool_rele(dsl_pool_t *dp, void *tag)
  {
          dsl_pool_config_exit(dp, tag);
          spa_close(dp->dp_spa, tag);
--- 1001,1029 ----
   * dmu_objset_{hold,rele}() are convenience routines that also do the pool
   * hold/rele.
   */
  
  int
! dsl_pool_hold_lock(const char *name, void *tag, dsl_pool_t **dp, int lock)
  {
          spa_t *spa;
          int error;
  
!         error = spa_open_lock(name, &spa, tag, lock);
          if (error == 0) {
                  *dp = spa_get_dsl(spa);
                  dsl_pool_config_enter(*dp, tag);
          }
          return (error);
  }
  
+ int
+ dsl_pool_hold(const char *name, void *tag, dsl_pool_t **dp)
+ {
+         return (dsl_pool_hold_lock(name, tag, dp, 1));
+ }
+ 
  void
  dsl_pool_rele(dsl_pool_t *dp, void *tag)
  {
          dsl_pool_config_exit(dp, tag);
          spa_close(dp->dp_spa, tag);