Re: [PATCH] ioctl conversion

From: Arnd Bergmann
Date: Fri Jul 11 2008 - 04:09:38 EST


On Friday 11 July 2008, Stoyan Gaydarov wrote:
> -       if (_IOC_TYPE(cmd) != SNAPSHOT_IOC_MAGIC)
> +       lock_kernel();
> +
> +       if (_IOC_TYPE(cmd) != SNAPSHOT_IOC_MAGIC) {
> +               unlock_kernel();
>                 return -ENOTTY;
> -       if (_IOC_NR(cmd) > SNAPSHOT_IOC_MAXNR)
> +       }
> +       if (_IOC_NR(cmd) > SNAPSHOT_IOC_MAXNR) {
> +               unlock_kernel();
>                 return -ENOTTY;
> -       if (!capable(CAP_SYS_ADMIN))
> +       }
> +       if (!capable(CAP_SYS_ADMIN)) {
> +               unlock_kernel();
>                 return -EPERM;
> +       }
>
>         data = filp->private_data;

The more common way to express this is to end the function with

out:
unlock_kernel();
return ret;
}

and then jump to that label in the error case. This makes it
much easier to verify that you haven't missed a cased.

Arnd <><
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/