USB: drivers/block/ub.c: use list_for_each_entry()
Low performance USB storage driver: Use list_for_each_entry() instead of list_for_each() Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com> Cc: Pete Zaitcev <zaitcev@redhat.com> Cc: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
acb11c8b80
commit
a69228deef
1 changed files with 3 additions and 9 deletions
|
@ -1547,10 +1547,8 @@ static void ub_reset_enter(struct ub_dev *sc, int try)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 0 /* We let them stop themselves. */
|
#if 0 /* We let them stop themselves. */
|
||||||
struct list_head *p;
|
|
||||||
struct ub_lun *lun;
|
struct ub_lun *lun;
|
||||||
list_for_each(p, &sc->luns) {
|
list_for_each_entry(lun, &sc->luns, link) {
|
||||||
lun = list_entry(p, struct ub_lun, link);
|
|
||||||
blk_stop_queue(lun->disk->queue);
|
blk_stop_queue(lun->disk->queue);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1562,7 +1560,6 @@ static void ub_reset_task(struct work_struct *work)
|
||||||
{
|
{
|
||||||
struct ub_dev *sc = container_of(work, struct ub_dev, reset_work);
|
struct ub_dev *sc = container_of(work, struct ub_dev, reset_work);
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
struct list_head *p;
|
|
||||||
struct ub_lun *lun;
|
struct ub_lun *lun;
|
||||||
int lkr, rc;
|
int lkr, rc;
|
||||||
|
|
||||||
|
@ -1608,8 +1605,7 @@ static void ub_reset_task(struct work_struct *work)
|
||||||
spin_lock_irqsave(sc->lock, flags);
|
spin_lock_irqsave(sc->lock, flags);
|
||||||
sc->reset = 0;
|
sc->reset = 0;
|
||||||
tasklet_schedule(&sc->tasklet);
|
tasklet_schedule(&sc->tasklet);
|
||||||
list_for_each(p, &sc->luns) {
|
list_for_each_entry(lun, &sc->luns, link) {
|
||||||
lun = list_entry(p, struct ub_lun, link);
|
|
||||||
blk_start_queue(lun->disk->queue);
|
blk_start_queue(lun->disk->queue);
|
||||||
}
|
}
|
||||||
wake_up(&sc->reset_wait);
|
wake_up(&sc->reset_wait);
|
||||||
|
@ -2348,7 +2344,6 @@ err_alloc:
|
||||||
static void ub_disconnect(struct usb_interface *intf)
|
static void ub_disconnect(struct usb_interface *intf)
|
||||||
{
|
{
|
||||||
struct ub_dev *sc = usb_get_intfdata(intf);
|
struct ub_dev *sc = usb_get_intfdata(intf);
|
||||||
struct list_head *p;
|
|
||||||
struct ub_lun *lun;
|
struct ub_lun *lun;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
@ -2403,8 +2398,7 @@ static void ub_disconnect(struct usb_interface *intf)
|
||||||
/*
|
/*
|
||||||
* Unregister the upper layer.
|
* Unregister the upper layer.
|
||||||
*/
|
*/
|
||||||
list_for_each (p, &sc->luns) {
|
list_for_each_entry(lun, &sc->luns, link) {
|
||||||
lun = list_entry(p, struct ub_lun, link);
|
|
||||||
del_gendisk(lun->disk);
|
del_gendisk(lun->disk);
|
||||||
/*
|
/*
|
||||||
* I wish I could do:
|
* I wish I could do:
|
||||||
|
|
Loading…
Reference in a new issue