public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Mahmoud Adam <mngyadam@amazon.com>
To: <gregkh@linuxfoundation.org>
Cc: <djwong@kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH 6.1 4/6] xfs: short circuit xfs_growfs_data_private() if delta is zero
Date: Wed, 3 Apr 2024 14:59:53 +0200	[thread overview]
Message-ID: <20240403125949.33676-5-mngyadam@amazon.com> (raw)
In-Reply-To: <20240403125949.33676-1-mngyadam@amazon.com>

From: Eric Sandeen <sandeen@redhat.com>

commit 84712492e6dab803bf595fb8494d11098b74a652 upstream.

Although xfs_growfs_data() doesn't call xfs_growfs_data_private()
if in->newblocks == mp->m_sb.sb_dblocks, xfs_growfs_data_private()
further massages the new block count so that we don't i.e. try
to create a too-small new AG.

This may lead to a delta of "0" in xfs_growfs_data_private(), so
we end up in the shrink case and emit the EXPERIMENTAL warning
even if we're not changing anything at all.

Fix this by returning straightaway if the block delta is zero.

(nb: in older kernels, the result of entering the shrink case
with delta == 0 may actually let an -ENOSPC escape to userspace,
which is confusing for users.)

Fixes: fb2fc1720185 ("xfs: support shrinking unused space in the last AG")
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
Signed-off-by: Mahmoud Adam <mngyadam@amazon.com>
---
 fs/xfs/xfs_fsops.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c
index 13851c0d640b..332da0d7b85c 100644
--- a/fs/xfs/xfs_fsops.c
+++ b/fs/xfs/xfs_fsops.c
@@ -129,6 +129,10 @@ xfs_growfs_data_private(
 	if (delta < 0 && nagcount < 2)
 		return -EINVAL;

+	/* No work to do */
+	if (delta == 0)
+		return 0;
+
 	oagcount = mp->m_sb.sb_agcount;
 	/* allocate the new per-ag structures */
 	if (nagcount > oagcount) {
--
2.40.1

  parent reply	other threads:[~2024-04-03 13:01 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-03 12:59 [PATCH 6.1 0/6] backport xfs fix patches reported by xfs/179/270/557/606 Mahmoud Adam
2024-04-03 12:59 ` [PATCH 6.1 1/6] xfs: allow inode inactivation during a ro mount log recovery Mahmoud Adam
2024-04-03 12:59 ` [PATCH 6.1 2/6] xfs: fix log recovery when unknown rocompat bits are set Mahmoud Adam
2024-04-03 12:59 ` [PATCH 6.1 3/6] xfs: get root inode correctly at bulkstat Mahmoud Adam
2024-04-03 12:59 ` Mahmoud Adam [this message]
2024-04-03 12:59 ` [PATCH 6.1 5/6] xfs: hoist refcount record merge predicates Mahmoud Adam
2024-04-03 12:59 ` [PATCH 6.1 6/6] xfs: estimate post-merge refcounts correctly Mahmoud Adam
2024-04-03 18:18 ` [PATCH 6.1 0/6] backport xfs fix patches reported by xfs/179/270/557/606 Darrick J. Wong
2024-04-04  5:45   ` Amir Goldstein
2024-04-04  9:15     ` Mahmoud Adam
2024-04-05  9:27       ` Greg KH
2024-04-05  9:55         ` Amir Goldstein
2024-04-11  7:22           ` Greg KH
2024-04-11 17:27             ` Leah Rumancik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240403125949.33676-5-mngyadam@amazon.com \
    --to=mngyadam@amazon.com \
    --cc=djwong@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox