From mboxrd@z Thu Jan 1 00:00:00 1970 From: majianpeng Subject: [PATCH 2/2] block_dev: Add size check before doing async write on block device. Date: Wed, 11 Sep 2013 19:00:34 +0800 Message-ID: <201309111900317069315@gmail.com> Reply-To: majianpeng Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 Cc: linux-fsdevel , LKML To: axboe , viro Return-path: Received: from mail-pb0-f52.google.com ([209.85.160.52]:49905 "EHLO mail-pb0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754400Ab3IKLAp (ORCPT ); Wed, 11 Sep 2013 07:00:45 -0400 Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Rm9yIGFzeW5jLXdyaXRlIG9uIGJsb2NrIGRldmljZSx3aGVuIGRpc2sgcmVtb3ZlZCx0aGUgdmZz IGRvbid0IGtub3cuDQpJdCB3aWxsIGNvbnRpbnVlIGRvIGFzeW5jLXdyaXRlLkFkZCB0aGlzIGNo ZWNrIGl0IHdpbGwgc3RvcCBhc3luYy13cml0ZQ0Kd2hlbiBkaXNrIHJlbW92ZWQuDQoNClNpZ25l ZC1vZmYtYnk6IEppYW5wZW5nIE1hIDxtYWppYW5wZW5nQGdtYWlsLmNvbT4NCi0tLQ0KIGZzL2Js b2NrX2Rldi5jIHwgNCArKysrDQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQ0KDQpk aWZmIC0tZ2l0IGEvZnMvYmxvY2tfZGV2LmMgYi9mcy9ibG9ja19kZXYuYw0KaW5kZXggMTE3M2E0 ZS4uZTMwOGI1MiAxMDA2NDQNCi0tLSBhL2ZzL2Jsb2NrX2Rldi5jDQorKysgYi9mcy9ibG9ja19k ZXYuYw0KQEAgLTE1MTQsNiArMTUxNCwxMCBAQCBzc2l6ZV90IGJsa2Rldl9haW9fd3JpdGUoc3Ry dWN0IGtpb2NiICppb2NiLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwNCiAJc3RydWN0IGZpbGUg KmZpbGUgPSBpb2NiLT5raV9maWxwOw0KIAlzdHJ1Y3QgYmxrX3BsdWcgcGx1ZzsNCiAJc3NpemVf dCByZXQ7DQorCWxvZmZfdCBzaXplID0gaV9zaXplX3JlYWQoZmlsZS0+Zl9tYXBwaW5nLT5ob3N0 KTsNCisNCisJaWYgKHBvcyA+PSBzaXplKQ0KKwkJcmV0dXJuIDA7DQogDQogCUJVR19PTihpb2Ni LT5raV9wb3MgIT0gcG9zKTsNCiANCi0tIA0KMS44LjQtcmMwDQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754472Ab3IKLAs (ORCPT ); Wed, 11 Sep 2013 07:00:48 -0400 Received: from mail-pb0-f52.google.com ([209.85.160.52]:49905 "EHLO mail-pb0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754400Ab3IKLAp (ORCPT ); Wed, 11 Sep 2013 07:00:45 -0400 Date: Wed, 11 Sep 2013 19:00:34 +0800 From: majianpeng To: axboe , viro Cc: linux-fsdevel , LKML Reply-To: majianpeng Subject: [PATCH 2/2] block_dev: Add size check before doing async write on block device. X-Priority: 3 X-GUID: AF3F4965-20D3-4453-BED0-EB197C91FFF8 X-Has-Attach: no X-Mailer: Foxmail 7.0.1.93[cn] Mime-Version: 1.0 Message-ID: <201309111900317069315@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 r8BB0w5r004175 For async-write on block device,when disk removed,the vfs don't know. It will continue do async-write.Add this check it will stop async-write when disk removed. Signed-off-by: Jianpeng Ma --- fs/block_dev.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/block_dev.c b/fs/block_dev.c index 1173a4e..e308b52 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -1514,6 +1514,10 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov, struct file *file = iocb->ki_filp; struct blk_plug plug; ssize_t ret; + loff_t size = i_size_read(file->f_mapping->host); + + if (pos >= size) + return 0; BUG_ON(iocb->ki_pos != pos); -- 1.8.4-rc0 {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I