get_kdev() was locking _minor_lock rather than &_minor_lock. [Heinz Mauelshagen] --- diff/drivers/md/dm.c 2002-11-29 09:45:26.000000000 +0000 +++ source/drivers/md/dm.c 2002-11-29 09:45:55.000000000 +0000 @@ -579,11 +579,11 @@ if (major(dev) != _major) return NULL; - spin_lock(_minor_lock); + spin_lock(&_minor_lock); md = _mds[minor(dev)]; if (md) dm_get(md); - spin_unlock(_minor_lock); + spin_unlock(&_minor_lock); return md; }