Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp5278569imd; Tue, 30 Oct 2018 15:01:03 -0700 (PDT) X-Google-Smtp-Source: AJdET5erRgiFYUhhA4c5/QN0YGvkkKFnD1At7dtzYjU/0b1yRYvh2Y5pTGe7+K/k0kBE/nKYBpTn X-Received: by 2002:a62:99cd:: with SMTP id t74-v6mr452617pfk.179.1540936863412; Tue, 30 Oct 2018 15:01:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540936863; cv=none; d=google.com; s=arc-20160816; b=WRGwP4HZ0QD0munbXx4yA/E1NcYc39m28RRzTOlYMlh1MgV21BgZywRVCgPyqVI74o 1I39n9Yac7553EVN9ROLWo5ONnF+95CCFtBSQsjbXIjGUi/UsOqhGT3I5aVJ0k4ErrfI 1iFyPtnGTbB9Itl4mmf+I0zBzoNpeFqmY3r7wtaGLVErqPlQd2GizPNiMY1DAc4iZ5to dVotDM7nDXr+xEi+xKLMcinDklGHGrblARf/ZJ+CcMzjUJGZ7Pt74oQwRVqOo7/QjBh/ LEB1y6JB8hVac2WNvhCbZFruwBC7VTaySQdw0eCkdkQm9YHBJnR0pjkAKEqO8BVX94vo UULQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:references:cc:to:subject:from; bh=s0oc1LGiZfh3qjdan/MBY9ngSF17sKfOShnTGbB8DU8=; b=EgpcEbkRxGoLgTw4BYAyCwgxQJclDA2ySf0N9/r1JeQ9cX4sfUqgV/VpTrSE9+S4Wk GgJJuL8ICy3pSHu5nd7NCY9bORtumG5lB/ucxxA/GbqvUISYk9MCiAQ/+yApoEK1CFCm 9pidvrJUe15QF3J1k4tAxZNdPT+oybmZfspRVSFHE7DJSWT5itspCS8G5I3qKM1C4Bok CAuzBpN7hfaehSG0B5YQu0PIdoDPn/aCVxS0aa13R29ksbG12t4FHA11PM7ZBO6z/zGG rihkl2zcoiDeofS3AMwk6q5yR3GEI1j/Z8C86HQgjDRZgvY6dhM9y5W3Vqb7/8exDE9/ MJvg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b9-v6si25204128pgh.440.2018.10.30.15.00.47; Tue, 30 Oct 2018 15:01:03 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728339AbeJaGxx (ORCPT + 99 others); Wed, 31 Oct 2018 02:53:53 -0400 Received: from relay.sw.ru ([185.231.240.75]:46002 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725743AbeJaGxx (ORCPT ); Wed, 31 Oct 2018 02:53:53 -0400 Received: from [172.16.24.21] by relay.sw.ru with esmtp (Exim 4.90_1) (envelope-from ) id 1gHc23-0003hD-HS; Wed, 31 Oct 2018 00:58:39 +0300 From: Vasily Averin Subject: [PATCH v2 09/11] ext4: iloc.bh cleanup in add_new_gdb() To: linux-ext4@vger.kernel.org, Theodore Ts'o Cc: Andreas Dilger , linux-kernel@vger.kernel.org References: Message-ID: Date: Wed, 31 Oct 2018 00:58:38 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org iloc.bh was taken in ext4_reserve_inode_write() and released in ext4_mark_iloc_dirty(). It should not be released 2nd time in rollback after failed ext4_handle_dirty_metadata(gdb_bh) Fixes b40971426a83 ("ext4: add error checking to calls to ...") # 2.6.38 Signed-off-by: Vasily Averin --- fs/ext4/resize.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index 85158e9de7c2..aedfd6a6fcd1 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c @@ -871,7 +871,7 @@ static int add_new_gdb(handle_t *handle, struct inode *inode, err = ext4_handle_dirty_metadata(handle, NULL, gdb_bh); if (unlikely(err)) { ext4_std_error(sb, err); - goto exit_inode; + goto exit_kfree; } brelse(dind); @@ -891,8 +891,9 @@ static int add_new_gdb(handle_t *handle, struct inode *inode, return err; exit_inode: - kvfree(n_group_desc); brelse(iloc.bh); +exit_kfree: + kvfree(n_group_desc); exit_dind: brelse(dind); exit_bh: -- 2.17.1