block: fix bug in ptbl lookup cache
authorNeil Brown <neilb@suse.de>
Wed, 7 Jan 2009 07:55:39 +0000 (08:55 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Fri, 9 Jan 2009 20:46:13 +0000 (21:46 +0100)
commit54b0d127696aba2ef1ec5430301c968ab539fa0d
treebe6d3ddccce6a17a053ea6e286bf2822bc6ee912
parent2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f
block: fix bug in ptbl lookup cache

Neil writes:

   Hi Jens,

    I've found a little bug for you.  It was introduced by
        a6f23657d3072bde6844055bbc2290e497f33fbc

        block: add one-hit cache for disk partition lookup

    and has the effect of killing my machine whenever I try to assemble
    an md array :-(
    One of the devices in the array has partitions, and mdadm always
    deletes partitions before putting a whole-device in an array (as it
    can cause confusion).  The next IO to that device locks the machine.
    I don't really understand exactly why it locks up, but it happens in
    disk_map_sector_rcu().  This patch fixes it.

Which is due to a missing clear of the (now) stale partition lookup
data. So clear that when we delete a partition.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
fs/partitions/check.c