On Mon, May 21, 2007 at 03:00:55PM -0700, [EMAIL PROTECTED] wrote: > + if (register_blkdev(LOOP_MAJOR, "loop")) > + return -EIO; > + blk_register_region(MKDEV(LOOP_MAJOR, 0), range, > + THIS_MODULE, loop_probe, NULL, NULL); > + > + for (i = 0; i < nr; i++) { > + if (!loop_init_one(i)) > + goto err; > + } > + > + printk(KERN_INFO "loop: module loaded\n"); > + return 0; > +err: > + loop_exit();
This isn't good. You *can't* fail once a single disk has been registered. Anyone could've opened it by now. IOW, you need to * register region *after* you are past the point of no return * either not fail on failing loop_init_one() here, or separate allocations and actual add_disk(). - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/