Re: [PATCH] UBI: new module ubiblk: block layer on top of UBI

From: Artem Bityutskiy
Date: Mon Jun 27 2011 - 15:26:22 EST


On Fri, 2011-06-24 at 15:34 +0200, david.wagner@xxxxxxxxxxxxxxxxxx
wrote:
> + /* Stolen from mtd_blkdevs.c */
> + /* Create processing thread */
> + dev->thread = kthread_run(ubi_ubiblk_thread, dev, "%s%d_%d",
> + "kubiblkd", dev->ubi_num, dev->vol_id);
> + if (IS_ERR(dev->thread)) {
> + ret = PTR_ERR(dev->thread);
> + goto out_thread;
> + }

Why we need a kernel thread? Could you please describe when exactly it
is needed and why we cannot avoid having it?

> + ret = register_blkdev(0, "ubiblk");
> + if (ret <= 0) {
> + pr_err("UBIBLK: could not register_blkdev\n");
> + return -ENODEV;
> + }
> + major = ret;
> + pr_info("UBIBLK: device's major: %d\n", major);
> +
> + mutex_init(&devtable_lock);
> + ret = ubi_register_volume_notifier(&ubiblk_notifier, 0);
> + if (ret < 0)
> + return ret;

You should probably de-register the blkdev when you fail here.

--
Best Regards,
Artem Bityutskiy (ÐÐÑÑÑÐÐÐ ÐÑÑÑÐ)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/