}
EXPORT_SERVER_CMD_HANDLER(lsatt);
-struct addatt_event_data {
- const char *name;
- unsigned char bitnum;
-};
-
static int com_addatt_callback(struct afs_callback_arg *aca)
{
const struct lls_command *cmd = SERVER_CMD_CMD_PTR(ADDATT);
struct osl_object objs[NUM_ATT_COLUMNS];
struct osl_row *row;
unsigned char bitnum;
- struct addatt_event_data aed;
len = strlen(name);
if (len == 0 || name[len - 1] == '-' || name[len - 1] == '+') {
ret = osl(osl_add_row(attribute_table, objs));
if (ret < 0)
goto out;
- aed.name = name;
- aed.bitnum = bitnum;
- ret = afs_event(ATTRIBUTE_ADD, &aca->pbout, &aed);
+ ret = afs_event(ATTRIBUTE_ADD, &aca->pbout, NULL);
if (ret < 0)
goto out;
greatest_att_bitnum = PARA_MAX(greatest_att_bitnum, (int)bitnum);
return osl(osl_create_table(&attribute_table_desc));
}
-/**
- * Initialize the attribute table structure.
- *
- * \param t The table structure to initialize.
- */
-void attribute_init(struct afs_table *t)
-{
- t->open = attribute_open;
- t->close = attribute_close;
- t->create = attribute_create;
-}
+/** The attribute table stores name/bitnum pairs. */
+const struct afs_table_operations attr_ops = { /* no event handler */
+ .open = attribute_open,
+ .close = attribute_close,
+ .create = attribute_create,
+};