rbd: initialize snap_rwsem in rbd_add()
authorAlex Elder <elder@dreamhost.com>
Thu, 12 Jan 2012 03:42:15 +0000 (19:42 -0800)
committerSage Weil <sage@newdream.net>
Thu, 12 Jan 2012 19:00:50 +0000 (11:00 -0800)
New rbd device structures get initialized in rbd_add().  Many of
the fields rely on being initially zero-filled.  However we lockdep
was noticing that the rw_semaphore embedded in the header field
was not getting properly initialized.  Fix that.

Signed-off-by: Alex Elder <elder@dreamhost.com>
Signed-off-by: Sage Weil <sage@newdream.net>

drivers/block/rbd.c

index 148ab94..3fd31de 100644 (file)
@@ -2184,6 +2184,8 @@ static ssize_t rbd_add(struct bus_type *bus,
        INIT_LIST_HEAD(&rbd_dev->node);
        INIT_LIST_HEAD(&rbd_dev->snaps);
 
+       init_rwsem(&rbd_dev->header.snap_rwsem);
+
        /* generate unique id: find highest unique id, add one */
        mutex_lock_nested(&ctl_mutex, SINGLE_DEPTH_NESTING);