aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block/bsg.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/block/bsg.c b/block/bsg.c
index e2c65a150a79..b413318a7c5d 100644
--- a/block/bsg.c
+++ b/block/bsg.c
@@ -368,7 +368,7 @@ static struct bsg_command *bsg_next_done_cmd(struct bsg_device *bd)
368 368
369 spin_lock_irq(&bd->lock); 369 spin_lock_irq(&bd->lock);
370 if (bd->done_cmds) { 370 if (bd->done_cmds) {
371 bc = list_entry(bd->done_list.next, struct bsg_command, list); 371 bc = list_first_entry(&bd->done_list, struct bsg_command, list);
372 list_del(&bc->list); 372 list_del(&bc->list);
373 bd->done_cmds--; 373 bd->done_cmds--;
374 } 374 }
@@ -772,21 +772,19 @@ static struct bsg_device *bsg_add_device(struct inode *inode,
772 772
773static struct bsg_device *__bsg_get_device(int minor) 773static struct bsg_device *__bsg_get_device(int minor)
774{ 774{
775 struct bsg_device *bd = NULL; 775 struct bsg_device *bd;
776 struct hlist_node *entry; 776 struct hlist_node *entry;
777 777
778 mutex_lock(&bsg_mutex); 778 mutex_lock(&bsg_mutex);
779 779
780 hlist_for_each(entry, bsg_dev_idx_hash(minor)) { 780 hlist_for_each_entry(bd, entry, bsg_dev_idx_hash(minor), dev_list) {
781 bd = hlist_entry(entry, struct bsg_device, dev_list);
782 if (bd->minor == minor) { 781 if (bd->minor == minor) {
783 atomic_inc(&bd->ref_count); 782 atomic_inc(&bd->ref_count);
784 break; 783 goto found;
785 } 784 }
786
787 bd = NULL;
788 } 785 }
789 786 bd = NULL;
787found:
790 mutex_unlock(&bsg_mutex); 788 mutex_unlock(&bsg_mutex);
791 return bd; 789 return bd;
792} 790}