{"id":712969,"url":"http://patchwork.ozlabs.org/api/patches/712969/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/x49r34bgba5.fsf@segfault.boston.devel.redhat.com/","project":{"id":2,"url":"http://patchwork.ozlabs.org/api/projects/2/?format=json","name":"Linux PPC development","link_name":"linuxppc-dev","list_id":"linuxppc-dev.lists.ozlabs.org","list_email":"linuxppc-dev@lists.ozlabs.org","web_url":"https://github.com/linuxppc/wiki/wiki","scm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git","webscm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/","list_archive_url":"https://lore.kernel.org/linuxppc-dev/","list_archive_url_format":"https://lore.kernel.org/linuxppc-dev/{}/","commit_url_format":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}"},"msgid":"<x49r34bgba5.fsf@segfault.boston.devel.redhat.com>","list_archive_url":"https://lore.kernel.org/linuxppc-dev/x49r34bgba5.fsf@segfault.boston.devel.redhat.com/","date":"2017-01-09T21:42:58","name":"direct-io: don't introduce another read of inode->i_blkbits","commit_ref":null,"pull_url":null,"state":"not-applicable","archived":false,"hash":"0830309f45addb14d11d1fc319df3773311a8e9e","submitter":{"id":1047,"url":"http://patchwork.ozlabs.org/api/people/1047/?format=json","name":"Jeff Moyer","email":"jmoyer@redhat.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/x49r34bgba5.fsf@segfault.boston.devel.redhat.com/mbox/","series":[],"comments":"http://patchwork.ozlabs.org/api/patches/712969/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/712969/checks/","tags":{},"related":[],"headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3ty7vn2vPtz9ry7\n\tfor <patchwork-incoming@ozlabs.org>;\n\tTue, 10 Jan 2017 08:44:05 +1100 (AEDT)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3ty7vn286kzDqN7\n\tfor <patchwork-incoming@ozlabs.org>;\n\tTue, 10 Jan 2017 08:44:05 +1100 (AEDT)","from mx1.redhat.com (mx1.redhat.com [209.132.183.28])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3ty7tZ05kpzDqMB\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tTue, 10 Jan 2017 08:43:01 +1100 (AEDT)","from int-mx10.intmail.prod.int.phx2.redhat.com\n\t(int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 173F66830;\n\tMon,  9 Jan 2017 21:43:00 +0000 (UTC)","from segfault.boston.devel.redhat.com\n\t(segfault.boston.devel.redhat.com [10.19.60.26])\n\tby int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with\n\tESMTP id v09LgwRZ012102\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256\n\tverify=NO); Mon, 9 Jan 2017 16:42:59 -0500"],"From":"Jeff Moyer <jmoyer@redhat.com>","To":"axboe@kernel.dk, Chandan Rajendra <chandan@linux.vnet.ibm.com>","Subject":"[PATCH] direct-io: don't introduce another read of inode->i_blkbits","References":"<1483886830-23878-1-git-send-email-chandan@linux.vnet.ibm.com>","X-PGP-KeyID":"1F78E1B4","X-PGP-CertKey":"F6FE 280D 8293 F72C 65FD  5A58 1FF8 A7CA 1F78 E1B4","X-PCLoadLetter":"What the f**k does that mean?","Date":"Mon, 09 Jan 2017 16:42:58 -0500","In-Reply-To":"<1483886830-23878-1-git-send-email-chandan@linux.vnet.ibm.com>\n\t(Chandan Rajendra's message of \"Sun, 8 Jan 2017 20:17:10 +0530\")","Message-ID":"<x49r34bgba5.fsf@segfault.boston.devel.redhat.com>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)","MIME-Version":"1.0","Content-Type":"text/plain","X-Scanned-By":"MIMEDefang 2.68 on 10.5.11.23","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.39]); Mon, 09 Jan 2017 21:43:00 +0000 (UTC)","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"jack@suse.cz, linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, \n\tanton@samba.org, linux-fsdevel@vger.kernel.org,\n\tlinuxppc-dev@lists.ozlabs.org","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"},"content":"Commit 20ce44d545844 (\"do_direct_IO: Use inode->i_blkbits to compute\nblock count to be cleaned\") introduced a regression: if the block size\nof the block device is changed while a direct I/O request is being\nsetup, it can result in a panic.  See commit ab73857e354ab (\"direct-io:\ndon't read inode->i_blkbits multiple times\") for the reasoning, and\ncommit b87570f5d3496 (\"Fix a crash when block device is read and block\nsize is changed at the same time\") for a more detailed problem\ndescription and reproducer.\n\nFixes: 20ce44d545844\nSigned-off-by: Jeff Moyer <jmoyer@redhat.com>\n\n---\nChandan, can you please test this to ensure this still fixes your problem?","diff":"diff --git a/fs/direct-io.c b/fs/direct-io.c\nindex b20adf9..c87bae4 100644\n--- a/fs/direct-io.c\n+++ b/fs/direct-io.c\n@@ -905,8 +905,8 @@ static inline void dio_zero_block(struct dio *dio, struct dio_submit *sdio,\n static int do_direct_IO(struct dio *dio, struct dio_submit *sdio,\n \t\t\tstruct buffer_head *map_bh)\n {\n-\tconst unsigned i_blkbits = dio->inode->i_blkbits;\n \tconst unsigned blkbits = sdio->blkbits;\n+\tconst unsigned i_blkbits = blkbits + sdio->blkfactor;\n \tint ret = 0;\n \n \twhile (sdio->block_in_file < sdio->final_block_in_request) {\n","prefixes":[]}