Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1213376pxf; Fri, 12 Mar 2021 04:52:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJzrjBORRypmgFHgekTtokHDuV8Kw+28zf0nrLjrf74upkUgvW5K28hrP7NQsilfMC+0Bgl1 X-Received: by 2002:a17:906:7f84:: with SMTP id f4mr8068704ejr.525.1615553565365; Fri, 12 Mar 2021 04:52:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615553565; cv=none; d=google.com; s=arc-20160816; b=mBU/wEdkmL6WegMUVSeYminYdD1R2xRR2+IycN0wMI/ln14iTytOQGLEGIP4m1dJli 41Q8zOYC261eLn0YciIlcnzwWvEGjU1vIX41FTO5lcDaM6GnWN+VvhLvyimNxRUt9Dog vjY1yXTZRnB51GOQ8inyVPIVUMZ55SGx1hLWtvHcIUZF1syrwLsd4KtD4OeYUZ5t7X4t DWpqQ8AOJ9Hmi+7zDxc8lrrg/bZJSmSWQLWh6us1qHFacFtopMJgF1oqd4/i5jl7mGMo WkKuM47RLLqQ57InyeL17bLakaNT+hOB85Ar2c+jQd0owmkpfff2Sq7/gDVk9U35aOsP SLOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=rc5MnB3o8mDStZ+k7KeMLTqybhKvKSkrmD/cFDDKlqs=; b=ZyUIrTNnY6WFnZLjaXEyKz8KkQqXnx5UZmg1zwjBThIkDprTJd6UJow7wgyE3RZ6mc 9PDVgxvv0UCMYK/gyZwtlLi5Zkzgph/gRa5TcR0sExClBKDAJkypq9ggOImYg1bAn5Ud lA5IduJgH9MP1Qwi65PErRLEXtBhbAalQGjUdPjnvCEvJ4Zk/zu1JChtgd2fbmbugi0V JTYuiZMGTb5mCueBIPgUGZSl6OZudwfjnYyDaPxKUyAiLCploGkcglPf4470Lzx+pf7T HwtlJpAlKkY/RRJWUSIxcvaIuwA9uO1YKOwYdOqkXPkSLK8RKn30Ccvpzd+u/mZ0o5Dv Ndog== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k1si3950113ejp.353.2021.03.12.04.52.18; Fri, 12 Mar 2021 04:52:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231289AbhCLMvP (ORCPT + 99 others); Fri, 12 Mar 2021 07:51:15 -0500 Received: from mx2.suse.de ([195.135.220.15]:48106 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232100AbhCLMu5 (ORCPT ); Fri, 12 Mar 2021 07:50:57 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id BE2EDB0D2; Fri, 12 Mar 2021 12:50:56 +0000 (UTC) Received: by quack2.suse.cz (Postfix, from userid 1000) id 6066E1F2C4B; Fri, 12 Mar 2021 13:50:55 +0100 (CET) Date: Fri, 12 Mar 2021 13:50:55 +0100 From: Jan Kara To: Shijie Luo Cc: linux-ext4@vger.kernel.org, tytso@mit.edu, jack@suse.cz Subject: Re: [PATCH] ext4: fix potential error in ext4_do_update_inode Message-ID: <20210312125055.GB31816@quack2.suse.cz> References: <20210312065051.36314-1-luoshijie1@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210312065051.36314-1-luoshijie1@huawei.com> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org On Fri 12-03-21 01:50:51, Shijie Luo wrote: > If set_large_file = 1 and errors occur in ext4_handle_dirty_metadata(), > the error code will be overridden, go to out_brelse to avoid this > situation. > > Signed-off-by: Shijie Luo Yeah, looks good. Once ext4_handle_dirty_metadata() fails, the journal is aborted anyway so we are unlikely to do anything useful with the filesystem. Feel free to add: Reviewed-by: Jan Kara Honza > --- > fs/ext4/inode.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index 650c5acd2f2d..8074ae0e976d 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -5026,7 +5026,7 @@ static int ext4_do_update_inode(handle_t *handle, > struct ext4_inode_info *ei = EXT4_I(inode); > struct buffer_head *bh = iloc->bh; > struct super_block *sb = inode->i_sb; > - int err = 0, rc, block; > + int err = 0, block; > int need_datasync = 0, set_large_file = 0; > uid_t i_uid; > gid_t i_gid; > @@ -5138,9 +5138,9 @@ static int ext4_do_update_inode(handle_t *handle, > bh->b_data); > > BUFFER_TRACE(bh, "call ext4_handle_dirty_metadata"); > - rc = ext4_handle_dirty_metadata(handle, NULL, bh); > - if (!err) > - err = rc; > + err = ext4_handle_dirty_metadata(handle, NULL, bh); > + if (err) > + goto out_brelse; > ext4_clear_inode_state(inode, EXT4_STATE_NEW); > if (set_large_file) { > BUFFER_TRACE(EXT4_SB(sb)->s_sbh, "get write access"); > -- > 2.19.1 > -- Jan Kara SUSE Labs, CR