Data Structures |
struct | sa_attr_reg |
| Attribute to register support for. More...
|
struct | sa_bulk_attr |
| array of attributes to store. More...
|
Defines |
#define | SA_ADD_BULK_ATTR(b, idx, attr, func, data, len) |
| special macro for adding entries for bulk attr support
- bulk - sa_bulk_attr_t
- count - integer that will be incremented during each add
- attr - attribute to manipulate
- func - function for accessing data.
|
Typedefs |
typedef enum sa_bswap_type | sa_bswap_type_t |
| Currently available byteswap functions.
|
typedef uint16_t | sa_attr_type_t |
typedef struct sa_attr_reg | sa_attr_reg_t |
| Attribute to register support for.
|
typedef void( | sa_data_locator_t )(void **, uint32_t *, uint32_t, boolean_t, void *userptr) |
typedef struct sa_bulk_attr | sa_bulk_attr_t |
| array of attributes to store.
|
typedef struct sa_os | sa_os_t |
typedef enum sa_handle_type | sa_handle_type_t |
typedef void * | sa_lookup_tab_t |
typedef struct sa_handle | sa_handle_t |
typedef void( | sa_update_cb_t )(sa_handle_t *, dmu_tx_t *tx) |
Enumerations |
enum | sa_bswap_type {
SA_UINT64_ARRAY,
SA_UINT32_ARRAY,
SA_UINT16_ARRAY,
SA_UINT8_ARRAY,
SA_ACL
} |
| Currently available byteswap functions.
More...
|
enum | sa_handle_type { SA_HDL_SHARED,
SA_HDL_PRIVATE
} |
Functions |
int | sa_handle_get (objset_t *, uint64_t, void *userp, sa_handle_type_t, sa_handle_t **) |
int | sa_handle_get_from_db (objset_t *, dmu_buf_t *, void *userp, sa_handle_type_t, sa_handle_t **) |
void | sa_handle_destroy (sa_handle_t *) |
int | sa_buf_hold (objset_t *, uint64_t, void *, dmu_buf_t **) |
void | sa_buf_rele (dmu_buf_t *, void *) |
int | sa_lookup (sa_handle_t *, sa_attr_type_t, void *buf, uint32_t buflen) |
int | sa_update (sa_handle_t *, sa_attr_type_t, void *buf, uint32_t buflen, dmu_tx_t *) |
| update or add new attribute
|
int | sa_remove (sa_handle_t *, sa_attr_type_t, dmu_tx_t *) |
int | sa_bulk_lookup (sa_handle_t *, sa_bulk_attr_t *, int count) |
int | sa_bulk_lookup_locked (sa_handle_t *, sa_bulk_attr_t *, int count) |
int | sa_bulk_update (sa_handle_t *, sa_bulk_attr_t *, int count, dmu_tx_t *) |
int | sa_size (sa_handle_t *, sa_attr_type_t, int *) |
| Return size of an attribute.
|
int | sa_update_from_cb (sa_handle_t *, sa_attr_type_t, uint32_t buflen, sa_data_locator_t *, void *userdata, dmu_tx_t *) |
void | sa_object_info (sa_handle_t *, dmu_object_info_t *) |
void | sa_object_size (sa_handle_t *, uint32_t *, u_longlong_t *) |
void | sa_update_user (sa_handle_t *, sa_handle_t *) |
void * | sa_get_userdata (sa_handle_t *) |
void | sa_set_userp (sa_handle_t *, void *) |
dmu_buf_t * | sa_get_db (sa_handle_t *) |
uint64_t | sa_handle_object (sa_handle_t *) |
boolean_t | sa_attr_would_spill (sa_handle_t *, sa_attr_type_t, int size) |
void | sa_register_update_callback (objset_t *, sa_update_cb_t *) |
int | sa_setup (objset_t *, uint64_t, sa_attr_reg_t *, int, sa_attr_type_t **) |
void | sa_tear_down (objset_t *) |
int | sa_replace_all_by_template (sa_handle_t *, sa_bulk_attr_t *, int, dmu_tx_t *) |
int | sa_replace_all_by_template_locked (sa_handle_t *, sa_bulk_attr_t *, int, dmu_tx_t *) |
| Replace all attributes with attributes specified in template.
|
boolean_t | sa_enabled (objset_t *) |
void | sa_cache_init () |
void | sa_cache_fini () |
int | sa_set_sa_object (objset_t *, uint64_t) |
int | sa_hdrsize (void *) |
void | sa_handle_lock (sa_handle_t *) |
void | sa_handle_unlock (sa_handle_t *) |
int | sa_lookup_uio (sa_handle_t *, sa_attr_type_t, uio_t *) |
Replace all attributes with attributes specified in template.
If dnode had a spill buffer then those attributes will be also be replaced, possibly with just an empty spill block
This interface is intended to only be used for bulk adding of attributes for a new file. It will also be used by the ZPL when converting and old formatted znode to native SA support.
Definition at line 1592 of file sa.c.