Lines Matching refs:dif
172 struct erofs_device_info *dif, erofs_off_t *pos)
185 if (!sbi->devs->flatdev && !dif->path) {
190 dif->path = kmemdup_nul(dis->tag, sizeof(dis->tag), GFP_KERNEL);
191 if (!dif->path)
196 fscache = erofs_fscache_register_cookie(sb, dif->path, 0);
199 dif->fscache = fscache;
201 bdev_handle = bdev_open_by_path(dif->path, BLK_OPEN_READ,
205 dif->bdev_handle = bdev_handle;
206 dif->dax_dev = fs_dax_get_by_bdev(bdev_handle->bdev,
207 &dif->dax_part_off, NULL, NULL);
210 dif->blocks = le32_to_cpu(dis->blocks);
211 dif->mapped_blkaddr = le32_to_cpu(dis->mapped_blkaddr);
212 sbi->total_blocks += dif->blocks;
224 struct erofs_device_info *dif;
249 idr_for_each_entry(&sbi->devs->tree, dif, id) {
250 err = erofs_init_device(&buf, sb, dif, &pos);
256 dif = kzalloc(sizeof(*dif), GFP_KERNEL);
257 if (!dif) {
262 err = idr_alloc(&sbi->devs->tree, dif, 0, 0, GFP_KERNEL);
264 kfree(dif);
269 err = erofs_init_device(&buf, sb, dif, &pos);
453 struct erofs_device_info *dif;
497 dif = kzalloc(sizeof(*dif), GFP_KERNEL);
498 if (!dif)
500 dif->path = kstrdup(param->string, GFP_KERNEL);
501 if (!dif->path) {
502 kfree(dif);
506 ret = idr_alloc(&ctx->devs->tree, dif, 0, 0, GFP_KERNEL);
509 kfree(dif->path);
510 kfree(dif);
738 struct erofs_device_info *dif = ptr;
740 fs_put_dax(dif->dax_dev, NULL);
741 if (dif->bdev_handle)
742 bdev_release(dif->bdev_handle);
743 erofs_fscache_unregister_cookie(dif->fscache);
744 dif->fscache = NULL;
745 kfree(dif->path);
746 kfree(dif);