Lines Matching defs:devs
188 if (!sbi->devs->flatdev && !dif->path) {
203 } else if (!sbi->devs->flatdev) {
236 if (sbi->devs->extra_devices &&
237 ondisk_extradevs != sbi->devs->extra_devices) {
239 ondisk_extradevs, sbi->devs->extra_devices);
245 if (!sbi->devs->extra_devices && !erofs_is_fscache_mode(sb))
246 sbi->devs->flatdev = true;
250 down_read(&sbi->devs->rwsem);
251 if (sbi->devs->extra_devices) {
252 idr_for_each_entry(&sbi->devs->tree, dif, id) {
265 err = idr_alloc(&sbi->devs->tree, dif, 0, 0, GFP_KERNEL);
270 ++sbi->devs->extra_devices;
277 up_read(&sbi->devs->rwsem);
507 down_write(&sbi->devs->rwsem);
508 ret = idr_alloc(&sbi->devs->tree, dif, 0, 0, GFP_KERNEL);
509 up_write(&sbi->devs->rwsem);
515 ++sbi->devs->extra_devices;
739 static void erofs_free_dev_context(struct erofs_dev_context *devs)
741 if (!devs)
743 idr_for_each(&devs->tree, &erofs_release_device_info, NULL);
744 idr_destroy(&devs->tree);
745 kfree(devs);
755 erofs_free_dev_context(sbi->devs);
776 sbi->devs = kzalloc(sizeof(struct erofs_dev_context), GFP_KERNEL);
777 if (!sbi->devs) {
783 idr_init(&sbi->devs->tree);
784 init_rwsem(&sbi->devs->rwsem);
799 erofs_free_dev_context(sbi->devs);
823 erofs_free_dev_context(sbi->devs);
824 sbi->devs = NULL;