aoe: eliminate goto and improve readability

Adam Richter suggested eliminating this goto.

Signed-off-by: Ed L. Cashin <ecashin@coraid.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Ed L. Cashin 2008-02-08 04:20:03 -08:00 committed by Linus Torvalds
parent 468fc53050
commit cf446f0dba

View File

@ -194,12 +194,15 @@ aoechr_read(struct file *filp, char __user *buf, size_t cnt, loff_t *off)
ulong flags;
n = (unsigned long) filp->private_data;
switch (n) {
case MINOR_ERR:
if (n != MINOR_ERR)
return -EFAULT;
spin_lock_irqsave(&emsgs_lock, flags);
loop:
for (;;) {
em = emsgs + emsgs_head_idx;
if ((em->flags & EMFL_VALID) == 0) {
if ((em->flags & EMFL_VALID) != 0)
break;
if (filp->f_flags & O_NDELAY) {
spin_unlock_irqrestore(&emsgs_lock, flags);
return -EAGAIN;
@ -218,7 +221,6 @@ loop:
spin_unlock_irqrestore(&emsgs_lock, flags);
return -ERESTARTSYS;
}
goto loop;
}
if (em->len > cnt) {
spin_unlock_irqrestore(&emsgs_lock, flags);
@ -237,9 +239,6 @@ loop:
n = copy_to_user(buf, mp, len);
kfree(mp);
return n == 0 ? len : -EFAULT;
default:
return -EFAULT;
}
}
static const struct file_operations aoe_fops = {