-
- if (argc == 1) {
- ret = create_all_tables();
- if (ret < 0)
- return ret;
- return open_afs_tables();
- }
- for (i = 1; i < argc; i++) {
- for (j = 0; j < NUM_AFS_TABLES; j++) {
- struct table_info *ti = afs_tables + j;
-
- if (ti->flags & TBLFLAG_SKIP_CREATE)
- continue;
- if (strcmp(argv[i], ti->desc->name))
- continue;
- ret = send_va_buffer(fd, "creating table %s\n", argv[i]);
- if (ret < 0)
- return ret;
- ret = osl_create_table(ti->desc);
- if (ret < 0)
- return ret;
- break;
+ uint32_t table_mask = (1 << (NUM_AFS_TABLES + 1)) - 1;
+ struct osl_object query = {.data = &table_mask,
+ .size = sizeof(table_mask)};
+
+ if (argc != 1) {
+ table_mask = 0;
+ for (i = 1; i < argc; i++) {
+ for (j = 0; j < NUM_AFS_TABLES; j++) {
+ struct table_info *ti = afs_tables + j;
+
+ if (ti->flags & TBLFLAG_SKIP_CREATE)
+ continue;
+ if (strcmp(argv[i], ti->desc->name))
+ continue;
+ table_mask |= (1 << j);
+ break;
+ }
+ if (j == NUM_AFS_TABLES)
+ return -E_BAD_TABLE_NAME;