get_kdev() was locking _minor_lock rather than &_minor_lock. [Heinz Mauelshagen] --- diff/drivers/md/dm.c 2003-06-17 10:05:48.000000000 +0100 +++ source/drivers/md/dm.c 2003-06-17 10:05:55.000000000 +0100 @@ -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; }