From nobody Sun Feb 8 05:29:03 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 92E1470838; Thu, 6 Mar 2025 14:33:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741271635; cv=none; b=DX6UD8VqjdrYgikj7Ogv3VNnFXPmLbhKgfytsW1/BlLqy3GzXVZewM15kG8SVGEtoAYl4yDoBO1QUKCeTB5Dex9Ndk3mxilMGCeyQwmslOgX2e6C9hRveIpvBfRnZEQTisjCcD1VhdmqwZ48OzNzl20EEdOXmHF0eINCgg+w4kA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741271635; c=relaxed/simple; bh=qn+Q4R8xmza2/HuURHifnHLxdVN9qRs1gbeu463GcfU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PxX+BURM4E8ozuW34dJ6TjABdq13BAEhZZddChCMRhUkLKmOMJZDHyKDswVWolBTuWrWZ0YbyhTSWytL7UMKg40+/s4Xr3zEOPZ2910Ib3yYFbqHd38MXVmhjd01IewWqLo+nET6Ze5QD43zc8qV+JEpxf5YDErVKZkhRIpxazg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=nibIzvwe; arc=none smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="nibIzvwe" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 526CRxGl004987; Thu, 6 Mar 2025 14:28:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=O1fqfThBREakYnxcs 61CqVK2DcvqO0Isib51TQQh8Mc=; b=nibIzvweckOueVZQ5uRAN4Gjgnun90Bl9 ybrbDjJemH1RBSma7KS71caX3xjRAgJjV95NwbHNG24oVJzmUeCM5TTNdnM9Y0pV 5QlltyC0FsObeY8+XQeHtyWQm6Gh3ILcJw1Hym9pq8WBoOa4TBkiZFD6Wi9aWYRm 6QwVGNaUspdc7+5e7nG2caTnKW3bou41wS87RCY7UFiljgeS+A4rT5SggiqbvK+Q f3OojN6kgY3hOPtgSTqMFz1thBoRDmF4xYXbdfXTS8R+5436yB0Tsk9Xzuctrn7o OGk7bLb4kjQK445koCnm/qEu8YRKsfJYyXrRVw5FIk8XvRbGEvSbg== Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 457br2rn0m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 06 Mar 2025 14:28:42 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 526CQKPn020846; Thu, 6 Mar 2025 14:28:41 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 454djns6wc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 06 Mar 2025 14:28:41 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 526ESdgZ45154618 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 6 Mar 2025 14:28:39 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9B7932004B; Thu, 6 Mar 2025 14:28:39 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 186D720040; Thu, 6 Mar 2025 14:28:38 +0000 (GMT) Received: from li-dc0c254c-257c-11b2-a85c-98b6c1322444.in.ibm.com (unknown [9.109.219.249]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 6 Mar 2025 14:28:37 +0000 (GMT) From: Ojaswin Mujoo To: linux-ext4@vger.kernel.org, "Theodore Ts'o" Cc: Jan Kara , Baokun Li , linux-kernel@vger.kernel.org Subject: [PATCH v2 1/3] ext4: define ext4_journal_destroy wrapper Date: Thu, 6 Mar 2025 19:58:32 +0530 Message-ID: <96d5153a015caf5da6b67cffaff3c03c2abecb95.1741270780.git.ojaswin@linux.ibm.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: T--Q_-Uwm6khzEAak0YD-PJpTmvdZ19Y X-Proofpoint-ORIG-GUID: T--Q_-Uwm6khzEAak0YD-PJpTmvdZ19Y X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1093,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-06_05,2025-03-06_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 mlxscore=0 spamscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 mlxlogscore=776 malwarescore=0 suspectscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2502100000 definitions=main-2503060110 Content-Type: text/plain; charset="utf-8" Define an ext4 wrapper over jbd2_journal_destroy to make sure we have consistent behavior during journal destruction. This will also come useful in the next patch where we add some ext4 specific logic in the destroy path. Signed-off-by: Ojaswin Mujoo Reviewed-by: Baokun Li Reviewed-by: Jan Kara --- fs/ext4/ext4_jbd2.h | 14 ++++++++++++++ fs/ext4/super.c | 16 ++++++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/fs/ext4/ext4_jbd2.h b/fs/ext4/ext4_jbd2.h index 3f2596c9e5f2..9b3c9df02a39 100644 --- a/fs/ext4/ext4_jbd2.h +++ b/fs/ext4/ext4_jbd2.h @@ -429,4 +429,18 @@ static inline int ext4_should_dioread_nolock(struct in= ode *inode) return 1; } =20 +/* + * Pass journal explicitly as it may not be cached in the sbi->s_journal i= n some + * cases + */ +static inline int ext4_journal_destroy(struct ext4_sb_info *sbi, journal_t= *journal) +{ + int err =3D 0; + + err =3D jbd2_journal_destroy(journal); + sbi->s_journal =3D NULL; + + return err; +} + #endif /* _EXT4_JBD2_H */ diff --git a/fs/ext4/super.c b/fs/ext4/super.c index a963ffda692a..8ad664d47806 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -1297,8 +1297,7 @@ static void ext4_put_super(struct super_block *sb) =20 if (sbi->s_journal) { aborted =3D is_journal_aborted(sbi->s_journal); - err =3D jbd2_journal_destroy(sbi->s_journal); - sbi->s_journal =3D NULL; + err =3D ext4_journal_destroy(sbi, sbi->s_journal); if ((err < 0) && !aborted) { ext4_abort(sb, -err, "Couldn't clean up the journal"); } @@ -4960,8 +4959,7 @@ static int ext4_load_and_init_journal(struct super_bl= ock *sb, out: /* flush s_sb_upd_work before destroying the journal. */ flush_work(&sbi->s_sb_upd_work); - jbd2_journal_destroy(sbi->s_journal); - sbi->s_journal =3D NULL; + ext4_journal_destroy(sbi, sbi->s_journal); return -EINVAL; } =20 @@ -5652,8 +5650,7 @@ failed_mount8: __maybe_unused if (sbi->s_journal) { /* flush s_sb_upd_work before journal destroy. */ flush_work(&sbi->s_sb_upd_work); - jbd2_journal_destroy(sbi->s_journal); - sbi->s_journal =3D NULL; + ext4_journal_destroy(sbi, sbi->s_journal); } failed_mount3a: ext4_es_unregister_shrinker(sbi); @@ -5958,7 +5955,7 @@ static journal_t *ext4_open_dev_journal(struct super_= block *sb, return journal; =20 out_journal: - jbd2_journal_destroy(journal); + ext4_journal_destroy(EXT4_SB(sb), journal); out_bdev: bdev_fput(bdev_file); return ERR_PTR(errno); @@ -6075,8 +6072,7 @@ static int ext4_load_journal(struct super_block *sb, EXT4_SB(sb)->s_journal =3D journal; err =3D ext4_clear_journal_err(sb, es); if (err) { - EXT4_SB(sb)->s_journal =3D NULL; - jbd2_journal_destroy(journal); + ext4_journal_destroy(EXT4_SB(sb), journal); return err; } =20 @@ -6094,7 +6090,7 @@ static int ext4_load_journal(struct super_block *sb, return 0; =20 err_out: - jbd2_journal_destroy(journal); + ext4_journal_destroy(EXT4_SB(sb), journal); return err; } =20 --=20 2.48.1