[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250724081215.3943871-4-john.g.garry@oracle.com>
Date: Thu, 24 Jul 2025 08:12:15 +0000
From: John Garry <john.g.garry@...cle.com>
To: djwong@...nel.org, hch@....de, cem@...nel.org, dan.j.williams@...el.com,
willy@...radead.org, jack@...e.cz, brauner@...nel.org,
viro@...iv.linux.org.uk
Cc: linux-xfs@...r.kernel.org, linux-fsdevel@...r.kernel.org,
nvdimm@...ts.linux.dev, linux-kernel@...r.kernel.org,
John Garry <john.g.garry@...cle.com>
Subject: [PATCH v3 3/3] xfs: reject max_atomic_write mount option for no reflink
If the FS has no reflink, then atomic writes greater than 1x block are not
supported. As such, for no reflink it is pointless to accept setting
max_atomic_write when it cannot be supported, so reject max_atomic_write
mount option in this case.
It could be still possible to accept max_atomic_write option of size 1x
block if HW atomics are supported, so check for this specifically.
Fixes: 4528b9052731 ("xfs: allow sysadmins to specify a maximum atomic write limit at mount time")
Signed-off-by: John Garry <john.g.garry@...cle.com>
---
fs/xfs/xfs_mount.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index 0b690bc119d7..1ec70f4e57b4 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -784,6 +784,25 @@ xfs_set_max_atomic_write_opt(
return -EINVAL;
}
+ if (xfs_has_reflink(mp))
+ goto set_limit;
+
+ if (new_max_fsbs == 1) {
+ if (mp->m_ddev_targp->bt_awu_max ||
+ (mp->m_rtdev_targp && mp->m_rtdev_targp->bt_awu_max)) {
+ } else {
+ xfs_warn(mp,
+ "cannot support atomic writes of size %lluk with no reflink or HW support",
+ new_max_bytes >> 10);
+ return -EINVAL;
+ }
+ } else {
+ xfs_warn(mp,
+ "cannot support atomic writes of size %lluk with no reflink support",
+ new_max_bytes >> 10);
+ return -EINVAL;
+ }
+
set_limit:
error = xfs_calc_atomic_write_reservation(mp, new_max_fsbs);
if (error) {
--
2.43.5
Powered by blists - more mailing lists