From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 59499C3F2C6 for ; Wed, 4 Mar 2020 02:51:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 27C3F20836 for ; Wed, 4 Mar 2020 02:51:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="hPYqR650" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387457AbgCDCvU (ORCPT ); Tue, 3 Mar 2020 21:51:20 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:27958 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S2387411AbgCDCvU (ORCPT ); Tue, 3 Mar 2020 21:51:20 -0500 X-UUID: dec6e0326ba54b168947a9cbb341fd39-20200304 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=7FGKC2CL96iktvyoBP2vbwLVT6EXR3CbHjrpB2EcLgw=; b=hPYqR650vpsEYzBHmuAXyKnxqVIEQBBVAcCTMDzNGoAwtzCDRYIwjuEb74suQHC5uF4kn9HIzQZzW9VPpMZXVOqR6GhdGGz6Sna6R/dEJQeOswmugcivby0Zpb9CoNoF+LDw6DxpNOBtZMdUVkZODgFNz4OAgslUCgFw25w1QQs=; X-UUID: dec6e0326ba54b168947a9cbb341fd39-20200304 Received: from mtkcas06.mediatek.inc [(172.21.101.30)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1622470829; Wed, 04 Mar 2020 10:51:17 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs05n1.mediatek.inc (172.21.101.15) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 4 Mar 2020 10:50:08 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Wed, 4 Mar 2020 10:51:55 +0800 From: To: CC: , , , , , , Light Hsieh Subject: [PATCH v1 3/3] block: set partition read/write policy according to write-protection status Date: Wed, 4 Mar 2020 10:51:14 +0800 Message-ID: <1583290274-5525-4-git-send-email-light.hsieh@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1583290274-5525-1-git-send-email-light.hsieh@mediatek.com> References: <1583290274-5525-1-git-send-email-light.hsieh@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org RnJvbTogTGlnaHQgSHNpZWggPGxpZ2h0LmhzaWVoQG1lZGlhdGVrLmNvbT4NCg0KRm9yIHN0b3Jh Z2UgZGV2aWNlIHdpdGggd3JpdGUtcHJvdGVjdGlvbiBzdXBwb3J0LCBlLmcuIGVNTUMsIHJlZ2lz dGVyDQpjaGVja19kaXNrX3JhbmdlX3dwKCkgaW4gc3RydWN0IGJsb2NrX2RldmljZV9vcGVyYXRp b25zIGZvciBjaGVja2luZw0Kd3JpdGUtcHJvdGVjdGlvbiBzdGF0dXMuIFdoZW4gY3JlYXRpbmcg YmxvY2sgZGV2aWNlIGZvciBhIHBhcnRpdGlvbiwgc2V0DQpyZWFkL3dyaXRlIHBvbGljeSBhY2Nv cmRpbmcgdG8gcmVzdWx0IG9mIGNoZWNrX2Rpc2tfcmFuZ2Vfd3AoKSBvcGVyYXRpb24NCihpZiBy ZWdpc3RlcmVkKS4NCg0KV2l0aG91dCB0aGlzIHBhdGNoLCBybyBhdHRyaWJ1dGUgaXMgbm90IHNl dCBmb3IgY3JlYXRlZCBibG9jayBkZXZpY2Ugb2YNCndyaXRlLXByb3RlY3RlZCBwYXJ0aXRpb24u IFVzZXIgcGVyZm9ybSBhc3luY2hyb25vdXMgYnVmZmVyZWQgd3JpdGUgdG8NCnN1Y2ggcGFydGl0 aW9uIHdvbid0IGdldCBpbW1lZGlhdGUgZXJyb3IgYW5kIHRoZXJlZm9yZSBoZSB3b24ndCBiZSBh d2FyZWQNCnRoYXQgd3JpdGUgaXMgbm90IGFjdHVhbGx5IHBlcmZvcm1lZC4NCldpdGggdGhpcyBw YXRjaCwgcm8gYXR0cmlidXRlIGlzIHNldCBmb3IgY3JlYXRlZCBibG9jayBkZXZpY2Ugb2YNCndy aXRlLXByb3RlY3RlZCBwYXJ0aXRpb24uIFVzZXIgcGVyZm9ybSBhc3luY2hyb25vdXMgYnVmZmVy ZWQgd3JpdGUgdG8NCnN1Y2ggcGFydGl0aW9uIHdpbGwgZ2V0IGltbWVkaWF0ZSBlcnJvciBhbmQg dGhlcmVmb3JlIGhlIHdpbGwgYmUgYXdhcmVkLg0KDQpTaWduZWQtb2ZmLWJ5OiBMaWdodCBIc2ll aCA8bGlnaHQuaHNpZWhAbWVkaWF0ZWsuY29tPg0KLS0tDQogYmxvY2svcGFydGl0aW9uLWdlbmVy aWMuYyB8IDEwICsrKysrKysrKysNCiBkcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmMgIHwgIDEgKw0K IGluY2x1ZGUvbGludXgvYmxrZGV2LmggICAgfCAgMSArDQogMyBmaWxlcyBjaGFuZ2VkLCAxMiBp bnNlcnRpb25zKCspDQoNCmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb24tZ2VuZXJpYy5jIGIv YmxvY2svcGFydGl0aW9uLWdlbmVyaWMuYw0KaW5kZXggNTY0ZmFlNy4uNjkwODhlOCAxMDA2NDQN Ci0tLSBhL2Jsb2NrL3BhcnRpdGlvbi1nZW5lcmljLmMNCisrKyBiL2Jsb2NrL3BhcnRpdGlvbi1n ZW5lcmljLmMNCkBAIC0zOTQsNiArMzk0LDE2IEBAIHN0cnVjdCBoZF9zdHJ1Y3QgKmFkZF9wYXJ0 aXRpb24oc3RydWN0IGdlbmRpc2sgKmRpc2ssIGludCBwYXJ0bm8sDQogCQlnb3RvIG91dF9mcmVl X2luZm87DQogCXBkZXYtPmRldnQgPSBkZXZ0Ow0KIA0KKwlpZiAoIXAtPnBvbGljeSkgew0KKwkJ aWYgKGRpc2stPmZvcHMtPmNoZWNrX2Rpc2tfcmFuZ2Vfd3ApIHsNCisJCQllcnIgPSBkaXNrLT5m b3BzLT5jaGVja19kaXNrX3JhbmdlX3dwKGRpc2ssIHN0YXJ0LCBsZW4pOw0KKwkJCWlmIChlcnIg PiAwKQ0KKwkJCQlwLT5wb2xpY3kgPSAxOw0KKwkJCWVsc2UgaWYgKGVyciAhPSAwKQ0KKwkJCQln b3RvIG91dF9mcmVlX2luZm87DQorCQl9DQorCX0NCisNCiAJLyogZGVsYXkgdWV2ZW50IHVudGls ICdob2xkZXJzJyBzdWJkaXIgaXMgY3JlYXRlZCAqLw0KIAlkZXZfc2V0X3VldmVudF9zdXBwcmVz cyhwZGV2LCAxKTsNCiAJZXJyID0gZGV2aWNlX2FkZChwZGV2KTsNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL21tYy9jb3JlL2Jsb2NrLmMgYi9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmMNCmluZGV4IGVl ODVhYmYuLmFmODEzMTEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmMNCisr KyBiL2RyaXZlcnMvbW1jL2NvcmUvYmxvY2suYw0KQEAgLTEwNDcsNiArMTA0Nyw3IEBAIHN0YXRp YyBpbnQgbW1jX2Jsa19jb21wYXRfaW9jdGwoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgZm1v ZGVfdCBtb2RlLA0KICNpZmRlZiBDT05GSUdfQ09NUEFUDQogCS5jb21wYXRfaW9jdGwJCT0gbW1j X2Jsa19jb21wYXRfaW9jdGwsDQogI2VuZGlmDQorCS5jaGVja19kaXNrX3JhbmdlX3dwCT0gbW1j X2Jsa19jaGVja19kaXNrX3JhbmdlX3dwLA0KIH07DQogDQogc3RhdGljIGludCBtbWNfYmxrX3Bh cnRfc3dpdGNoX3ByZShzdHJ1Y3QgbW1jX2NhcmQgKmNhcmQsDQpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9ibGtkZXYuaCBiL2luY2x1ZGUvbGludXgvYmxrZGV2LmgNCmluZGV4IDA1M2VhNGIu Ljc4MTQyOTAgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oDQorKysgYi9pbmNs dWRlL2xpbnV4L2Jsa2Rldi5oDQpAQCAtMTcwNyw2ICsxNzA3LDcgQEAgc3RydWN0IGJsb2NrX2Rl dmljZV9vcGVyYXRpb25zIHsNCiAJdm9pZCAoKnN3YXBfc2xvdF9mcmVlX25vdGlmeSkgKHN0cnVj dCBibG9ja19kZXZpY2UgKiwgdW5zaWduZWQgbG9uZyk7DQogCWludCAoKnJlcG9ydF96b25lcyko c3RydWN0IGdlbmRpc2sgKiwgc2VjdG9yX3Qgc2VjdG9yLA0KIAkJCXVuc2lnbmVkIGludCBucl96 b25lcywgcmVwb3J0X3pvbmVzX2NiIGNiLCB2b2lkICpkYXRhKTsNCisJaW50ICgqY2hlY2tfZGlz a19yYW5nZV93cCkoc3RydWN0IGdlbmRpc2sgKmQsIHNlY3Rvcl90IHMsIHNlY3Rvcl90IGwpOw0K IAlzdHJ1Y3QgbW9kdWxlICpvd25lcjsNCiAJY29uc3Qgc3RydWN0IHByX29wcyAqcHJfb3BzOw0K IH07DQotLSANCjEuOC4xLjEuZGlydHkNCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9E015C3F2D7 for ; Wed, 4 Mar 2020 03:01:37 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 70F3020838 for ; Wed, 4 Mar 2020 03:01:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="FtgtRIp3"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="hPYqR650" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 70F3020838 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=fA4Dw0u2zzoFM5e2wHJEq1V2IZRD5lwFMuADhr58npg=; b=FtgtRIp3nJxkaw oDE6FQVz64bPuUbBE9oXcubUawOR3OJ859QVCdUx7vCQVpKeIA5Ul5xIDk5o9Pc0LIREzFgpmaN04 5QGbJ7Svn5B+CbpD0QYezVvI34UlIDoM+HbkskEVT2K/BCw/uHutBA95nTxiUiwlzLJOKI8DzfP4x vBqUE1Lv/WS1cIc1eJDWvRvq9B6RxTiWX+q80iUEWtFg5aGoB6hhaQeGRUMn4ObdAgUHaN5M2B3i3 roRPemqAAyfNLmDfxoMUMafPpf8hwh/QYPzuGllVSYZ7Zs1MxJDCrKcNDr2Btu96K6LI77aGLFsD0 iDzGiz1t7UKpqG7ugcgg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1j9KHn-0006hm-SB; Wed, 04 Mar 2020 03:01:27 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1j9KHj-0006e2-I3 for linux-mediatek@lists.infradead.org; Wed, 04 Mar 2020 03:01:25 +0000 X-UUID: cc74b040b5e1446588343c26fe92bfba-20200303 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=7FGKC2CL96iktvyoBP2vbwLVT6EXR3CbHjrpB2EcLgw=; b=hPYqR650vpsEYzBHmuAXyKnxqVIEQBBVAcCTMDzNGoAwtzCDRYIwjuEb74suQHC5uF4kn9HIzQZzW9VPpMZXVOqR6GhdGGz6Sna6R/dEJQeOswmugcivby0Zpb9CoNoF+LDw6DxpNOBtZMdUVkZODgFNz4OAgslUCgFw25w1QQs=; X-UUID: cc74b040b5e1446588343c26fe92bfba-20200303 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 584305415; Tue, 03 Mar 2020 19:01:18 -0800 Received: from mtkmbs05n1.mediatek.inc (172.21.101.15) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 3 Mar 2020 18:52:09 -0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs05n1.mediatek.inc (172.21.101.15) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 4 Mar 2020 10:50:08 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Wed, 4 Mar 2020 10:51:55 +0800 From: To: Subject: [PATCH v1 3/3] block: set partition read/write policy according to write-protection status Date: Wed, 4 Mar 2020 10:51:14 +0800 Message-ID: <1583290274-5525-4-git-send-email-light.hsieh@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1583290274-5525-1-git-send-email-light.hsieh@mediatek.com> References: <1583290274-5525-1-git-send-email-light.hsieh@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200303_190123_633038_7CC344FA X-CRM114-Status: GOOD ( 11.83 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: axboe@kernel.dk, kuohong.wang@mediatek.com, linux-kernel@vger.kernel.org, Light Hsieh , linux-block@vger.kernel.org, linux-mediatek@lists.infradead.org, stanley.chu@mediatek.com Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org From: Light Hsieh For storage device with write-protection support, e.g. eMMC, register check_disk_range_wp() in struct block_device_operations for checking write-protection status. When creating block device for a partition, set read/write policy according to result of check_disk_range_wp() operation (if registered). Without this patch, ro attribute is not set for created block device of write-protected partition. User perform asynchronous buffered write to such partition won't get immediate error and therefore he won't be awared that write is not actually performed. With this patch, ro attribute is set for created block device of write-protected partition. User perform asynchronous buffered write to such partition will get immediate error and therefore he will be awared. Signed-off-by: Light Hsieh --- block/partition-generic.c | 10 ++++++++++ drivers/mmc/core/block.c | 1 + include/linux/blkdev.h | 1 + 3 files changed, 12 insertions(+) diff --git a/block/partition-generic.c b/block/partition-generic.c index 564fae7..69088e8 100644 --- a/block/partition-generic.c +++ b/block/partition-generic.c @@ -394,6 +394,16 @@ struct hd_struct *add_partition(struct gendisk *disk, int partno, goto out_free_info; pdev->devt = devt; + if (!p->policy) { + if (disk->fops->check_disk_range_wp) { + err = disk->fops->check_disk_range_wp(disk, start, len); + if (err > 0) + p->policy = 1; + else if (err != 0) + goto out_free_info; + } + } + /* delay uevent until 'holders' subdir is created */ dev_set_uevent_suppress(pdev, 1); err = device_add(pdev); diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c index ee85abf..af81311 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -1047,6 +1047,7 @@ static int mmc_blk_compat_ioctl(struct block_device *bdev, fmode_t mode, #ifdef CONFIG_COMPAT .compat_ioctl = mmc_blk_compat_ioctl, #endif + .check_disk_range_wp = mmc_blk_check_disk_range_wp, }; static int mmc_blk_part_switch_pre(struct mmc_card *card, diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 053ea4b..7814290 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -1707,6 +1707,7 @@ struct block_device_operations { void (*swap_slot_free_notify) (struct block_device *, unsigned long); int (*report_zones)(struct gendisk *, sector_t sector, unsigned int nr_zones, report_zones_cb cb, void *data); + int (*check_disk_range_wp)(struct gendisk *d, sector_t s, sector_t l); struct module *owner; const struct pr_ops *pr_ops; }; -- 1.8.1.1.dirty _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek