diff options
author | NeilBrown <neilb@suse.de> | 2014-12-15 12:57:02 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2015-05-21 11:43:07 +1000 |
commit | b728b2f0ac723e8f10ab3fb09614dddd0d241259 (patch) | |
tree | 6d7f4aba36cc87f93a9ce44fbd90f0810d893298 /block | |
parent | 34f5cde340ffa8e56a6986c63183b1e7168bae70 (diff) |
BLOCK use _irq variant for ext_devt_lock
otherwise I get lockdep warns.
Diffstat (limited to 'block')
-rw-r--r-- | block/genhd.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/block/genhd.c b/block/genhd.c index 666e11b83983..d1338934562e 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -422,9 +422,9 @@ int blk_alloc_devt(struct hd_struct *part, dev_t *devt) /* allocate ext devt */ idr_preload(GFP_KERNEL); - spin_lock(&ext_devt_lock); + spin_lock_irq(&ext_devt_lock); idx = idr_alloc(&ext_devt_idr, part, 0, NR_EXT_DEVT, GFP_NOWAIT); - spin_unlock(&ext_devt_lock); + spin_unlock_irq(&ext_devt_lock); idr_preload_end(); if (idx < 0) @@ -449,9 +449,9 @@ void blk_free_devt(dev_t devt) return; if (MAJOR(devt) == BLOCK_EXT_MAJOR) { - spin_lock(&ext_devt_lock); + spin_lock_irq(&ext_devt_lock); idr_remove(&ext_devt_idr, blk_mangle_minor(MINOR(devt))); - spin_unlock(&ext_devt_lock); + spin_unlock_irq(&ext_devt_lock); } } @@ -690,13 +690,13 @@ struct gendisk *get_gendisk(dev_t devt, int *partno) } else { struct hd_struct *part; - spin_lock(&ext_devt_lock); + spin_lock_irq(&ext_devt_lock); part = idr_find(&ext_devt_idr, blk_mangle_minor(MINOR(devt))); if (part && get_disk(part_to_disk(part))) { *partno = part->partno; disk = part_to_disk(part); } - spin_unlock(&ext_devt_lock); + spin_unlock_irq(&ext_devt_lock); } return disk; |