On 15/03/16 23:44, fengwei.yin wrote:
On 2016/3/15 22:31, Christoph Hellwig wrote:
On Tue, Mar 15, 2016 at 11:26:07AM -0400, Yin, Fengwei wrote:Fair enough.
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.
I will wait for one more day for further comments to the patch. And update
the patch tomorrow. Thanks a lot for looking into the patch.
There is already a patch in the works for this [0].
Cheers
Jon
[0] http://marc.info/?l=linux-mmc&m=145812340114153&w=2