Messages in this thread |  | On Sat, 30 Jan 2010, Maxim Levitsky wrote:
> This patch adds tracking for open and close calls. > Now trans ->open and ->release are never called twise in a row > ->release is also called once before mtd device disappers > ...
> --- a/drivers/mtd/mtd_blkdevs.c > +++ b/drivers/mtd/mtd_blkdevs.c > @@ -128,6 +128,9 @@ static int blktrans_open(struct block_device *bde= v, fmode_t mode) > if (!get_mtd_device(NULL, dev->mtd->index)) > goto out; > > + if (dev->open++) > + goto out; > + > if (!try_module_get(tr->owner)) > goto out_tr; > > @@ -153,6 +156,10 @@ static int blktrans_release(struct gendisk *disk= , fmode_t mode) > struct mtd_blktrans_ops *tr =3D dev->tr; > int ret =3D 0; > > + dev->open--; > + if (dev->open) > + return 0; > +
Just a very minor quibble: if you use if (dev->open++) in one function,= =20 why not use if (--dev->open) in the other? Or separate the=20 increment/decrement from the test, depending on you style preferences. /Ricard --=20 Ricard Wolf Wanderl=F6f ricardw(at)axis.com Axis Communications AB, Lund, Sweden www.axis.com Phone +46 46 272 2016 Fax +46 46 13 61 30 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel"= in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |