usr/src/uts/common/fs/zfs/zap_micro.c
changeset 4831 41ec732c6d9f
parent 2856 6f4d5ee1906a
child 5331 3047ad28a67b
equal deleted inserted replaced
4830:956da15b6610 4831:41ec732c6d9f
    17  * information: Portions Copyright [yyyy] [name of copyright owner]
    17  * information: Portions Copyright [yyyy] [name of copyright owner]
    18  *
    18  *
    19  * CDDL HEADER END
    19  * CDDL HEADER END
    20  */
    20  */
    21 /*
    21 /*
    22  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
    22  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
    23  * Use is subject to license terms.
    23  * Use is subject to license terms.
    24  */
    24  */
    25 
    25 
    26 #pragma ident	"%Z%%M%	%I%	%E% SMI"
    26 #pragma ident	"%Z%%M%	%I%	%E% SMI"
    27 
    27 
   206 	 * held.
   206 	 * held.
   207 	 */
   207 	 */
   208 	winner = dmu_buf_set_user(db, zap, &zap->zap_m.zap_phys, zap_evict);
   208 	winner = dmu_buf_set_user(db, zap, &zap->zap_m.zap_phys, zap_evict);
   209 
   209 
   210 	if (winner != NULL) {
   210 	if (winner != NULL) {
       
   211 		rw_exit(&zap->zap_rwlock);
       
   212 		rw_destroy(&zap->zap_rwlock);
       
   213 		if (!zap->zap_ismicro)
       
   214 			mutex_destroy(&zap->zap_f.zap_num_entries_mtx);
   211 		kmem_free(zap, sizeof (zap_t));
   215 		kmem_free(zap, sizeof (zap_t));
   212 		return (winner);
   216 		return (winner);
   213 	}
   217 	}
   214 
   218 
   215 	if (zap->zap_ismicro) {
   219 	if (zap->zap_ismicro) {
   463 
   467 
   464 	rw_destroy(&zap->zap_rwlock);
   468 	rw_destroy(&zap->zap_rwlock);
   465 
   469 
   466 	if (zap->zap_ismicro)
   470 	if (zap->zap_ismicro)
   467 		mze_destroy(zap);
   471 		mze_destroy(zap);
       
   472 	else
       
   473 		mutex_destroy(&zap->zap_f.zap_num_entries_mtx);
   468 
   474 
   469 	kmem_free(zap, sizeof (zap_t));
   475 	kmem_free(zap, sizeof (zap_t));
   470 }
   476 }
   471 
   477 
   472 int
   478 int