Commit 0da3132f authored by Joe Perches's avatar Joe Perches Committed by Linus Torvalds

drivers/block/floppy.c: unclutter redo_fd_request logic

Change for(;;) with continue; to label: goto label
Reduces indentation and adds a bit of clarity.
Signed-off-by: default avatarJoe Perches <joe@perches.com>
Cc: Stephen Hemminger <shemminger@vyatta.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Marcin Slusarz <marcin.slusarz@gmail.com>
Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 416d8d28
...@@ -2892,64 +2892,63 @@ static void redo_fd_request(void) ...@@ -2892,64 +2892,63 @@ static void redo_fd_request(void)
if (current_drive < N_DRIVE) if (current_drive < N_DRIVE)
floppy_off(current_drive); floppy_off(current_drive);
for (;;) { do_request:
if (!current_req) { if (!current_req) {
struct request *req; struct request *req;
spin_lock_irq(floppy_queue->queue_lock); spin_lock_irq(floppy_queue->queue_lock);
req = blk_fetch_request(floppy_queue); req = blk_fetch_request(floppy_queue);
spin_unlock_irq(floppy_queue->queue_lock); spin_unlock_irq(floppy_queue->queue_lock);
if (!req) { if (!req) {
do_floppy = NULL; do_floppy = NULL;
unlock_fdc(); unlock_fdc();
return;
}
current_req = req;
}
drive = (long)current_req->rq_disk->private_data;
set_fdc(drive);
reschedule_timeout(current_reqD, "redo fd request", 0);
set_floppy(drive);
raw_cmd = &default_raw_cmd;
raw_cmd->flags = 0;
if (start_motor(redo_fd_request))
return; return;
disk_change(current_drive);
if (test_bit(current_drive, &fake_change) ||
test_bit(FD_DISK_CHANGED_BIT, &DRS->flags)) {
DPRINT("disk absent or changed during operation\n");
request_done(0);
continue;
}
if (!_floppy) { /* Autodetection */
if (!probing) {
DRS->probed_format = 0;
if (next_valid_format()) {
DPRINT("no autodetectable formats\n");
_floppy = NULL;
request_done(0);
continue;
}
}
probing = 1;
_floppy =
floppy_type + DP->autodetect[DRS->probed_format];
} else
probing = 0;
errors = &(current_req->errors);
tmp = make_raw_rw_request();
if (tmp < 2) {
request_done(tmp);
continue;
} }
current_req = req;
}
drive = (long)current_req->rq_disk->private_data;
set_fdc(drive);
reschedule_timeout(current_reqD, "redo fd request", 0);
if (test_bit(FD_NEED_TWADDLE_BIT, &DRS->flags)) set_floppy(drive);
twaddle(); raw_cmd = &default_raw_cmd;
schedule_bh(floppy_start); raw_cmd->flags = 0;
debugt("queue fd request"); if (start_motor(redo_fd_request))
return; return;
disk_change(current_drive);
if (test_bit(current_drive, &fake_change) ||
test_bit(FD_DISK_CHANGED_BIT, &DRS->flags)) {
DPRINT("disk absent or changed during operation\n");
request_done(0);
goto do_request;
} }
if (!_floppy) { /* Autodetection */
if (!probing) {
DRS->probed_format = 0;
if (next_valid_format()) {
DPRINT("no autodetectable formats\n");
_floppy = NULL;
request_done(0);
goto do_request;
}
}
probing = 1;
_floppy = floppy_type + DP->autodetect[DRS->probed_format];
} else
probing = 0;
errors = &(current_req->errors);
tmp = make_raw_rw_request();
if (tmp < 2) {
request_done(tmp);
goto do_request;
}
if (test_bit(FD_NEED_TWADDLE_BIT, &DRS->flags))
twaddle();
schedule_bh(floppy_start);
debugt("queue fd request");
return;
} }
static struct cont_t rw_cont = { static struct cont_t rw_cont = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment