On 28/12/11 14:46, Shashidhar Hiremath wrote:
> On Wed, Dec 28, 2011 at 5:39 PM, Adrian Hunter <[email protected]> 
> wrote:
>> On 28/12/11 12:46, Shashidhar hiremath wrote:
>>> From: Shashidhar Hiremath <[email protected]>
>>>
>>> The Patch adds a check to disable the IOCTL from running when the card is 
>>> mounted
>>> or device is opened elsewhere.
>>
>> What if someone wants to do that.
> The issue with not having this is that if there is huge size data
> transfer operation happening, the IOCTL issuing will corrupt the data
> transfer operation. So it would be better to finish the device's
> access by one thing and give control to ioctl after that.


It does claim the host so the ioctl will wait while I/O requests
are being processed.


>>
>> Generally the kernel does not prevent access to raw block devices
>> just because a file system is mounted on them, so I guess MMC should
>> not either.
> 
>>
>>
>>>
>>> Signed-off-by: Shashidhar Hiremath <[email protected]>
>>> ---
>>>  drivers/mmc/card/block.c |    6 ++++++
>>>  1 files changed, 6 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
>>> index 0cad48a..e680929 100644
>>> --- a/drivers/mmc/card/block.c
>>> +++ b/drivers/mmc/card/block.c
>>> @@ -387,6 +387,12 @@ static int mmc_blk_ioctl_cmd(struct block_device *bdev,
>>>               err = -EINVAL;
>>>               goto cmd_done;
>>>       }
>>> +     /* Disallow the IOCTL run if card is already mounted or device is
>>> +      * opened elsewhere */
>>> +     if (md->usage > 3) {
>>> +             err = -EINVAL;
>>> +             goto cmd_done;
>>> +     }
>>
>> Checking the usage will not work consistently e.g.
>> if there is a sysfs access or another ioctl access at the
>> same time, or just some other kernel user of the device.
>>
>>>
>>>       card = md->queue.card;
>>>       if (IS_ERR(card)) {
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>> the body of a message to [email protected]
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to