Re: [PATCH] mmc: block: remove the check for whole block device for ioctl.

From: Christoph Hellwig
Date: Tue Mar 15 2016 - 10:31:56 EST


On Tue, Mar 15, 2016 at 11:26:07AM -0400, Yin, Fengwei wrote:
> From: Fengwei Yin <fengwei.yin@xxxxxxxxxx>
>
> a5f5774c55a2e3ed75f4d6c5556b7bfcb726e6f0 introduced the whole block
> device checking for MMC_IOC_CMD while the old code has no such check.
>
> It breaks some ioctl call like BLKROSET from user space. An example
> is "adb remount" cmd. It prints out following error message:
> "remount of /system failed; couldn't make block device XXXX writable: \
> Operation not permitted."
> while the command worked fine.
>
> This change move the whole block device checking only for MMC_IOC_MULTI_CMD.

I think mmc_blk_ioctl_cmd will need this as well, as will probably
do any new ioctl.

So I think the right fix is to simply return -EINVAL instead of
EPERM if on a partition, which will make all the block layer ioctls
works fine.