On 28/12/11 14:46, Shashidhar Hiremath wrote: > On Wed, Dec 28, 2011 at 5:39 PM, Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote: >> On 28/12/11 12:46, Shashidhar hiremath wrote: >>> From: Shashidhar Hiremath <shashidharh@xxxxxxxxxxxxxxx> >>> >>> 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 <shashidharh@xxxxxxxxxxxxxxx> >>> --- >>> 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 majordomo@xxxxxxxxxxxxxxx >> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html