From patchwork Mon Mar 21 11:31:27 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: fangwei X-Patchwork-Id: 8631811 Return-Path: X-Original-To: patchwork-linux-fsdevel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 1363AC0553 for ; Mon, 21 Mar 2016 11:28:37 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 4C91E202B8 for ; Mon, 21 Mar 2016 11:28:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4A06B20204 for ; Mon, 21 Mar 2016 11:28:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754825AbcCUL2c (ORCPT ); Mon, 21 Mar 2016 07:28:32 -0400 Received: from szxga01-in.huawei.com ([58.251.152.64]:40582 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753690AbcCUL2b (ORCPT ); Mon, 21 Mar 2016 07:28:31 -0400 Received: from 172.24.1.50 (EHLO SZXEML424-HUB.china.huawei.com) ([172.24.1.50]) by szxrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id DHJ22921; Mon, 21 Mar 2016 19:28:23 +0800 (CST) Received: from localhost.localdomain (10.175.100.166) by SZXEML424-HUB.china.huawei.com (10.82.67.153) with Microsoft SMTP Server id 14.3.235.1; Mon, 21 Mar 2016 19:28:13 +0800 From: Wei Fang To: CC: , , Wei Fang Subject: [PATCH RESEND] bfs: fix i_blocks accounting Date: Mon, 21 Mar 2016 19:31:27 +0800 Message-ID: <1458559887-28854-1-git-send-email-fangwei1@huawei.com> X-Mailer: git-send-email 1.7.1 MIME-Version: 1.0 X-Originating-IP: [10.175.100.166] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020204.56EFDADB.0015, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=0.0.0.0, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 63e02d66fb68a37a50f0d64ffab8f938 Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Update inode->i_blocks if succeed to get block, otherwise we'll get wrong number of blocks. Signed-off-by: Wei Fang --- fs/bfs/file.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/fs/bfs/file.c b/fs/bfs/file.c index 97f1b51..f89abdb 100644 --- a/fs/bfs/file.c +++ b/fs/bfs/file.c @@ -108,6 +108,7 @@ static int bfs_get_block(struct inode *inode, sector_t block, map_bh(bh_result, sb, phys); info->si_freeb -= phys - bi->i_eblock; info->si_lf_eblk = bi->i_eblock = phys; + inode->i_blocks = block + 1; mark_inode_dirty(inode); err = 0; goto out; @@ -141,7 +142,8 @@ static int bfs_get_block(struct inode *inode, sector_t block, * This assumes nothing can write the inode back while we are here * and thus update inode->i_blocks! (XXX) */ - info->si_freeb -= bi->i_eblock - bi->i_sblock + 1 - inode->i_blocks; + info->si_freeb -= block + 1 - inode->i_blocks; + inode->i_blocks = block + 1; mark_inode_dirty(inode); map_bh(bh_result, sb, phys); out: