From mboxrd@z Thu Jan 1 00:00:00 1970 From: majianpeng Subject: [PATCH V2 1/2] block: Set inode of block_device size to zero when delete gendisk. Date: Tue, 17 Sep 2013 11:22:01 +0800 Message-ID: <201309171121587796647@gmail.com> Reply-To: majianpeng Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 Cc: LKML , linux-fsdevel To: axboe , viro Return-path: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org V2hlbiByZW1vdmUgZ2VuZGlzaywgc2V0IHRoZSBzaXplIG9mIGlub2RlIG9mIGJsb2NrX2Rldmlj ZSB0byB6ZXJvLg0KVGhpcyBpcyBtYWlubHkgbGV0IHRoZSB2ZnMga25vdyBkaXNrIHJlbW92ZWQu DQoNClNpZ25lZC1vZmYtYnk6IEppYW5wZW5nIE1hIDxtYWppYW5wZW5nQGdtYWlsLmNvbT4NCi0t LQ0KIGJsb2NrL2dlbmhkLmMgfCA2ICsrKysrKw0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlv bnMoKykNCg0KZGlmZiAtLWdpdCBhL2Jsb2NrL2dlbmhkLmMgYi9ibG9jay9nZW5oZC5jDQppbmRl eCBkYWRmNDJiLi45YTRjMjQ1IDEwMDY0NA0KLS0tIGEvYmxvY2svZ2VuaGQuYw0KKysrIGIvYmxv Y2svZ2VuaGQuYw0KQEAgLTEzNjksNiArMTM2OSwxMiBAQCBpbnQgaW52YWxpZGF0ZV9wYXJ0aXRp b24oc3RydWN0IGdlbmRpc2sgKmRpc2ssIGludCBwYXJ0bm8pDQogCWlmIChiZGV2KSB7DQogCQlm c3luY19iZGV2KGJkZXYpOw0KIAkJcmVzID0gX19pbnZhbGlkYXRlX2RldmljZShiZGV2LCB0cnVl KTsNCisJCS8qDQorCQkgKiBXaGVuIHVzZWQgYnVmZmVyLW1vZGUgb24gcmF3IGJsb2NrZGV2aWNl LHRoZSBkaXNrIHJlbW92ZWQuDQorCQkgKiBCdXQgdGhlIHZmcyBkb24ndCBrbm93LlNvIHRlbGwg dGhlIHZmcyBzaXplIG9mIGRpc2sNCisJCSAqIGJlY2FtZSB6ZXJvLCB0aGUgYnVmZmVyIHdyaXRl IGNhbiByZXR1cm4NCisJCSAqLw0KKwkJaV9zaXplX3dyaXRlKGJkZXYtPmJkX2lub2RlLCAwKTsN CiAJCWJkcHV0KGJkZXYpOw0KIAl9DQogCXJldHVybiByZXM7DQotLSANCjEuOC40LXJjMA0K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752320Ab3IQDWO (ORCPT ); Mon, 16 Sep 2013 23:22:14 -0400 Received: from mail-pb0-f52.google.com ([209.85.160.52]:60799 "EHLO mail-pb0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752268Ab3IQDWJ (ORCPT ); Mon, 16 Sep 2013 23:22:09 -0400 Date: Tue, 17 Sep 2013 11:22:01 +0800 From: majianpeng To: axboe , viro Cc: LKML , linux-fsdevel Reply-To: majianpeng Subject: [PATCH V2 1/2] block: Set inode of block_device size to zero when delete gendisk. X-Priority: 3 X-GUID: AAF89344-1C0F-4746-870F-F77EC00E3D87 X-Has-Attach: no X-Mailer: Foxmail 7.0.1.93[cn] Mime-Version: 1.0 Message-ID: <201309171121587796647@gmail.com> Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id r8H3MRwo008940 When remove gendisk, set the size of inode of block_device to zero. This is mainly let the vfs know disk removed. Signed-off-by: Jianpeng Ma --- block/genhd.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/block/genhd.c b/block/genhd.c index dadf42b..9a4c245 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -1369,6 +1369,12 @@ int invalidate_partition(struct gendisk *disk, int partno) if (bdev) { fsync_bdev(bdev); res = __invalidate_device(bdev, true); + /* + * When used buffer-mode on raw blockdevice,the disk removed. + * But the vfs don't know.So tell the vfs size of disk + * became zero, the buffer write can return + */ + i_size_write(bdev->bd_inode, 0); bdput(bdev); } return res; -- 1.8.4-rc0 {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I