Print this page
5056 ZFS deadlock on db_mtx and dn_holds
Reviewed by: Will Andrews <willa@spectralogic.com>
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Approved by: Dan McDonald <danmcd@omniti.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/sys/sa.h
          +++ new/usr/src/uts/common/fs/zfs/sys/sa.h
↓ open down ↓ 125 lines elided ↑ open up ↑
 126  126      uint32_t buflen, dmu_tx_t *);
 127  127  int sa_remove(sa_handle_t *, sa_attr_type_t, dmu_tx_t *);
 128  128  int sa_bulk_lookup(sa_handle_t *, sa_bulk_attr_t *, int count);
 129  129  int sa_bulk_lookup_locked(sa_handle_t *, sa_bulk_attr_t *, int count);
 130  130  int sa_bulk_update(sa_handle_t *, sa_bulk_attr_t *, int count, dmu_tx_t *);
 131  131  int sa_size(sa_handle_t *, sa_attr_type_t, int *);
 132  132  int sa_update_from_cb(sa_handle_t *, sa_attr_type_t,
 133  133      uint32_t buflen, sa_data_locator_t *, void *userdata, dmu_tx_t *);
 134  134  void sa_object_info(sa_handle_t *, dmu_object_info_t *);
 135  135  void sa_object_size(sa_handle_t *, uint32_t *, u_longlong_t *);
 136      -void sa_update_user(sa_handle_t *, sa_handle_t *);
 137  136  void *sa_get_userdata(sa_handle_t *);
 138  137  void sa_set_userp(sa_handle_t *, void *);
 139  138  dmu_buf_t *sa_get_db(sa_handle_t *);
 140  139  uint64_t sa_handle_object(sa_handle_t *);
 141  140  boolean_t sa_attr_would_spill(sa_handle_t *, sa_attr_type_t, int size);
 142  141  void sa_register_update_callback(objset_t *, sa_update_cb_t *);
 143  142  int sa_setup(objset_t *, uint64_t, sa_attr_reg_t *, int, sa_attr_type_t **);
 144  143  void sa_tear_down(objset_t *);
 145  144  int sa_replace_all_by_template(sa_handle_t *, sa_bulk_attr_t *,
 146  145      int, dmu_tx_t *);
↓ open down ↓ 24 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX