From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (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 B387540FDAA for ; Thu, 30 Apr 2026 17:21:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777569671; cv=none; b=mNbd10GXzWftFxtxmqlq8p8pg8b6a0BfsXrIltfU7NtFDOTS+ua9FRAqyENPYNEhfCIcpoJ83FphIJcHi79QmIC7s9LnmY1lH2vf7G6fu96cv05JmpocOJjnVkV9gAIzSW/AymTZc0On6lhHRKbzUfWscJzfc6I6wZltbQf1jUg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777569671; c=relaxed/simple; bh=Y6cqM4EvlGBOS6YziDRM0sHRZX+RsE98GsTLUFKYfi0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mVGqoCj7OdpjFfmgULHp/pu6dF/pylSOx0dw83QL6KBIHvU1WxEIQPUN8FYaNNToXuXH4nFqTEHNMD2dT0kxo6O9ac82igkbDq8hZYUl5sgpkXKowJElhYyqVq1kFYkbB56w85TOz43AjPAsNy+e9UCWGvDl3kSuG4jBoTbd6gw= 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=nx90Pvv4; arc=none smtp.client-ip=209.85.210.172 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="nx90Pvv4" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-82f0647ce27so114760b3a.1 for ; Thu, 30 Apr 2026 10:21:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777569669; x=1778174469; 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=jr3axVcnDiZy1sAOlbAWcyfqiZ/0xXxvJPVhUZbgyfs=; b=nx90Pvv44opU3V4qRyXp7aVoeh7IvNQQDHRXO7fQzfovzK/+ycjYt1ad9OudTduNzF +ZL5N3s8uEtNjNLbmd0Jev/WbbzAW5OoddGF98RIzkVD1LN9XhCKRN7xyb9qc1HmiZWG UgbtFQOd3IMNcE5BTZGPaay2G7dPMq2pYB8HPCGyM3TY4OuNJq8FputfcXq8eJSu/td5 W5OculZopKGJFtGL32ch9vIc1Y9RV7vx92/MdXoC1nRvrJdahQRApTuE6h4hc8nmZ0dj p//XNsqWWq5hpKwdyHxs49HDCX243koCLRZqi3B8mDFLahv06Ln8VUAd5xm7NayQSTWM Y3QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777569669; x=1778174469; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jr3axVcnDiZy1sAOlbAWcyfqiZ/0xXxvJPVhUZbgyfs=; b=iMIim11jx1Tr4xBEYLqW4m4K8CybdHw5ZSjmxJ97YRIZUUaIsge5hUIb8QUAz/OuG0 Yk/aQbC8xKk/NZNb175E00zLKMKYNOCUD3+EY1TRB7ASCCdLbqlwq9yXJ16AyUb+1Hhu gm4xBIvL3ydt8CLFuq0TCDk+D9P5S8u+yPIlsYWTb4WhxVgz0MqCutmqO9hdGuLSZczP zBi8Rs7UKugWFj0PUEFjGcn9TUx5+tpHDUzLkFdozvPQtE5Wi/L41qpQqGosbLk4Wn2z pWPjo+2MGs9Wfd8KNZRltt9rDwPw1o07jl1lLbxt9TYW4Am0sh9Z7ggp3f/sooe27v+/ yAvg== X-Forwarded-Encrypted: i=1; AFNElJ/M8LAs9TTNIJMLJT2M13k594zI2jqHLhsdqRd1js/0668J1hNL/FmOeJZEChzsq8T8klunLGJP0pdSFWI=@vger.kernel.org X-Gm-Message-State: AOJu0Yzua9mLOttWlh+nlPbmi+FDDa6DVG/NtJpq9E1w27qoXAqUyt7l XnFTu30GVavU0BagmAXOToFKYvlplmtikrTXwJJCsta2wiMtqRPVcFJt X-Gm-Gg: AeBDieum2/iz5I6xrDAUmAR4lUk7knx0xpP87wtPypkn0DGQ05izXO6Y2Bu+af36CUT 7QSv56MXDWLWXFBkHxV4jzSwsP2wOP0RNEboNsllBkClh//GYbjbIiBWMFlqpqPDxH/qW3ejL6C dM7perhuzuRtQmqOpzQBJhrhn4lWGl+IFDkyy4VCtgvYvP3RwjUvwo0HcopNb6efI406QPiciQM s01XAC8qghGCXxwiPOwwaknPdyuu+H3lvypNJyFpdVuhKTXINVwvyomes/oKFG4w3ibmBYQWPf+ 1LizKiBV0AeYfKK5F2/ilpgYv1zd5uPTpsi7zWSH9nWtlfhGZUhOzhZFhSzwDN2+veb9/XzwYH0 w8H+vgRRi99iNOeVVJQLig/BR3wWHbKvu8uSYRrhmyE9Sd2+NFz0PNoH8xDLsMvZzeHzkN8hFkg UPOH+thJhvXvzYG2tsEhCCqE/N6Lo= X-Received: by 2002:a17:903:b06:b0:2ae:464f:fe3e with SMTP id d9443c01a7336-2b9a2861e94mr21157545ad.5.1777569668859; Thu, 30 Apr 2026 10:21:08 -0700 (PDT) Received: from ser8.. ([221.156.231.192]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b9caa7e7besm2043795ad.12.2026.04.30.10.21.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2026 10:21:08 -0700 (PDT) From: DaeMyung Kang To: Namjae Jeon , Hyunchul Lee Cc: Arnd Bergmann , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, DaeMyung Kang Subject: [PATCH 2/3] ntfs: redirty folio when ntfs_write_mft_block() runs out of memory Date: Fri, 1 May 2026 02:20:54 +0900 Message-ID: <0d61bd7f181f4e46207572c5d8a4b026e370a57b.1777568957.git.charsyam@gmail.com> X-Mailer: git-send-email 2.43.0 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: 8bit ntfs_write_mft_block() is called by writeback_iter() with the folio locked. When the per-call allocations for @locked_nis or @ref_inos fail, the function returns -ENOMEM directly without unlocking the folio. Any later task that needs the folio's lock then stalls, and the folio's dirty state is silently lost from the writeback iterator's point of view. Use folio_redirty_for_writepage() so the folio remains dirty for a subsequent writeback pass, unlock it, and only then return -ENOMEM so the caller can propagate the error to fsync()/sync_filesystem(). Fixes: f462fdf3d6a4 ("ntfs: reduce stack usage in ntfs_write_mft_block()") Signed-off-by: DaeMyung Kang --- fs/ntfs/mft.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/ntfs/mft.c b/fs/ntfs/mft.c index 4051b4823162..00f172fd1b21 100644 --- a/fs/ntfs/mft.c +++ b/fs/ntfs/mft.c @@ -2740,8 +2740,11 @@ static int ntfs_write_mft_block(struct folio *folio, struct writeback_control *w ntfs_debug("Entering for inode 0x%llx, attribute type 0x%x, folio index 0x%lx.", ni->mft_no, ni->type, folio->index); - if (!locked_nis || !ref_inos) + if (!locked_nis || !ref_inos) { + folio_redirty_for_writepage(wbc, folio); + folio_unlock(folio); return -ENOMEM; + } /* We have to zero every time due to mmap-at-end-of-file. */ if (folio->index >= (i_size >> folio_shift(folio))) -- 2.43.0