OSDN Git Service

mtd: fix bdev exclusive open bugs in block2mtd::add_device()
authorTejun Heo <tj@kernel.org>
Sat, 13 Nov 2010 10:55:16 +0000 (11:55 +0100)
committerTejun Heo <tj@kernel.org>
Sat, 13 Nov 2010 10:55:16 +0000 (11:55 +0100)
commit731edacb7567c15f25b1fccac18a203bd432ae5e
tree0ad6f16b306847e7626cea84c684ea4a044233da
parentf6614b7bb405a9b35dd28baea989a749492c46b2
mtd: fix bdev exclusive open bugs in block2mtd::add_device()

There are two bdev exclusive open bugs.

* open_bdev_exclusive() must not be called with NULL holder.  Use dev
  as the holder.

* open_by_devnum() doesn't open the bdev exclusively but
  block2mtd_free_device() always assumes it.  Explicitly claim the
  bdev.

The latter is rather clumsy but will be simplified with future
blkdev_get/put() cleanups.

- Updated to use local variable @mode to cache FMODE_* masks as
  suggested by Artem Bityutskiy.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: linux-mtd@lists.infradead.org
Cc: Artem Bityutskiy <dedekind1@gmail.com>
drivers/mtd/devices/block2mtd.c