From mboxrd@z Thu Jan 1 00:00:00 1970 From: majianpeng Subject: Re: Re: [PATCH V2 0/2] Auto stop async-write on block device when device removed. Date: Tue, 24 Sep 2013 11:07:34 +0800 Message-ID: <201309241107330800706@gmail.com> References: <201309171121559232246@gmail.com>, Reply-To: majianpeng Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Cc: axboe , viro , LKML , linux-fsdevel To: "Jeff Moyer" Return-path: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org Pm1hamlhbnBlbmcgPG1hamlhbnBlbmdAZ21haWwuY29tPiB3cml0ZXM6DQo+DQo+PiBGb3IgYXN5 bmMtd3JpdGUgb24gYmxvY2sgZGV2aWNlLGlmIGRldmljZSByZW1vdmVkLGJ1dCB0aGUgdmZzIGRv bid0IGtub3cgaXQuDQo+PiBJdCB3aWxsIGNvbnRpbnVlIHRvIGRvLg0KPj4gUGF0Y2gxIHNldCBz aXplIG9mIGlub2RlIG9mIGJsb2NrIGRldmljZSB0byB6ZXJvIHdoZW4gcmVtb3ZlZCBkaXNrLkJ5 IHRoaXMsdmZzIGtub3cgDQo+PiBkaXNrIGNoYW5nZWQuDQo+PiBQYXRoMiBhZGQgc2l6ZS1jaGVj ayBvbiBibGtfYWlvX3dyaXRlLklmIHBvcyBvZiB3cml0ZSBsYXJnZXIgdGhhbiBzaXplIG9mIGlu b2RlLGl0IHdpbGwNCj4+IHJldHVybiB6ZXJvLlNvIHRoZSB1c2VyIGNhbiBjaGVjayBkaXNrIHN0 YXRlLg0KPg0KPk9LLCBzbyB0aGUgYmFzaWMgcHJvYmxlbSBpcyB0aGF0IF9fZ2VuZXJpY19maWxl X2Fpb193cml0ZSB3aWxsIGFsd2F5cw0KPnJldHVybiAwIGFmdGVyIGRldmljZSByZW1vdmFsLCB5 ZXM/ICBJJ20gbm90IHN1cmUgd2h5IHRoYXQncyBhIHJlYWwNCj5pc3N1ZSwgY2FuIHlvdSBleHBs YWluIGV4YWN0bHkgd2h5IHlvdSdyZSB0cnlpbmcgdG8gY2hhbmdlIHRoaXM/DQo+DQpBdCBwcmVu c2V0LCB0aGUgX19nZW5lcmljX2ZpbGVfYWlvX3dyaXRlIGRvbid0IHJldHVybiB6ZXJvIHJhdGhl ciB0aGF0IHRoZSB3YW50ZWQgc2l6ZS4NClNvIHRoZSB1c2VyIGNhbid0IGtub3cgdGhlIGRpc2sg cmVtb3ZlZC4gDQpGb3IgZXhhbXBsZToNCmRkIGlmPS9kZXYvemVybyBvZj11c2ItZGlzayBicz02 NGsNCldoZW4gcmVtb3ZlZCB1c2ItZGlzaywgZGQgc3RvcGVkIHVudGlsIHJlYWNoZWQgdGhlIGVu ZG9mIHVzYi1kaXNrLg0KDQpVc2luZyB0aGlzIHBhdGNoLCBhZnRlciByZW1vdmVkIGRpc2ssIHRo ZSBhaW8td3JpdGUgd2lsbCByZXR1cm4gemVyby5JIHRoaW5rIHRoZSB1cHBlciB1c2VyIHdpbGwg Y2hlY2suDQoob3IgaWYgdGhlIHNpemUgb2YgYmxvY2sgaXMgemVybywgd2UgcmV0dXJuIC1FTk9T UEMpLg0KDQo+QXMgZm9yIHlvdXIgcGF0Y2hlcywgSSBkb24ndCB0aGluayB0aGF0IHB1dHRpbmcg dGhlIGlfc2l6ZV93cml0ZSBpbnRvDQo+aW52YWxpZGF0ZV9wYXJ0aXRpb25zIGlzIGEgZ29vZCBp ZGVhLiAgQ29uc2lkZXIgdGhlIGNhc2Ugb2YgcmVzY2FubmluZw0KPnBhcnRpdGlvbnM6IHlvdSB3 aWxsIGFsd2F5cyBkZXRlY3QgYSBzaXplIGNoYW5nZSBub3csIHdoaWNoIGlzIG5vdCBnb29kLg0K Pg0KWWVzLkJ1dCBpbiBmdW5jIHJlc2Nhbl9wYXJ0aXRpb25zLCBhZnRlciBpbnZhbGlkYXRlX3Bh cnRpdGlvbnMgaXQgd2lsbCBjYWxsIGNoZWNrX2Rpc2tfc2l6ZV9jaGFuZ2UgdG8gc2V0IHNpemUg b2YgYmxvY2tfZGV2aWNlLg0KDQpUaGFua3MhDQpKaWFucGVuZyBNYQ0KPkNoZWVycywNCj5KZWZm From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753545Ab3IXDHm (ORCPT ); Mon, 23 Sep 2013 23:07:42 -0400 Received: from mail-pb0-f48.google.com ([209.85.160.48]:35550 "EHLO mail-pb0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753414Ab3IXDHj (ORCPT ); Mon, 23 Sep 2013 23:07:39 -0400 Date: Tue, 24 Sep 2013 11:07:34 +0800 From: majianpeng To: "Jeff Moyer" Cc: axboe , viro , LKML , linux-fsdevel Reply-To: majianpeng Subject: Re: Re: [PATCH V2 0/2] Auto stop async-write on block device when device removed. References: <201309171121559232246@gmail.com>, X-Priority: 3 X-GUID: 46F2D491-3347-40D6-A70C-25F557B45431 X-Has-Attach: no X-Mailer: Foxmail 7.0.1.93[cn] Mime-Version: 1.0 Message-ID: <201309241107330800706@gmail.com> Content-Type: text/plain; charset="gb2312" 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 r8O37lsK022964 >majianpeng writes: > >> For async-write on block device,if device removed,but the vfs don't know it. >> It will continue to do. >> Patch1 set size of inode of block device to zero when removed disk.By this,vfs know >> disk changed. >> Path2 add size-check on blk_aio_write.If pos of write larger than size of inode,it will >> return zero.So the user can check disk state. > >OK, so the basic problem is that __generic_file_aio_write will always >return 0 after device removal, yes? I'm not sure why that's a real >issue, can you explain exactly why you're trying to change this? > At prenset, the __generic_file_aio_write don't return zero rather that the wanted size. So the user can't know the disk removed. For example: dd if=/dev/zero of=usb-disk bs=64k When removed usb-disk, dd stoped until reached the endof usb-disk. Using this patch, after removed disk, the aio-write will return zero.I think the upper user will check. (or if the size of block is zero, we return -ENOSPC). >As for your patches, I don't think that putting the i_size_write into >invalidate_partitions is a good idea. Consider the case of rescanning >partitions: you will always detect a size change now, which is not good. > Yes.But in func rescan_partitions, after invalidate_partitions it will call check_disk_size_change to set size of block_device. Thanks! Jianpeng Ma >Cheers, >Jeff{.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I