From nobody Sun Feb 8 12:45:39 2026 Received: from mail-pg1-f182.google.com (mail-pg1-f182.google.com [209.85.215.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A4ACC218E87; Fri, 20 Dec 2024 15:17:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707825; cv=none; b=HqjttSiMBN0subtFcOX/uS9SuZNL+Z1B6VU0o+DaIU6JYh4j6TzuUMUjcHj1rtDFy1VtZjgEB8qPyzo6aNeBsb9o+sWeUYVH9nRnMGNTBuFipHIKnadJG+3kEZmhEyUKq3io1Qvs+T7xV+3/6W95/56mN/3UKdkAwMfkgXwvTG4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707825; c=relaxed/simple; bh=LFGPybYm2V3jVyeVbkh7idpIzCoDSXd9+gy/Nu7TZ5U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=R7uC0zvvmYZzQHhfcMRiwUoFDn1mS575iMVCRl5RgMqB50OE7f+N17JR7b4qIjpYN0Rdd3u316QZFSBufEMaxIlCNNOorJuTYgtYGr09dO7RuT5uVfYcyIBk5wHlVrfxlIntLxtAs0W7t7eaKyAF9Y/veWwAERPzBUxvJ3A95is= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=kBWVae72; arc=none smtp.client-ip=209.85.215.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kBWVae72" Received: by mail-pg1-f182.google.com with SMTP id 41be03b00d2f7-7fd2ff40782so1843941a12.2; Fri, 20 Dec 2024 07:17:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734707822; x=1735312622; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WFfluVbnn8slxhL1v/+StR1z4j1VEm6SfObplg+iF7k=; b=kBWVae72yoeFbXAXF5PE3Wd3fLF/z9hGwuUN7AQUYtY//stPPZnzEfaMdUp1aJJQa2 Zil51cdHdpWx0m3XJl6eFZmU5EDc2TVWQ+Zg8k/XVG67m7ohjqCGa/nbUSfFEyihslqX i26zEv4cb67dTGxA0TzJUBZaUEqgKYl5OgZcOaq6+nRBhrbVmLvqFU2n25jgDKn+J2kA +QeIvbpx80jPaskQHUmDzitAyTEFVi2dpJ1FJX+EBIivwIDVbSAK2jUNDPqUDTqHLoHM yzgpLzb9hWLIjJgHiP/qQTPYmy7WZXO7Cceb6q1nZxWH5rSEdtZ9EiG/TojDEJosWRPW /jVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734707822; x=1735312622; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WFfluVbnn8slxhL1v/+StR1z4j1VEm6SfObplg+iF7k=; b=RDFeIDpqkuSIHwnldpFCIvo4Wi5kqwPZxUt4dkwBMoiKiNYhsCpsrJH1+B9wmxY53N K7nRRbNo8JHLASwm9pjIW+Wao2Kp0+Ux5q8kdpfc8iOMUmaT6fazLos2OgVwgMjqVytY n9/2DLcGtrCVwL6XoWRYncafn4iE3y2/UVW8jTbV77W8y7ahMzG5IYpdRtSmc+7ptD4+ GE5g/YG1bBZL87gRS4YmSFSEPlGKTwzG7lWZ6zU9e2jf6CoOs3gSYG3q34DWw64qZh1H 0E+uKzkAa75InxtYltqMWgdCpd36yWVmib2srdkdGCmGicRWq7cH17EGRqCslWZQF7gS bPPQ== X-Forwarded-Encrypted: i=1; AJvYcCXIw9mD99sH815AYwjTxSeF1GZ2IWJKFBk3rHrmyKfVE51XlLSqEskBc9kbt7aDcBNgW6tBHsFxMEcCj0o=@vger.kernel.org X-Gm-Message-State: AOJu0Ywqr7mGV6e5A/eCau73QyPGnxnwUy6Lv6Ce3neibo8zHMjJh7cF 4VUAUo6bW4ZeDJS2aRvUbDHPKD/a7IIP3h4GCebmUVbXZZuI6mmU9fsDOwZj1CW7Mg== X-Gm-Gg: ASbGncs8qB/IVKvmnZYFPui7h2tJ0697+i8O+ToGn8m4fUvkBMhbtq+flb5Z9egr6Su +ec/EI+nyKyNegNQhNt3NQnOSn4FoM+7m1sHJdBP2wX9zoG629t+31lNLqgjBCj2jd0w9wxDVVD CXdlvvdkqdggMg/mPvIH9R0IfWWwVBzF/oB1GtV+/pBxLWsi/VWLRxgfKNP3p3F+h1sznqU7PZb sg4ghU2pke5ORK0R23JKqupD2tAoRUn8gtDN5+MOA/MU+In+Z0Qavgg/fIGFeA= X-Google-Smtp-Source: AGHT+IGPULePwkBQH6mX8VmDYU2yUgQe5sktbXvvxha31OhPt7KEoe08vUQzk8U4NlKS3Vfhet5Rgg== X-Received: by 2002:a05:6a20:c70a:b0:1e0:cc4a:caab with SMTP id adf61e73a8af0-1e5e048151dmr5446050637.19.1734707822554; Fri, 20 Dec 2024 07:17:02 -0800 (PST) Received: from localhost ([240e:404:6e10:2b36:20a1:a4d1:f531:7695]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-842dc7ed721sm2975654a12.67.2024.12.20.07.17.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Dec 2024 07:17:02 -0800 (PST) From: Julian Sun To: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org Cc: tytso@mit.edu, adilger.kernel@dilger.ca, jack@suse.cz, boyu.mt@taobao.com, tm@tao.ma, Julian Sun Subject: [PATCH 1/7] ext4: Modify ei->i_flags before calling ext4_mark_iloc_dirty() Date: Fri, 20 Dec 2024 23:16:19 +0800 Message-Id: <20241220151625.19769-2-sunjunchao2870@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20241220151625.19769-1-sunjunchao2870@gmail.com> References: <20241220151625.19769-1-sunjunchao2870@gmail.com> 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 Content-Type: text/plain; charset="utf-8" Modify ei->i_flags before calling ext4_mark_iloc_dirty() so that the modifications to ei->i_flags can be reflected in the raw_inode during the call to ext4_mark_iloc_dirty()->ext4_do_update_inode() Signed-off-by: Julian Sun --- fs/ext4/inline.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 3536ca7e4fcc..d479495d03aa 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -465,11 +465,10 @@ static int ext4_destroy_inline_data_nolock(handle_t *= handle, ext4_clear_inode_flag(inode, EXT4_INODE_INLINE_DATA); =20 get_bh(is.iloc.bh); - error =3D ext4_mark_iloc_dirty(handle, inode, &is.iloc); - EXT4_I(inode)->i_inline_off =3D 0; EXT4_I(inode)->i_inline_size =3D 0; ext4_clear_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA); + error =3D ext4_mark_iloc_dirty(handle, inode, &is.iloc); out: brelse(is.iloc.bh); if (error =3D=3D -ENODATA) --=20 2.39.5 From nobody Sun Feb 8 12:45:39 2026 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 290ED5588F; Fri, 20 Dec 2024 15:17:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707832; cv=none; b=Wew04HWCBEaf2HJJd3Sx04LNfTUYdJjZSsbB8pBIkwhOHQZ4ik5QDYt4/dEcHoty5pMe79xomyE2SATTkYXnUN76t12U3SPa9LaO3kL4VyRsJe1hLoVngJB1etxI0TH+s8cn9h0moyJ7jMddkNmqWrY0kdDI7j6dmFMtg10Vfq0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707832; c=relaxed/simple; bh=RQ3opgir1PEFzPmZf2rLrAHVbdRVZYzBf2fOeqLLhUY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Jn8gZVT7a35cRbF8qP9YNP+U5sazphwKJQPcGzOdiv0qZ8H5UuYpnW2CjKxtx2MOMhjc1ROGsnwtEQSvZ+j/Ay6oWg5ylThyPA5aIJMiLKeo1ommecxmtfB+xfQu/EectnHs2juOUaI+aQCso1fJ5kLCbeyTR1CbDJo8PI4tgjg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TnhiGxn3; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TnhiGxn3" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-216395e151bso13772125ad.0; Fri, 20 Dec 2024 07:17:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734707830; x=1735312630; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nZHfdAZCZo7YK46Du/lwICXtoFhzm0RAbRFQCRrRc/w=; b=TnhiGxn3cpu+x0GwgLQu58GdeernUc1Vw07MdxcDjtE1T+5waKN2pD40NwiZ4fz5Gd 3w3d/8wP4WVAxeSAkfArgTLJeFgQOHYuMr858DppPc4vtw3O7ja5Qy+s97Os5kc6JdV/ 3u7w7CAx+DkwRHdkhFK2gIRIOtiJbCKBgb6X9M7W6Z198QdJeax+eLw76pFcJ3u0fK5K Sb2V8W+MwfxNb1Gt3Llxk7tcmFWA1F++0+aLPKY+c9lTClDTauD5Y8HIc6VI/9TP/f/p qDNkUmJP/35tGXlJX0ch/8b8/ArBMOL4WVCDulGyb2B7kidWyHkrf3nr7BWSMibc3dDm lVZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734707830; x=1735312630; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nZHfdAZCZo7YK46Du/lwICXtoFhzm0RAbRFQCRrRc/w=; b=XeXRDdjbcCgRfB0S7Yi+gAR2x08ReJtauXNw5RcjkLdTXkgpQ+CvxHssNTmpewNcMl vFUgt2GgEKne25/1mfLs3IBqzsGhTqhPsH7NiVeHoDw6cFCASKn0IjcvYgufautXHTas pED04keRFQXg8o3jdKp4CVyVvFoy1+KpZF1+S/0hcTIkpSl2jj1bCqsrLXtschvYY+KR J4tPzMTNCfxFaYLNHunvKoRs2lpBd6wv1dGxlE6tur3V9+Nw+KZSsQ7GUhd0wWi2Bk9V pN8ECdu53jx0kGVrNi3zl5VZhQk//w2WtHnLFd8S22WfCkRL7dsj3lu0qffOKl4chbDE Ezfw== X-Forwarded-Encrypted: i=1; AJvYcCWSjPUqIwfgnRqd2NTiBAV1kg+r0QirQA3MqPe9pjUy3eVebwV3LikNXnihKIC3RcjKYGmTvegKoMrRT6s=@vger.kernel.org X-Gm-Message-State: AOJu0YxoN7CmpGHlnF6160aVlyJa+ojros5A+iX9uGi9HYce6tZwv4Ot GxkqrWj0NvAeb4yDfToZZhEJ9cekMqHIm7SlKr/G2khIuJC9699ImEIVjnOUNaV8kA== X-Gm-Gg: ASbGncsKBKzaazlO3EpNHn+3pr0OJbY/15Qz5e5MCkXQo891RNulHKG7ZHfvitolbY5 JnUUUkDmDOsBHaIE5Rt28RgTkWpr8cuYAYhsvS0exyQlgS9YMUpzg9al63jzSMpO8LNL60K+XlY GOHOKhjTxK4eVYyiM1lL4rVYEDfaVFCfmxtvbsnnLBBTjtOGSh1zPX4fDUYENdMukr8BGpj980o /PM3H5iCtWYQrrEX7ymSyS3OKVr6fYkFuzD/slgYzUm9znlAEK3FkrbklV8u/c= X-Google-Smtp-Source: AGHT+IFO44EiAM+QNUCjz1t/r+eXLqqfQaDheZzbbvGTUKBSIvH8vGw9UsNqe197/anSXmbX6B8QWQ== X-Received: by 2002:a17:902:da8f:b0:215:98e7:9b1 with SMTP id d9443c01a7336-219e6ca6e4amr43688205ad.5.1734707829995; Fri, 20 Dec 2024 07:17:09 -0800 (PST) Received: from localhost ([240e:404:6e10:2b36:20a1:a4d1:f531:7695]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-219dc9d9468sm29470625ad.120.2024.12.20.07.17.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Dec 2024 07:17:09 -0800 (PST) From: Julian Sun To: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org Cc: tytso@mit.edu, adilger.kernel@dilger.ca, jack@suse.cz, boyu.mt@taobao.com, tm@tao.ma, Julian Sun Subject: [PATCH 2/7] ext4: Remove a redundant return statement Date: Fri, 20 Dec 2024 23:16:20 +0800 Message-Id: <20241220151625.19769-3-sunjunchao2870@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20241220151625.19769-1-sunjunchao2870@gmail.com> References: <20241220151625.19769-1-sunjunchao2870@gmail.com> 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 Content-Type: text/plain; charset="utf-8" Remove a redundant return statements in the ext4_es_remove_extent() function. Signed-off-by: Julian Sun Reviewed-by: Jan Kara --- fs/ext4/extents_status.c | 1 - 1 file changed, 1 deletion(-) diff --git a/fs/ext4/extents_status.c b/fs/ext4/extents_status.c index c786691dabd3..c56fb682a27e 100644 --- a/fs/ext4/extents_status.c +++ b/fs/ext4/extents_status.c @@ -1551,7 +1551,6 @@ void ext4_es_remove_extent(struct inode *inode, ext4_= lblk_t lblk, =20 ext4_es_print_tree(inode); ext4_da_release_space(inode, reserved); - return; } =20 static int __es_shrink(struct ext4_sb_info *sbi, int nr_to_scan, --=20 2.39.5 From nobody Sun Feb 8 12:45:39 2026 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 995B35588F; Fri, 20 Dec 2024 15:17:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707837; cv=none; b=V1tzwbE4CbPkAEKjSK+y3lgmo2H/0/xT0xt7b8b2LKrsAAdokx0fVT+jn6T9tPQrqcBmfm7IYUgWLGUT7Nhlhv48ocN4I1Lw9ZaA4i0EThxcKb+NZi6jkvmLKr5RDKDY9VEzQg01Kabwy/VlPyHYh1RSzG7Pv0you9aEadGhi1k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707837; c=relaxed/simple; bh=YY4hyiOlz1BA4DCi0GOGADeHsxEXQch9rJEsb7t9mdc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=B+jdzW+bjW6lWJvMZKZBIWcKI8l41phaSYkx46LgOC4lsdIFRVohz+kavSr3UVm5i0SKaoocI65hyWA9dy6llp2cxM+cr4qlszxLozKtsv0Jjm9CTxQvZLFWFaUcP23/ZjK5pe8zyzpQAHQeBmXzBsomE23NjdH1Ht81vHumijM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DBV7fkrh; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DBV7fkrh" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2165448243fso22054135ad.1; Fri, 20 Dec 2024 07:17:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734707835; x=1735312635; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fJvSc8+tVm5El//+nrRKhXNHk/rEeYCo3cALRqrz6kg=; b=DBV7fkrha4DVF7EgokuHMbXEVORsElU2/8H8ICZurv9MmVy4y40tNOHMkAG/AD240m SBfVbIuU/+f7+M2owx6kktepPGi11R1hkHX2Gw/p/x1A5g9CnlS9ud3ZnjzMDLqowljA K5hvwFy1ON1Z3X6iv28bULi12AJF5N8rfKBkMgX5ac6XGTkGgYl28IiGGBotet9eScAv /ewXdZYtgWinCt/W2Idss1x2MdPwDhBQK0EqqSyNTQYMhvdeJ+vEN3oikxKiz058ALp/ 7DWaSijtfq4XVPqLOHe+8p1pBVN4R40jJsatsbw1V7l1RngFF7YtNUWyS2F2QKn6ixf6 bc5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734707835; x=1735312635; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fJvSc8+tVm5El//+nrRKhXNHk/rEeYCo3cALRqrz6kg=; b=bgPr/ruHE1Gzb4/Ngrx2vpOf8X27an5M+4Q2gefjQKc/bxYRmbnyMAQB03jCPbI/NV fp2I8hGikZSrw6KDyEGgvEBehI69GOh/jCvEvGV2PvUxE/Tvcu0Pn2/6GQVRDnNpoqz7 HBuyAlZ3vj0tqeCTBbhdMgek8RsWJl7/IRGL8eDCd243PKuLhr9d9BBErnsW0dbTHiHz Kgy85913u2Gv0iIjJba9kXu4poKNbYiGwWpMrImNwwHTb7OvPMJuGOpz16/ZD3rs+Dkb FgjljlkXXoH45BSQ+s4FeQlnGybzmWAnaduTVIQIzV6Sia+mN4dhJmxbOcET8CnbvVK4 0sUw== X-Forwarded-Encrypted: i=1; AJvYcCXFvMyWZQDm8es8m3nWFZ2/srfIOSmC3LSCD2oKsnRbqB1aCyBUWzR6Hl6yvUF/Xt4L9MewzAdLmmj+FNw=@vger.kernel.org X-Gm-Message-State: AOJu0YzqlPWDJ9tXQZ54sWp5gEveHg3/P8kmAlfG4gRDhVUBCa+oTziZ eUdn1PcBZTc9X21oueiKQS7f6C3qzMBsOiDM14fYJZB+N+S6FiNQgUqemUgsbs548g== X-Gm-Gg: ASbGncvrc3/Gpksj3lBXco6p0MKM3hfSTVoDQ0Z39TBXwMBlpKb+62+/c97t4O3BOgs bdLo4m1IsYedEeZE/iTtI9jIsj19jKKexvEhV+qZrqvMFuJa9vzvxycLx6tW+H684tKs68dYTVl bTUO28Iv8obfVbKUnTt6d3PjQDyiNiYl+5PS3VrogevCmvdYdDdAxDbVhmxX55xaFuw3kgYafaA UF9qA4jzB3Uum5xPmIl4dHCFwCfEDNYIS+Pbx0L6kIZ+6niT/z9OrO3dOO6txQ= X-Google-Smtp-Source: AGHT+IHsP0o01pBy+x6FyHqdQMxTlSJpgKmACPUufBCQlJFgsx63ydUsrXW4cDTIWOcG/l+1R1+9/g== X-Received: by 2002:a17:903:11c5:b0:216:69ca:770b with SMTP id d9443c01a7336-219e6e8bb28mr52376795ad.12.1734707835483; Fri, 20 Dec 2024 07:17:15 -0800 (PST) Received: from localhost ([240e:404:6e10:2b36:20a1:a4d1:f531:7695]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-219dc9f6251sm29462445ad.207.2024.12.20.07.17.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Dec 2024 07:17:15 -0800 (PST) From: Julian Sun To: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org Cc: tytso@mit.edu, adilger.kernel@dilger.ca, jack@suse.cz, boyu.mt@taobao.com, tm@tao.ma, Julian Sun Subject: [PATCH 3/7] ext4: Don't set EXT4_STATE_MAY_INLINE_DATA for ea inodes Date: Fri, 20 Dec 2024 23:16:21 +0800 Message-Id: <20241220151625.19769-4-sunjunchao2870@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20241220151625.19769-1-sunjunchao2870@gmail.com> References: <20241220151625.19769-1-sunjunchao2870@gmail.com> 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 Content-Type: text/plain; charset="utf-8" Setting the EXT4_STATE_MAY_INLINE_DATA flag for ea inodes is meaningless because ea inodes do not use functions like ext4_write_begin(). Signed-off-by: Julian Sun Reviewed-by: Jan Kara --- fs/ext4/ialloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c index 7f1a5f90dbbd..49b112bfbd93 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c @@ -1297,7 +1297,7 @@ struct inode *__ext4_new_inode(struct mnt_idmap *idma= p, ei->i_extra_isize =3D sbi->s_want_extra_isize; ei->i_inline_off =3D 0; if (ext4_has_feature_inline_data(sb) && - (!(ei->i_flags & EXT4_DAX_FL) || S_ISDIR(mode))) + (!(ei->i_flags & (EXT4_DAX_FL|EXT4_EA_INODE_FL)) || S_ISDIR(mode))) ext4_set_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA); ret =3D inode; err =3D dquot_alloc_inode(inode); --=20 2.39.5 From nobody Sun Feb 8 12:45:39 2026 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 49D69219EA0; Fri, 20 Dec 2024 15:17:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707844; cv=none; b=TnqFj22PbfkUWeGRV5NKA+njTqdXOrkDBsIg/j0Y6mzYeBhXtTVRwddoXUlLGwkTnLHN9ZjJhgSCoFehwHTIoRbCd1Z/+nA+1c8+errP3nMyurqjc20MlvVz28jyUjogcwSXxoOrawOkPZNsG/66pPPtbokUA0Ar2XMDcnkfduI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707844; c=relaxed/simple; bh=vbVdTfdfp5lb6LbT4z9rcX33jZhZ/+Hz+G+ZW7iFIRw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ilvdfBh2U93H4KgqthcWj3n030s+uLjOkTS9hN7e84tpHT564FXHZzF2uQ6YYhVUht2uT0RdJIdIg/F/sVM6x4RRDzfkuin2y5FmzQQ9ICgqiSyMBbGAGRXsCInOEJbGbnGI+vdu0V3dNhh0qLtNHVozzcs1j47MNA+TcFTsQAE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=knTPwv32; arc=none smtp.client-ip=209.85.214.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="knTPwv32" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2161eb94cceso14198215ad.2; Fri, 20 Dec 2024 07:17:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734707841; x=1735312641; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iFIyTYptesldPIEJHxlIStIBxP3eV3kAABVRgii/L4Y=; b=knTPwv32lzn+TJ1U+yySg0wzNv1tyYVzEDoWaWJj9CFje1Xkb5yuN4F1FSXCHxWA5n NFec90KEjq0qxkK5AcP6hSjnSxoOA7pBrVnyVvwMdoY6EkB0n4pZ+ssQqfgt8XNlb6oc TWSs0O774Y0TyxKnQxXlWIHV52S7zFys2NGUEfL0+dkN94KkuR/XaJUwhSx7UAkar7x9 HbsGpQZBuNiwxozdORTVyPazbaDw6JEFwmxqt6SjtQZ+sKljT7kvig4LCzRjNsCz8e8v lFUaD4ADXWYtO7JCmRA6vE0JVMOp9ginurqD+0EDVFHDHHT2i2L7ucSSQ7qyCbPPfddk ruhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734707841; x=1735312641; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iFIyTYptesldPIEJHxlIStIBxP3eV3kAABVRgii/L4Y=; b=TmpEUvaOhMswUy4RkFeJBo6zhn42sfjg/zJoR4Ir5jnwNH4vXWuiL6y3Z0ngR9q8tN FCNuFfDk2es4t72OiIdoNxU0EqUXJG+CKXZecs1V6TqZu+PCOIzM5HC3KtD2IAx9nzAz 5/BWldtEpvRAUF+5HOnKh1W79NEDLpvX+vaVAoRol8U43m/FdeeK5jAi70bMM345aReA DOO9lue+qp02+3VaMyzUNCyEn7yHz+rEE7VOfeydZApLXbryYfwYr8qiHe7uOdK5B4SX YRGXkiVkENMB6u4lWlAc1NfMKgbaMHnya/N1Oiyx1Jp9m6y6kd/gjsowTDuHlyuf8biL 7adw== X-Forwarded-Encrypted: i=1; AJvYcCWuyniwo6YBSkxxf+B7YMllA1cUAmMH84KP4nWGdebaYLOEkHE4gK8Ivd6PUuYgr2jUZC01e5e7qqQhBe4=@vger.kernel.org X-Gm-Message-State: AOJu0Yyo4hsV+TbtO0aeGHdELv9//A0PuFuvnDRKSu03r4ix1Kjeen4K kyoLUjT9leY5hKYzNuhYpjIbEqc0Aq5PmJvr3UQ0USDz0N5BiL+jxPFw8lMOsuGMYw== X-Gm-Gg: ASbGncugbn0Gd443a6/0gmnuzuyZNoZqMCuL+jzwpJZoV0X6fR/Zlqf9ONV3j59PwME uqk0AHvBZf4epRSL10z/m0xe/8jHVp7Z1KbdKmz3nhj4oGPqxKVP2HkIxuTNfRUiSHZ3CU6tSzo 8Y4m3Q3L6zgd+vnf+kaqBJuYYU8Qtj3lF0dSC+iAGuF1fYHm9tNwT3Nu+KnyzQqpZi3Sv7csKHq 8gJmAwGJLh5CdgPHZvMF5aKYriUm5jJe0+eqxEVCgJ8EAvDZZdNhkJe+ynKILM= X-Google-Smtp-Source: AGHT+IGIQAFfUQfNPws4NZLQv1S5w2JvCUif5EYZO3iksQ3YOhQ2eGlB38c8O6U4NeJ/X5pQXqks5Q== X-Received: by 2002:a17:902:f685:b0:219:e4b0:4286 with SMTP id d9443c01a7336-219e6ebcabdmr40215945ad.29.1734707841024; Fri, 20 Dec 2024 07:17:21 -0800 (PST) Received: from localhost ([240e:404:6e10:2b36:20a1:a4d1:f531:7695]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-219dca02f95sm29590465ad.280.2024.12.20.07.17.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Dec 2024 07:17:20 -0800 (PST) From: Julian Sun To: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org Cc: tytso@mit.edu, adilger.kernel@dilger.ca, jack@suse.cz, boyu.mt@taobao.com, tm@tao.ma, Julian Sun Subject: [PATCH 4/7] ext4: Introduce a new helper function ext4_generic_write_inline_data() Date: Fri, 20 Dec 2024 23:16:22 +0800 Message-Id: <20241220151625.19769-5-sunjunchao2870@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20241220151625.19769-1-sunjunchao2870@gmail.com> References: <20241220151625.19769-1-sunjunchao2870@gmail.com> 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 Content-Type: text/plain; charset="utf-8" A new function, ext4_generic_write_inline_data(), is introduced to provide a generic implementation of the common logic found in ext4_da_write_inline_data_begin() and ext4_try_to_write_inline_data(). This function will be utilized in the subsequent two patches. Signed-off-by: Julian Sun Reviewed-by: Jan Kara --- fs/ext4/inline.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index d479495d03aa..7eaa578e1021 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -20,6 +20,11 @@ #define EXT4_INLINE_DOTDOT_OFFSET 2 #define EXT4_INLINE_DOTDOT_SIZE 4 =20 + +static int ext4_da_convert_inline_data_to_extent(struct address_space *map= ping, + struct inode *inode, + void **fsdata); + static int ext4_get_inline_size(struct inode *inode) { if (EXT4_I(inode)->i_inline_off) @@ -651,6 +656,86 @@ static int ext4_convert_inline_data_to_extent(struct a= ddress_space *mapping, return ret; } =20 +static int ext4_generic_write_inline_data(struct address_space *mapping, + struct inode *inode, + loff_t pos, unsigned len, + struct folio **foliop, + void **fsdata, bool da) +{ + int ret; + handle_t *handle; + struct folio *folio; + struct ext4_iloc iloc; + int retries =3D 0; + + ret =3D ext4_get_inode_loc(inode, &iloc); + if (ret) + return ret; + +retry_journal: + handle =3D ext4_journal_start(inode, EXT4_HT_INODE, 1); + if (IS_ERR(handle)) { + ret =3D PTR_ERR(handle); + goto out_release_bh; + } + + ret =3D ext4_prepare_inline_data(handle, inode, pos + len); + if (ret && ret !=3D -ENOSPC) + goto out_stop_journal; + + if (ret =3D=3D -ENOSPC) { + ext4_journal_stop(handle); + if (!da) { + brelse(iloc.bh); + /* Retry inside */ + return ext4_convert_inline_data_to_extent(mapping, inode); + } + + ret =3D ext4_da_convert_inline_data_to_extent(mapping, inode, fsdata); + if (ret =3D=3D -ENOSPC && + ext4_should_retry_alloc(inode->i_sb, &retries)) + goto retry_journal; + goto out_release_bh; + } + + folio =3D __filemap_get_folio(mapping, 0, FGP_WRITEBEGIN | FGP_NOFS, + mapping_gfp_mask(mapping)); + if (IS_ERR(folio)) { + ret =3D PTR_ERR(folio); + goto out_stop_journal; + } + + down_read(&EXT4_I(inode)->xattr_sem); + /* Someone else had converted it to extent */ + if (!ext4_has_inline_data(inode)) { + ret =3D 0; + goto out_release_folio; + } + + if (!folio_test_uptodate(folio)) { + ret =3D ext4_read_inline_folio(inode, folio); + if (ret < 0) + goto out_release_folio; + } + + ret =3D ext4_journal_get_write_access(handle, inode->i_sb, iloc.bh, EXT4_= JTR_NONE); + if (ret) + goto out_release_folio; + *foliop =3D folio; + up_read(&EXT4_I(inode)->xattr_sem); + brelse(iloc.bh); + return 1; +out_release_folio: + up_read(&EXT4_I(inode)->xattr_sem); + folio_unlock(folio); + folio_put(folio); +out_stop_journal: + ext4_journal_stop(handle); +out_release_bh: + brelse(iloc.bh); + return ret; +} + /* * Try to write data in the inode. * If the inode has inline data, check whether the new write can be --=20 2.39.5 From nobody Sun Feb 8 12:45:39 2026 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B44D021A438; Fri, 20 Dec 2024 15:17:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707851; cv=none; b=IXTMczXxeipn4ELDa4ibrDJ2cT7KjNopPvxh4mShj/0EyHsvrdduSzlCu625mUURaBZ4CSTA7D9ChuITZ2aIPPRCAEpo0c4duqA0JEOG15TPWdY95ImeyWWn1XitXcBbU0w1C9rScwxDsSCjL2v3jKypJukLCQkAaceh5FugX1c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707851; c=relaxed/simple; bh=HzHq+CR/BlfrE1KWVHAOcyJf+u7oLyfRutvuuURumF0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=pPz30WIHN0s4pu+sgL5qRAKdJ/znu7QVaFBg0aWd3YE8AmWQP7Upb/ttMFOnZ05bWIhVr6pZKTDHUk8LxvVyiiYwt22vKGNKaTeUThqj3K1st7bjoC7YPHtJv8cwqYYJaRUrEAooxkYe2c8GOnrTu/TxZXljwauzZfu/y+UVGKc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ev+WcNOg; arc=none smtp.client-ip=209.85.210.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ev+WcNOg" Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-725f4025e25so1733452b3a.1; Fri, 20 Dec 2024 07:17:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734707847; x=1735312647; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dIKBXxjfXK7ToW398PmJS8mZL27WZ4D2BAwWJ5Ye6XM=; b=ev+WcNOgdt4hbMBbCM5aopsmycAkwSePIv21QTaNxUt2j8F7w5+2nw/9IwLhicsAA9 Dhjm32rRVMPgSQQfLEryD5v77vbaSq35FR6IMLhgV2kMTdUIwElfBVf/PokpvvDL4B5m FBgs1kBVfuwKR/rS+eQUoHxhWKn1bhzMHcCcHuWaopOljID7gapNRxf4GdDi5M8iI6PY cCDF5nex0QmhtuESgzOdMbXGx+PXTv6mPjsxuJDNTBvDkEkt+esgMoELq4bxjrtAMZjI CyB58iEs1Mu97JEmX+FtIAg9jZp87aWMLiVuV8s3PdzbfZP2wB1mjKQKS1D63ihAR9c8 VWPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734707847; x=1735312647; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dIKBXxjfXK7ToW398PmJS8mZL27WZ4D2BAwWJ5Ye6XM=; b=ZdfbIhTdtX0o7Ml9j4SZY33iFUKCIEtzUkDA6D8jyKUl7+/PQU7nuZNJ7OR8O0W1OW aEvBiniDgI54OVgNxcyQfAT26X0cN/o15Ozksqfnm/PULzkv0f4urLlA8uzW4EQVUoR+ oPanBttxuQRxueHb/wfCynbkX+GWGZ51Df8acZxWfcsDcJ0ughQA9P0FnBqBPXp6KB/0 PV/ee8bXPEim+v5GDqwm9FDqXZYp7mC8B+YvSZqCW983tHOV+9xlYjZ5swK4tJ9KBgoM lSk7pL9prmjAFrqtZYxUQnaeu5fSJdbq8kagVit5z4IqF1wG0w4Y0maEo4yt+NV9eE6B bfZQ== X-Forwarded-Encrypted: i=1; AJvYcCUgOPOG35Zu3pGDBEbmVZIncEfAEXrHBa51FG37gIm23LVAxAwFJ5Hzdoe3WTfRQ92ZNmhGC9zGjNBcjNw=@vger.kernel.org X-Gm-Message-State: AOJu0YxETe9uOtRGVAgMr32Mn0cDdzDNticv+b6wVkfh+1xHp8CS8XLR uiRFlkkT+3+42fNR6sqg5cw2lyaRrrBSYFgpJMw2a8vcFqNMvSL0NiN/h+pDSU26Vw== X-Gm-Gg: ASbGnctyWW9h5WuHsQfR1NNg4MkRIyT4TEeql5zVp0cDgH82rQFdy5fKQSMiOJlbP9r fw0+/POVs2WzQjeIrdZhnQVDVN1AaahuUzFS/7inuyuz5DuNSrJKPTmJLG0utUe7Qa9vBp+anU3 7kUeQhnjA928EwqWSipaAoZG1yrZUuL8HiGVfE6AJNAMxMumJ3skcy4l3zQZJpNO7ZRk33RKzxs kc42fb6FLgZ2kJp01v50go3v6+oErlrR5p4wb/zlQ0mHu+1oEZue+c+9s2g3o0= X-Google-Smtp-Source: AGHT+IFDOVEjHTXCADw9yeT74Dxmlme2vJ2l2m3sj/ocknvg2b4YTEWChCqLXtUiSmxMN/ZjQx7clg== X-Received: by 2002:a05:6a21:670b:b0:1e0:d32f:24e2 with SMTP id adf61e73a8af0-1e5e081edf3mr6302465637.38.1734707847599; Fri, 20 Dec 2024 07:17:27 -0800 (PST) Received: from localhost ([240e:404:6e10:2b36:20a1:a4d1:f531:7695]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72aad8dbbabsm3334645b3a.101.2024.12.20.07.17.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Dec 2024 07:17:27 -0800 (PST) From: Julian Sun To: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org Cc: tytso@mit.edu, adilger.kernel@dilger.ca, jack@suse.cz, boyu.mt@taobao.com, tm@tao.ma, Julian Sun Subject: [PATCH 5/7] ext4: Refactor out ext4_da_write_inline_data_begin() Date: Fri, 20 Dec 2024 23:16:23 +0800 Message-Id: <20241220151625.19769-6-sunjunchao2870@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20241220151625.19769-1-sunjunchao2870@gmail.com> References: <20241220151625.19769-1-sunjunchao2870@gmail.com> 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 Content-Type: text/plain; charset="utf-8" Refactor ext4_da_write_inline_data_begin() to simplify its implementation by directly invoking ext4_generic_write_inline_data(). Signed-off-by: Julian Sun --- fs/ext4/inline.c | 74 ++---------------------------------------------- 1 file changed, 2 insertions(+), 72 deletions(-) diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 7eaa578e1021..5dd91524b2ca 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -979,78 +979,8 @@ int ext4_da_write_inline_data_begin(struct address_spa= ce *mapping, struct folio **foliop, void **fsdata) { - int ret; - handle_t *handle; - struct folio *folio; - struct ext4_iloc iloc; - int retries =3D 0; - - ret =3D ext4_get_inode_loc(inode, &iloc); - if (ret) - return ret; - -retry_journal: - handle =3D ext4_journal_start(inode, EXT4_HT_INODE, 1); - if (IS_ERR(handle)) { - ret =3D PTR_ERR(handle); - goto out; - } - - ret =3D ext4_prepare_inline_data(handle, inode, pos + len); - if (ret && ret !=3D -ENOSPC) - goto out_journal; - - if (ret =3D=3D -ENOSPC) { - ext4_journal_stop(handle); - ret =3D ext4_da_convert_inline_data_to_extent(mapping, - inode, - fsdata); - if (ret =3D=3D -ENOSPC && - ext4_should_retry_alloc(inode->i_sb, &retries)) - goto retry_journal; - goto out; - } - - /* - * We cannot recurse into the filesystem as the transaction - * is already started. - */ - folio =3D __filemap_get_folio(mapping, 0, FGP_WRITEBEGIN | FGP_NOFS, - mapping_gfp_mask(mapping)); - if (IS_ERR(folio)) { - ret =3D PTR_ERR(folio); - goto out_journal; - } - - down_read(&EXT4_I(inode)->xattr_sem); - if (!ext4_has_inline_data(inode)) { - ret =3D 0; - goto out_release_page; - } - - if (!folio_test_uptodate(folio)) { - ret =3D ext4_read_inline_folio(inode, folio); - if (ret < 0) - goto out_release_page; - } - ret =3D ext4_journal_get_write_access(handle, inode->i_sb, iloc.bh, - EXT4_JTR_NONE); - if (ret) - goto out_release_page; - - up_read(&EXT4_I(inode)->xattr_sem); - *foliop =3D folio; - brelse(iloc.bh); - return 1; -out_release_page: - up_read(&EXT4_I(inode)->xattr_sem); - folio_unlock(folio); - folio_put(folio); -out_journal: - ext4_journal_stop(handle); -out: - brelse(iloc.bh); - return ret; + return ext4_generic_write_inline_data(mapping, inode, pos, len, + foliop, fsdata, true); } =20 #ifdef INLINE_DIR_DEBUG --=20 2.39.5 From nobody Sun Feb 8 12:45:39 2026 Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 388D121A449; Fri, 20 Dec 2024 15:17:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707855; cv=none; b=WxNd0RGemolL/xQ1gs8YaNWZ96SpSeIb10zMuE2OWwk50r2UwzSUUZva9nVQmNDD25kvqpaivzo+Hf7Up2fC5noG3tKJhXRpB3w1nMnQwAlyQJ+YzLc5m0sbr5dx3/JIS1FkJ245LfE3Hc7NV2dfjCihlPMr1gA5Vtb5y/2mRRs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707855; c=relaxed/simple; bh=+l125FCIio3jc7xkLqYtOpV6fVUzW2bGbqPDfBLQ95c=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=eHtYkn88Gxz/Q4QvLgxpThLAIIuMksqI47FCdO1LfqnBRXurMbh9LjxJYng++KDaWj3Ed5cXr6R/QWGvySYFlBnhib5kNHvFldAyjjD8PlHrXSdzGffHb04PSHd5akKGqTongLtlo/M+xT2lp+HWvXenoAGZ612eoLNlG+TQMLg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=F4C/XHBa; arc=none smtp.client-ip=209.85.216.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="F4C/XHBa" Received: by mail-pj1-f47.google.com with SMTP id 98e67ed59e1d1-2ef8c012913so1472422a91.3; Fri, 20 Dec 2024 07:17:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734707853; x=1735312653; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iusn4zwVH0ycFLzmzIggbRz4Uv05uzzTCW5NCcfxX7I=; b=F4C/XHBavRqlLQh3r7qVktzwho4zer24msCFg+TiV4Z9gAn4cA7aki5K+xhGzU88Gt FMgrRUC2dXmAAxbtxjoV9URyw1cvftWmSGOKFLopX+2n9R6f/LG6hnRE7heIWgssY4Qq m4Gtqi6iXk1z9HqzfE+cAIfGUPt3T+FQVvCyIAKDITRrLtGPxNKTVn0rBDD5k/JJBiZE 2F1yX1S9HyHNpSMedKRge2A4b0WlO/xqS00itN9Q/ATF1MAQvEBhRNOyBaOhgX4RRm5X KL7R0/IOPG4Pwk25QLM0+kOSxIXZg8722YZ2waLkauEynau7u+9iC4HOG1S27S+LOOMk flBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734707853; x=1735312653; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iusn4zwVH0ycFLzmzIggbRz4Uv05uzzTCW5NCcfxX7I=; b=w0JcI9CtRz18jtlV9z5lQLwwUcm29Sa6cqr2D0fgBNsdRcNuHfswoH8L1W3Y5IKJPy dAZVinbcUqqjEUExBM/ib4CxS3f7fr/EHWFUDSlHpFVd3+RChXtkcmSARpAcIrbuQKXf SPS78xTdYcvorKnORliL1dsQZcERcxw8640vpfN0bHaRVkiWFvPJC6XkK4xgRP5vMSHF WPOntmpFU3JupqD9DE3x48oDJvr086Jdl1a15sYdiKCSDTXMZQynBiS+HcMU2FIx6S2y 50KLLhMqCGguHr3rXBeltgZJenirK8jh1s/CJlN/BgdlRbJzTQ3q6sEhGTBDDGd/PWrD HBwA== X-Forwarded-Encrypted: i=1; AJvYcCXJ5RXadnh+NUh/2Yumd3DjHfJZwQqlSGrBtkJP1JvxvUdbOTPldroj6mUEVTZ4SMolL54MpWEdEv2X320=@vger.kernel.org X-Gm-Message-State: AOJu0Yz3ul5E4BTozmqjbcAN6lMqjHsOxI6Jov0Mj01ffGFK0YDPwVKE qkN/IMomx0T9miADLJDEKcxdUlVdvxzZrET7+Ps07PqI22ifLde2q8B8A7EbctUoQQ== X-Gm-Gg: ASbGncvTtedUclQtbiTnfH5GxKqnRYMguzgRsjg28FRe2nCzCLBGwbpgwDYs0mXj+ul TdcZ4IKLaCBtxFOTP4aQF2ho5lkINKCaGwyXzTGTYclqnMexA79Mokvm15309I8NqQmP2OqXQJt b5cjiEC8aLwbJAie6OU1K31wFGnjATD32j4KOj3uboVKDBakDx6rzUU3rm9y1q0GeCcojD/pS2b zhL8CsfgTtts2ovXzlnw0oWRuHde6Fzr0Vuavk7bJgIcEw9XK505rtQUwc8Uig= X-Google-Smtp-Source: AGHT+IHOGsKlyPe1BXzSthUnUR1RmDNy5LK842i9ozh6ph6DSJvKZnOut9X8Qv+cBbrUItmCoeHntg== X-Received: by 2002:a17:90b:524b:b0:2ee:c457:bf83 with SMTP id 98e67ed59e1d1-2f452e38c6cmr5171208a91.19.1734707853031; Fri, 20 Dec 2024 07:17:33 -0800 (PST) Received: from localhost ([240e:404:6e10:2b36:20a1:a4d1:f531:7695]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2f447882b09sm3762402a91.41.2024.12.20.07.17.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Dec 2024 07:17:32 -0800 (PST) From: Julian Sun To: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org Cc: tytso@mit.edu, adilger.kernel@dilger.ca, jack@suse.cz, boyu.mt@taobao.com, tm@tao.ma, Julian Sun Subject: [PATCH 6/7] ext4: Refactor out ext4_try_to_write_inline_data() Date: Fri, 20 Dec 2024 23:16:24 +0800 Message-Id: <20241220151625.19769-7-sunjunchao2870@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20241220151625.19769-1-sunjunchao2870@gmail.com> References: <20241220151625.19769-1-sunjunchao2870@gmail.com> 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 Content-Type: text/plain; charset="utf-8" Refactor ext4_try_to_write_inline_data() to simplify its implementation by directly invoking ext4_generic_write_inline_data(). Signed-off-by: Julian Sun Reviewed-by: Jan Kara --- fs/ext4/inline.c | 77 ++---------------------------------------------- 1 file changed, 3 insertions(+), 74 deletions(-) diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 5dd91524b2ca..2abb35f1555d 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -747,81 +747,10 @@ int ext4_try_to_write_inline_data(struct address_spac= e *mapping, loff_t pos, unsigned len, struct folio **foliop) { - int ret; - handle_t *handle; - struct folio *folio; - struct ext4_iloc iloc; - if (pos + len > ext4_get_max_inline_size(inode)) - goto convert; - - ret =3D ext4_get_inode_loc(inode, &iloc); - if (ret) - return ret; - - /* - * The possible write could happen in the inode, - * so try to reserve the space in inode first. - */ - handle =3D ext4_journal_start(inode, EXT4_HT_INODE, 1); - if (IS_ERR(handle)) { - ret =3D PTR_ERR(handle); - handle =3D NULL; - goto out; - } - - ret =3D ext4_prepare_inline_data(handle, inode, pos + len); - if (ret && ret !=3D -ENOSPC) - goto out; - - /* We don't have space in inline inode, so convert it to extent. */ - if (ret =3D=3D -ENOSPC) { - ext4_journal_stop(handle); - brelse(iloc.bh); - goto convert; - } - - ret =3D ext4_journal_get_write_access(handle, inode->i_sb, iloc.bh, - EXT4_JTR_NONE); - if (ret) - goto out; - - folio =3D __filemap_get_folio(mapping, 0, FGP_WRITEBEGIN | FGP_NOFS, - mapping_gfp_mask(mapping)); - if (IS_ERR(folio)) { - ret =3D PTR_ERR(folio); - goto out; - } - - *foliop =3D folio; - down_read(&EXT4_I(inode)->xattr_sem); - if (!ext4_has_inline_data(inode)) { - ret =3D 0; - folio_unlock(folio); - folio_put(folio); - goto out_up_read; - } - - if (!folio_test_uptodate(folio)) { - ret =3D ext4_read_inline_folio(inode, folio); - if (ret < 0) { - folio_unlock(folio); - folio_put(folio); - goto out_up_read; - } - } - - ret =3D 1; - handle =3D NULL; -out_up_read: - up_read(&EXT4_I(inode)->xattr_sem); -out: - if (handle && (ret !=3D 1)) - ext4_journal_stop(handle); - brelse(iloc.bh); - return ret; -convert: - return ext4_convert_inline_data_to_extent(mapping, inode); + return ext4_convert_inline_data_to_extent(mapping, inode); + return ext4_generic_write_inline_data(mapping, inode, pos, len, + foliop, NULL, false); } =20 int ext4_write_inline_data_end(struct inode *inode, loff_t pos, unsigned l= en, --=20 2.39.5 From nobody Sun Feb 8 12:45:39 2026 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 993F7218EAD; Fri, 20 Dec 2024 15:17:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707861; cv=none; b=jsmcphmS0g59Usx9WTahLDjT9bqL/PpywcM6CJ6CYFOrliN2qLLpYo5oov0wgktY9OLOESoNbkE9NKy2ARnJQHX+R9gj0ICWl8Dtm+kVReGTUu99qeyTrC0nm86oMD1/MMEviSEohW/Df0MQmVmCw7LQx1tRsy5lrdM5+C4RgVs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734707861; c=relaxed/simple; bh=su8Ua363bEZ70nkNKIIg0EKMqaF81s6s+jj0gTjdL/U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=VwBN4SrQMNKvvlb9ualtcwtNmbVG3A+sMDzGBvwzINEldEvI7l4kMsvyB8CkuGZAE9el4jppytloUCZAn4k6JsTfb4VkP1VRCVri9vRbyq3UNzormjPiOHgsoewovc96uveLFD1j9zjIyeAuxQj0CKpdgoRU1qn0bwykMWOXyaw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HqP2QCWo; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HqP2QCWo" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2163dc5155fso19075605ad.0; Fri, 20 Dec 2024 07:17:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734707858; x=1735312658; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Gmj9/pTDw2gOBkddLbrIYaTTjqQ+JT2Ti5zDw8H8ULk=; b=HqP2QCWofZASl0xHjaj0dJ0e3c5EVAx06yOH73Mm2zPEMei1KqfIvlUPpHarzCgw/K PqIv0WF1d3Z3okkoJOtG73EMy+I01tTSmqU8A8nHGhj/4Pj3nI1rL/60AJCupvKyWt+n 6r0tLynAcJCa69IPKcmNV5qaPJODd/jGo0p/VpzT7pOOzw9pAB+qN4MlJKGyd7HosbkK UIv1UB49aCqEE9nRIoHdiUJtGgsMGd/iktYTd5E3oByeobNnuVW4eyEMRzb+Adyw42/3 2AMmz4HdnEUqrBYWHpI9BPOCq9ZlUB7BmmETNKkUbNEgnaij6pAdmhz2/Vtcq01W7jyK WJ6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734707858; x=1735312658; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Gmj9/pTDw2gOBkddLbrIYaTTjqQ+JT2Ti5zDw8H8ULk=; b=ROz2FL2VujNwqbDtOTcDnDGdJ8HVfZJtf2Sx+b8q5u8JavUq4gaK4vFcZJ/uXthYG3 l96xmdB8mAOYdI/y0N7KhoJcBuJSeE3VZ6GQlbO1p1Lo7ZBviJVB+QbwmvED7XBXmG8v oz1Sz5FdSEW5er4ib40L1EiOsYBfAdF6lWPM/UKQl+W9KWxcy9UmQsT+f8H1i9Fzf9ew FPG32IGzlF3rhTSWAFNR018EVZiqBtPB1qf0UZpZPZgXhGX49CC7pgCpSUkCt0/yZG54 i9Vow0G/o8TkqNQlTl2Bf1Cnfu+k2/+k58/N9qSkpP5j1ffq2QkBOnM/Xr31h9VsBRj1 HKdA== X-Forwarded-Encrypted: i=1; AJvYcCXTuO5xPNOMsP/zhoU2RbHDQnGisVtQEcCGSXQLb7b9IYWwm4E32DjaG75AS8nRnZroo3zfSHGK3Vr/Fyc=@vger.kernel.org X-Gm-Message-State: AOJu0Yy5zomTBQV1LwoZBw0AEJJ+HpCssaUQM9Wht5D5wBCfkdcCSoGT HcMFN1HlNHK0JnoQOcNomye0ikRSgPSP5BJJAPyy6kHGEMpZdkC/1nX2wKqulaiNZQ== X-Gm-Gg: ASbGnctlceNEi9ifH0pEkC7iVh3+uFAdVPbqb5AtUTp9VnxdDDPsQys2Ym0EFzwl39b OHGgMQbvOWZUSQaVLK0fa6TM6KmbTigrmGnI24BMEa+IoUa143ieA8FFhkjl9yei0uF3oGD20KO 1h+yObXF0Mfrfv+qq3K7Nh9CQ2qEtnpBuJF+BRlB7uYIwLgNpZ1CWLoyDBYjiDS/qtQbbei5fqn MZXWqgLXqEe4X4Vsuc4yR+8wghDTmLwj/atGJo2EhjoHakZO0ObduhCe11N/ks= X-Google-Smtp-Source: AGHT+IFXENev6IbTXgpUxqsy19jG6O9t1svzbpqwBvn/CFq9By2c11IHTF+rljpappZVyxsw9blo8Q== X-Received: by 2002:a17:903:1c2:b0:216:2c3b:61ba with SMTP id d9443c01a7336-219e6f3320dmr34844205ad.56.1734707858546; Fri, 20 Dec 2024 07:17:38 -0800 (PST) Received: from localhost ([240e:404:6e10:2b36:20a1:a4d1:f531:7695]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-219dca029ccsm30080935ad.260.2024.12.20.07.17.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Dec 2024 07:17:38 -0800 (PST) From: Julian Sun To: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org Cc: tytso@mit.edu, adilger.kernel@dilger.ca, jack@suse.cz, boyu.mt@taobao.com, tm@tao.ma, Julian Sun Subject: [PATCH 7/7] ext4: Store truncated large files as inline data. Date: Fri, 20 Dec 2024 23:16:25 +0800 Message-Id: <20241220151625.19769-8-sunjunchao2870@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20241220151625.19769-1-sunjunchao2870@gmail.com> References: <20241220151625.19769-1-sunjunchao2870@gmail.com> 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 Content-Type: text/plain; charset="utf-8" Ext4 provides the flexibility to store file data inline, directly within the inode, and also supports automatic conversion from inline to extent data when necessary. However, it lacks a mechanism to convert extent-based data to inline data, even if the file size permits. This patch fills the gap by automatically converting truncated files to inline data when possible, resulting in improved disk space efficiency. Below is a comparison of results before and after applying the patch set. Before: root@q:linux# dd if=3D/dev/urandom bs=3D1M count=3D10 of=3D/mnt/ext4/test 10+0 records in 10+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.0770325 s, 136 MB/s root@q:linux# filefrag -v /mnt/ext4/test Filesystem type is: ef53 File size of /mnt/ext4/test is 10485760 (2560 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 2559: 0.. 0: 0: last,= unknown_loc,delalloc,eof /mnt/ext4/test: 1 extent found root@q:linux# echo a > /mnt/ext4/test root@q:linux# filefrag -v /mnt/ext4/test Filesystem type is: ef53 File size of /mnt/ext4/test is 2 (1 block of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 0: 34304.. 34304: 1: last,= eof /mnt/ext4/test: 1 extent found After: root@q:linux# dd if=3D/dev/urandom bs=3D1M count=3D10 of=3D/mnt/ext4/test 10+0 records in 10+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.0883107 s, 119 MB/s root@q:linux# filefrag -v /mnt/ext4/test Filesystem type is: ef53 File size of /mnt/ext4/test is 10485760 (2560 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 2559: 38912.. 41471: 2560: last,= unknown_loc,delalloc,eof /mnt/ext4/test: 1 extent found root@q:linux# echo a > /mnt/ext4/test root@q:linux# filefrag -v /mnt/ext4/test Filesystem type is: ef53 Filesystem cylinder groups approximately 78 File size of /mnt/ext4/test is 2 (1 block of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 1: 4340520.. 4340521: 2: last,= not_aligned,inline,eof /mnt/ext4/test: 1 extent found Using filefrag, we can see that after applying this patch, large truncated files also utilize the inline data feature. This patch has been tested with xfstests' check -g and has not introduced any additional failures. Signed-off-by: Julian Sun --- fs/ext4/inline.c | 24 +++++++++++++++++++++++- fs/ext4/inode.c | 5 +++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 2abb35f1555d..ff107f7ab936 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -667,13 +667,22 @@ static int ext4_generic_write_inline_data(struct addr= ess_space *mapping, struct folio *folio; struct ext4_iloc iloc; int retries =3D 0; + bool none_inline_data =3D inode->i_blocks !=3D 0; + int credits; =20 ret =3D ext4_get_inode_loc(inode, &iloc); if (ret) return ret; =20 retry_journal: - handle =3D ext4_journal_start(inode, EXT4_HT_INODE, 1); + if (none_inline_data) + if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) + credits =3D ext4_writepage_trans_blocks(inode); + else + credits =3D ext4_blocks_for_truncate(inode); + else + credits =3D 1; + handle =3D ext4_journal_start(inode, EXT4_HT_INODE, credits); if (IS_ERR(handle)) { ret =3D PTR_ERR(handle); goto out_release_bh; @@ -698,6 +707,19 @@ static int ext4_generic_write_inline_data(struct addre= ss_space *mapping, goto out_release_bh; } =20 + if (none_inline_data) { + down_write(&EXT4_I(inode)->i_data_sem); + ext4_es_remove_extent(inode, 0, EXT_MAX_BLOCKS); + + if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) + ret =3D ext4_ext_remove_space(inode, 0, + EXT_MAX_BLOCKS - 1); + else + ret =3D ext4_ind_remove_space(handle, inode, 0, + EXT_MAX_BLOCKS); + up_write(&EXT4_I(inode)->i_data_sem); + } + folio =3D __filemap_get_folio(mapping, 0, FGP_WRITEBEGIN | FGP_NOFS, mapping_gfp_mask(mapping)); if (IS_ERR(folio)) { diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 54bdd4884fe6..fb1e4caa37b0 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -4164,6 +4164,11 @@ int ext4_truncate(struct inode *inode) if (inode->i_size & (inode->i_sb->s_blocksize - 1)) ext4_block_truncate_page(handle, mapping, inode->i_size); =20 + if (ext4_has_feature_inline_data(inode->i_sb) && + !(ei->i_flags & (EXT4_EA_INODE_FL|EXT4_DAX_FL)) && + inode->i_size < ext4_get_max_inline_size(inode)) + ext4_set_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA); + /* * We add the inode to the orphan list, so that if this * truncate spans multiple transactions, and we crash, we will --=20 2.39.5