Lines Matching refs:devs
148 if (!sbi->devs->flatdev && !dif->path) {
163 } else if (!sbi->devs->flatdev) {
212 if (sbi->devs->extra_devices &&
213 ondisk_extradevs != sbi->devs->extra_devices) {
215 ondisk_extradevs, sbi->devs->extra_devices);
226 if (!sbi->devs->extra_devices && !erofs_is_fscache_mode(sb))
227 sbi->devs->flatdev = true;
231 down_read(&sbi->devs->rwsem);
232 if (sbi->devs->extra_devices) {
233 idr_for_each_entry(&sbi->devs->tree, dif, id) {
246 err = idr_alloc(&sbi->devs->tree, dif, 0, 0, GFP_KERNEL);
251 ++sbi->devs->extra_devices;
258 up_read(&sbi->devs->rwsem);
493 down_write(&sbi->devs->rwsem);
494 ret = idr_alloc(&sbi->devs->tree, dif, 0, 0, GFP_KERNEL);
495 up_write(&sbi->devs->rwsem);
501 ++sbi->devs->extra_devices;
809 static void erofs_free_dev_context(struct erofs_dev_context *devs)
811 if (!devs)
813 idr_for_each(&devs->tree, &erofs_release_device_info, NULL);
814 idr_destroy(&devs->tree);
815 kfree(devs);
820 erofs_free_dev_context(sbi->devs);
851 sbi->devs = kzalloc(sizeof(struct erofs_dev_context), GFP_KERNEL);
852 if (!sbi->devs) {
858 idr_init(&sbi->devs->tree);
859 init_rwsem(&sbi->devs->rwsem);
901 erofs_free_dev_context(sbi->devs);
902 sbi->devs = NULL;