Skip to content

Commit bf3aa9d

Browse files
committed
Merge tag 'xfs-6.11-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux
Pull xfs updates from Chandan Babu: "Major changes in this release are limited to enabling FITRIM on realtime devices and Byte-based grant head log reservation tracking. The remaining changes are limited to fixes and cleanups included in this pull request. Core: - Enable FITRIM on the realtime device - Introduce byte-based grant head log reservation tracking instead of physical log location tracking. This allows grant head to track a full 64 bit bytes space and hence overcome the limit of 4GB indexing that has been present until now Fixes: - xfs_flush_unmap_range() and xfs_prepare_shift() should consider RT extents in the flush unmap range - Implement bounds check when traversing log operations during log replay - Prevent out of bounds access when traversing a directory data block - Prevent incorrect ENOSPC when concurrently performing file creation and file writes - Fix rtalloc rotoring when delalloc is in use Cleanups: - Clean up I/O path inode locking helpers and the page fault handler - xfs: hoist inode operations to libxfs in anticipation of the metadata inode directory feature, which maintains a directory tree of metadata inodes. This will be necessary for further enhancements to the realtime feature, subvolume support - Clean up some warts in the extent freeing log intent code - Clean up the refcount and rmap intent code before adding support for realtime devices - Provide the correct email address for sysfs ABI documentation" * tag 'xfs-6.11-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (80 commits) xfs: fix rtalloc rotoring when delalloc is in use xfs: get rid of xfs_ag_resv_rmapbt_alloc xfs: skip flushing log items during push xfs: grant heads track byte counts, not LSNs xfs: pass the full grant head to accounting functions xfs: track log space pinned by the AIL xfs: collapse xlog_state_set_callback in caller xfs: l_last_sync_lsn is really AIL state xfs: ensure log tail is always up to date xfs: background AIL push should target physical space xfs: AIL doesn't need manual pushing xfs: move and rename xfs_trans_committed_bulk xfs: fix the contact address for the sysfs ABI documentation xfs: Avoid races with cnt_btree lastrec updates xfs: move xfs_refcount_update_defer_add to xfs_refcount_item.c xfs: simplify usage of the rcur local variable in xfs_refcount_finish_one xfs: don't bother calling xfs_refcount_finish_one_cleanup in xfs_refcount_finish_one xfs: reuse xfs_refcount_update_cancel_item xfs: add a ci_entry helper xfs: remove xfs_trans_set_refcount_flags ...
2 parents 0260b0a + 2bf6e35 commit bf3aa9d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+3790
-3416
lines changed
Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
What: /sys/fs/xfs/<disk>/log/log_head_lsn
22
Date: July 2014
33
KernelVersion: 3.17
4-
Contact: xfs@oss.sgi.com
4+
Contact: linux-xfs@vger.kernel.org
55
Description:
66
The log sequence number (LSN) of the current head of the
77
log. The LSN is exported in "cycle:basic block" format.
@@ -10,30 +10,28 @@ Users: xfstests
1010
What: /sys/fs/xfs/<disk>/log/log_tail_lsn
1111
Date: July 2014
1212
KernelVersion: 3.17
13-
Contact: xfs@oss.sgi.com
13+
Contact: linux-xfs@vger.kernel.org
1414
Description:
1515
The log sequence number (LSN) of the current tail of the
1616
log. The LSN is exported in "cycle:basic block" format.
1717

18-
What: /sys/fs/xfs/<disk>/log/reserve_grant_head
19-
Date: July 2014
20-
KernelVersion: 3.17
21-
Contact: xfs@oss.sgi.com
18+
What: /sys/fs/xfs/<disk>/log/reserve_grant_head_bytes
19+
Date: June 2024
20+
KernelVersion: 6.11
21+
Contact: linux-xfs@vger.kernel.org
2222
Description:
2323
The current state of the log reserve grant head. It
2424
represents the total log reservation of all currently
25-
outstanding transactions. The grant head is exported in
26-
"cycle:bytes" format.
25+
outstanding transactions in bytes.
2726
Users: xfstests
2827

29-
What: /sys/fs/xfs/<disk>/log/write_grant_head
30-
Date: July 2014
31-
KernelVersion: 3.17
32-
Contact: xfs@oss.sgi.com
28+
What: /sys/fs/xfs/<disk>/log/write_grant_head_bytes
29+
Date: June 2024
30+
KernelVersion: 6.11
31+
Contact: linux-xfs@vger.kernel.org
3332
Description:
3433
The current state of the log write grant head. It
3534
represents the total log reservation of all currently
3635
outstanding transactions, including regrants due to
37-
rolling transactions. The grant head is exported in
38-
"cycle:bytes" format.
36+
rolling transactions in bytes.
3937
Users: xfstests

fs/xfs/Kconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,18 @@ config XFS_DEBUG
217217

218218
Say N unless you are an XFS developer, or you play one on TV.
219219

220+
config XFS_DEBUG_EXPENSIVE
221+
bool "XFS expensive debugging checks"
222+
depends on XFS_FS && XFS_DEBUG
223+
help
224+
Say Y here to get an XFS build with expensive debugging checks
225+
enabled. These checks may affect performance significantly.
226+
227+
Note that the resulting code will be HUGER and SLOWER, and probably
228+
not useful unless you are debugging a particular problem.
229+
230+
Say N unless you are an XFS developer, or you play one on TV.
231+
220232
config XFS_ASSERT_FATAL
221233
bool "XFS fatal asserts"
222234
default y

fs/xfs/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ xfs-y += $(addprefix libxfs/, \
4040
xfs_iext_tree.o \
4141
xfs_inode_fork.o \
4242
xfs_inode_buf.o \
43+
xfs_inode_util.o \
4344
xfs_log_rlimit.o \
4445
xfs_ag_resv.o \
4546
xfs_parent.o \

fs/xfs/libxfs/xfs_ag.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1008,7 +1008,7 @@ xfs_ag_shrink_space(
10081008
goto resv_err;
10091009

10101010
err2 = xfs_free_extent_later(*tpp, args.fsbno, delta, NULL,
1011-
XFS_AG_RESV_NONE, true);
1011+
XFS_AG_RESV_NONE, XFS_FREE_EXTENT_SKIP_DISCARD);
10121012
if (err2)
10131013
goto resv_err;
10141014

fs/xfs/libxfs/xfs_ag_resv.h

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,4 @@ xfs_perag_resv(
3333
}
3434
}
3535

36-
/*
37-
* RMAPBT reservation accounting wrappers. Since rmapbt blocks are sourced from
38-
* the AGFL, they are allocated one at a time and the reservation updates don't
39-
* require a transaction.
40-
*/
41-
static inline void
42-
xfs_ag_resv_rmapbt_alloc(
43-
struct xfs_mount *mp,
44-
xfs_agnumber_t agno)
45-
{
46-
struct xfs_alloc_arg args = { NULL };
47-
struct xfs_perag *pag;
48-
49-
args.len = 1;
50-
pag = xfs_perag_get(mp, agno);
51-
xfs_ag_resv_alloc_extent(pag, XFS_AG_RESV_RMAPBT, &args);
52-
xfs_perag_put(pag);
53-
}
54-
5536
#endif /* __XFS_AG_RESV_H__ */

0 commit comments

Comments
 (0)