From 2eaae0528454594ceaa09d0a64ced6dce14465f8 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Mon, 22 Dec 2025 06:20:25 +0000 Subject: [PATCH] import OL man-pages-6.06-12.el10_1 --- RHEL-115501.patch | 33 +++++++++++++ RHEL-86830.patch | 121 +++++++++++++++++++++++++++++++++++++++++++++ RHEL-87647-1.patch | 107 +++++++++++++++++++++++++++++++++++++++ RHEL-87647-2.patch | 49 ++++++++++++++++++ RHEL-87647-3.patch | 81 ++++++++++++++++++++++++++++++ RHEL-87647-4.patch | 36 ++++++++++++++ man-pages.spec | 33 ++++++++++++- 7 files changed, 459 insertions(+), 1 deletion(-) create mode 100644 RHEL-115501.patch create mode 100644 RHEL-86830.patch create mode 100644 RHEL-87647-1.patch create mode 100644 RHEL-87647-2.patch create mode 100644 RHEL-87647-3.patch create mode 100644 RHEL-87647-4.patch diff --git a/RHEL-115501.patch b/RHEL-115501.patch new file mode 100644 index 0000000..21afcb1 --- /dev/null +++ b/RHEL-115501.patch @@ -0,0 +1,33 @@ +commit 6f505f11556a13dd229dea904f54da2c1f3f90d4 +Author: tyberry@redhat.com +Date: Tue Nov 26 11:12:03 2024 -0500 + + madvise.2: MADV_SOFT_OFFLINE requests can report EBUSY + + If the page could not be offlined madvise will report EBUSY. + This might occur if the page is currently in use or locked. + + Signed-off-by: Tyonnchie Berry + Message-Id: + Acked-by: "Luis Claudio R. Goncalves" + [alx: wfix, ffix, and other tweaks] + Signed-off-by: Alejandro Colomar + +diff --git a/man2/madvise.2 b/man2/madvise.2 +index 4f2210ee2..0dd481d21 100644 +--- a/man2/madvise.2 ++++ b/man2/madvise.2 +@@ -702,6 +702,13 @@ The map exists, but the area maps something that isn't a file. + .BR MADV_COLLAPSE ) + Could not charge hugepage to cgroup: cgroup limit exceeded. + .TP ++.B EBUSY ++(for ++.BR MADV_SOFT_OFFLINE ) ++Any pages within the specified address range ++could not be offlined. ++This might occur if the page is currently in use or locked. ++.TP + .B EFAULT + .I advice + is diff --git a/RHEL-86830.patch b/RHEL-86830.patch new file mode 100644 index 0000000..4efef22 --- /dev/null +++ b/RHEL-86830.patch @@ -0,0 +1,121 @@ +commit 6ad569611a1b5c7e4d8c2f019d04bacaa85dbbce +Author: Guillaume Nault +Date: Wed Oct 8 21:12:23 2025 +0200 + + man/man7/rtnetlink.7: Document metrics attributes (RTAX_*). + + Add a brief explanation of the RTAX_* attributes that can be used in + RTA_METRICS. + + Signed-off-by: Guillaume Nault + Message-ID: <67e7f52aad3d777ef1075eca902d0d235e0d3753.1759950455.git.gnault@redhat.com> + [alx: ffix] + Signed-off-by: Alejandro Colomar + + Conflicts: + Fixed a missing dot typo. + +diff -Nrup a/man7/rtnetlink.7 b/man7/rtnetlink.7 +--- a/man7/rtnetlink.7 2024-02-11 19:59:38.000000000 -0500 ++++ b/man7/rtnetlink.7 2025-11-19 11:05:46.395976625 -0500 +@@ -329,10 +329,14 @@ RTA_OIF:int:Output interface index + RTA_GATEWAY:protocol address:The gateway of the route + RTA_PRIORITY:int:Priority of route + RTA_PREFSRC:protocol address:Preferred source address +-RTA_METRICS:int:Route metric ++RTA_METRICS::T{ ++Route metrics ++.br ++(see below). ++T} + RTA_MULTIPATH::T{ + Multipath nexthop data +-br ++.br + (see below). + T} + RTA_PROTOINFO::No longer used +@@ -371,6 +375,83 @@ routes (in seconds) + T} + .TE + .IP ++.B RTA_METRICS ++contains an array of ++.I struct rtattr ++with their corresponding attributes: ++.RS ++.IP ++.TS ++tab(:); ++c s s ++lb l lx. ++Attributes ++rta_type:Value type:Description ++_ ++RTAX_UNSPEC:-:unspecified ++RTAX_LOCK:__u32:T{ ++Bit field indicating which RTAX_* attributes are locked. ++T} ++RTAX_MTU:__u32:T{ ++Maximum Transmission Unit for this route. ++T} ++RTAX_WINDOW:__u32:T{ ++Maximum size of the receive window for this route. ++T} ++RTAX_RTT:__u32:T{ ++Estimated round-trip time for this route. ++T} ++RTAX_RTTVAR:__u32:T{ ++Estimated round-trip time variation for this route. ++T} ++RTAX_SSTHRESH:__u32:T{ ++Slow start threshold to use for this route. ++T} ++RTAX_CWND:__u32:T{ ++Maximum size of the congestion window for this route. ++T} ++RTAX_ADVMSS:__u32:T{ ++Maximum Segment Size to advertise for this route. ++T} ++RTAX_REORDERING:__u32:T{ ++Initial reordering level of packets for this route. ++T} ++RTAX_HOPLIMIT:__u32:T{ ++Hop limit (TTL) to use for this route. ++T} ++RTAX_INITCWND:__u32:T{ ++Initial congestion window to use for this route. ++T} ++RTAX_FEATURES:__u32:T{ ++Features to enable for this route specifically. ++T} ++RTAX_RTO_MIN:__u32:T{ ++Minimum Retransmission TimeOut to use for this route. ++T} ++RTAX_INITRWND:__u32:T{ ++Initial size of the receive window for this route. ++T} ++RTAX_QUICKACK:__u32:T{ ++Use quick ack for this route. ++T} ++RTAX_CC_ALGO:asciiz string:T{ ++Congestion Control algorithm to use for this route. ++T} ++RTAX_FASTOPEN_NO_COOKIE:__u32:T{ ++Allow TCP Fast Open without cookie. ++T} ++.TE ++.RE ++.IP ++Metrics that are locked with ++.B RTAX_LOCK ++take precedence over the values normally used by the kernel ++(computed or assigned by a sysctl or setsockopt(2)). ++Therefore, some metrics, like ++.BR RTAX_RTO_MIN , ++have no effect unless their bit is set in ++.BR RTAX_LOCK . ++.IP + .B RTA_MULTIPATH + contains several packed instances of + .I struct rtnexthop diff --git a/RHEL-87647-1.patch b/RHEL-87647-1.patch new file mode 100644 index 0000000..4ddc25d --- /dev/null +++ b/RHEL-87647-1.patch @@ -0,0 +1,107 @@ +commit 8c967453fc1c4bd5274d90db22fc857d87e13d12 +Author: Himanshu Madhani +Date: Mon Jul 22 09:57:22 2024 +0000 + + readv.2: Document RWF_ATOMIC flag + + Add RWF_ATOMIC flag description for pwritev2(). + + Signed-off-by: Himanshu Madhani + [jpg: complete rewrite] + Signed-off-by: John Garry + Cc: + Cc: Jens Axboe + Cc: Christoph Hellwig + Cc: Dave Chinner + Cc: "Martin K. Petersen" + Message-ID: <20240722095723.597846-3-john.g.garry@oracle.com> + Reviewed-by: Darrick J. Wong + [alx: semantic newlines; srcfix] + Signed-off-by: Alejandro Colomar + +diff --git a/man2/readv.2 b/man2/readv.2 +index e369acdec..78232c19f 100644 +--- a/man2/readv.2 ++++ b/man2/readv.2 +@@ -237,6 +237,54 @@ the data is always appended to the end of the file. + However, if the + .I offset + argument is \-1, the current file offset is updated. ++.TP ++.BR RWF_ATOMIC " (since Linux 6.11)" ++Requires that ++writes to regular files in block-based filesystems ++be issued with torn-write protection. ++Torn-write protection means that ++for a power or any other hardware failure, ++all or none of the data from the write will be stored, ++but never a mix of old and new data. ++This flag is meaningful only for ++.BR pwritev2 (), ++and its effect applies only to ++the data range written by the system call. ++The total write length must be power-of-2 ++and must be sized in the range ++.RI [ stx_atomic_write_unit_min , ++.IR stx_atomic_write_unit_max ]. ++The write must be at a naturally-aligned offset within the file ++with respect to the total write length. ++For example, ++a write of length 32KiB at a file offset of 32KiB is permitted, ++however a write of length 32KiB at a file offset of 48KiB is not permitted. ++The upper limit of ++.I iovcnt ++for ++.BR pwritev2 () ++is given by the value in ++.I stx_atomic_write_segments_max. ++Torn-write protection only works with ++.B O_DIRECT ++flag, ++i.e. buffered writes are not supported. ++To guarantee consistency from the write ++between a file's in-core state ++with the storage device, ++.B O_SYNC ++or ++.B O_DSYNC ++must be specified for ++.BR open (2). ++The same synchronized I/O guarantees as described in ++.BR open (2) ++are provided when these flags ++or their equivalent flags and system calls are used ++(e.g., if ++.B RWF_SYNC ++is specified for ++.BR pwritev2 ()). + .SH RETURN VALUE + On success, + .BR readv (), +@@ -280,9 +328,26 @@ values overflows an + value. + .TP + .B EINVAL ++If ++.B RWF_ATOMIC ++is specified, ++the combination of the sum of the ++.I iov_len ++values and the ++.I offset ++value does not comply with the length and offset torn-write protection rules. ++.TP ++.B EINVAL + The vector count, + .IR iovcnt , + is less than zero or greater than the permitted maximum. ++If ++.B RWF_ATOMIC ++is specified, ++this maximum is given by the ++.I stx_atomic_write_segments_max ++value from ++.I statx. + .TP + .B EOPNOTSUPP + An unknown flag is specified in \fIflags\fP. diff --git a/RHEL-87647-2.patch b/RHEL-87647-2.patch new file mode 100644 index 0000000..8642a19 --- /dev/null +++ b/RHEL-87647-2.patch @@ -0,0 +1,49 @@ +commit ed4bb613b3fb0f5ed1c365e4280e0517d36bbf25 +Author: John Garry +Date: Mon Jul 22 09:57:23 2024 +0000 + + io_submit.2: Document RWF_ATOMIC + + Document RWF_ATOMIC for asynchronous I/O. + + Reviewed-by: "Darrick J. Wong" + Signed-off-by: John Garry + Cc: + Cc: Jens Axboe + Cc: Christoph Hellwig + Cc: Dave Chinner + Cc: "Martin K. Petersen" + Message-ID: <20240722095723.597846-4-john.g.garry@oracle.com> + [alx: wfix; ffix] + Signed-off-by: Alejandro Colomar + +diff --git a/man2/io_submit.2 b/man2/io_submit.2 +index 5e4e41af0..c3d86b4c4 100644 +--- a/man2/io_submit.2 ++++ b/man2/io_submit.2 +@@ -140,6 +140,25 @@ as well the description of + .B O_SYNC + in + .BR open (2). ++.TP ++.BR RWF_ATOMIC " (since Linux 6.11)" ++Write a block of data such that ++a write will never be torn from power fail or similar. ++See the description of ++.B RWF_ATOMIC ++in ++.BR pwritev2 (2). ++For usage with ++.BR IOCB_CMD_PWRITEV , ++the upper vector limit is ++.I stx_atomic_write_segments_max. ++See ++.B STATX_WRITE_ATOMIC ++and ++.I stx_atomic_write_segments_max ++description ++in ++.BR statx (2). + .RE + .TP + .I aio_lio_opcode diff --git a/RHEL-87647-3.patch b/RHEL-87647-3.patch new file mode 100644 index 0000000..472e5db --- /dev/null +++ b/RHEL-87647-3.patch @@ -0,0 +1,81 @@ +commit d4de003f2d752e514f0d28e1df62583fab186a9e +Author: Himanshu Madhani +Date: Mon Jul 22 09:57:21 2024 +0000 + + statx.2: Document STATX_WRITE_ATOMIC + + Add the text to the statx man page. + + Signed-off-by: Himanshu Madhani + Reviewed-by: "Darrick J. Wong" + Signed-off-by: John Garry + Cc: + Cc: Jens Axboe + Cc: Christoph Hellwig + Cc: Dave Chinner + Cc: "Martin K. Petersen" + Message-ID: <20240722095723.597846-2-john.g.garry@oracle.com> + [alx: ffix] + Signed-off-by: Alejandro Colomar + +Conflicts: + man2/statx.2: rework due to missing intermittent patches + +--- a/man2/statx.2 2024-02-11 19:59:38.000000000 -0500 ++++ b/man2/statx.2 2025-09-15 14:26:29.527760753 -0400 +@@ -68,6 +68,11 @@ struct statx { + /* Direct I/O alignment restrictions */ + __u32 stx_dio_mem_align; + __u32 stx_dio_offset_align; ++\& ++ /* Direct I/O atomic write limits */ ++ __u32 stx_atomic_write_unit_min; ++ __u32 stx_atomic_write_unit_max; ++ __u32 stx_atomic_write_segments_max; + }; + .EE + .in +@@ -255,6 +260,10 @@ STATX_ALL The same as STATX_BASIC_STATS + STATX_MNT_ID Want stx_mnt_id (since Linux 5.8) + STATX_DIOALIGN Want stx_dio_mem_align and stx_dio_offset_align + (since Linux 6.1; support varies by filesystem) ++STATX_WRITE_ATOMIC Want stx_atomic_write_unit_min, ++ stx_atomic_write_unit_max, ++ and stx_atomic_write_segments_max. ++ (since Linux 6.11; support varies by filesystem) + .TE + .in + .P +@@ -439,6 +448,22 @@ or 0 if direct I/O is not supported on t + This will only be nonzero if + .I stx_dio_mem_align + is nonzero, and vice versa. ++.TP ++.I stx_atomic_write_unit_min ++.TQ ++.I stx_atomic_write_unit_max ++The minimum and maximum sizes (in bytes) supported for direct I/O ++.RB ( O_DIRECT ) ++on the file to be written with torn-write protection. ++These values are each guaranteed to be a power-of-2. ++.TP ++.I stx_atomic_write_segments_max ++The maximum number of elements in an array of vectors ++for a write with torn-write protection enabled. ++See ++.B RWF_ATOMIC ++flag for ++.BR pwritev2 (2). + .P + For further information on the above fields, see + .BR inode (7). +@@ -492,6 +517,9 @@ It cannot be written to, and all reads f + against a cryptographic hash that covers the + entire file (e.g., via a Merkle tree). + .TP ++.BR STATX_ATTR_WRITE_ATOMIC " (since Linux 6.11)" ++The file supports torn-write protection. ++.TP + .BR STATX_ATTR_DAX " (since Linux 5.8)" + The file is in the DAX (cpu direct access) state. + DAX state attempts to diff --git a/RHEL-87647-4.patch b/RHEL-87647-4.patch new file mode 100644 index 0000000..6068026 --- /dev/null +++ b/RHEL-87647-4.patch @@ -0,0 +1,36 @@ +commit d47bd08d8b254ff1dc46726e38fa205ad5eecba5 +Author: John Garry +Date: Tue Dec 3 14:53:59 2024 +0000 + + man/man2/statx.2: Update STATX_WRITE_ATOMIC filesystem support + + Linux v6.13 will include atomic write support for xfs and ext4, so + update STATX_WRITE_ATOMIC commentary to mention that. + + Cc: "Darrick J. Wong" + Cc: + Signed-off-by: John Garry + Message-ID: <20241203145359.2691972-1-john.g.garry@oracle.com> + [alx: ffix] + Signed-off-by: Alejandro Colomar + +diff --git a/man2/statx.2 b/man2/statx.2 +index c5b5a28ec..7fab1d3d8 100644 +--- a/man2/statx.2 ++++ b/man2/statx.2 +@@ -482,6 +482,15 @@ The minimum and maximum sizes (in bytes) supported for direct I/O + .RB ( O_DIRECT ) + on the file to be written with torn-write protection. + These values are each guaranteed to be a power-of-2. ++.IP ++.B STATX_WRITE_ATOMIC ++.RI ( stx_atomic_write_unit_min , ++.IR stx_atomic_write_unit_max , ++and ++.IR stx_atomic_write_segments_max ) ++is supported on block devices since Linux 6.11. ++The support on regular files varies by filesystem; ++it is supported by xfs and ext4 since Linux 6.13. + .TP + .I stx_atomic_write_segments_max + The maximum number of elements in an array of vectors diff --git a/man-pages.spec b/man-pages.spec index 0294515..95308a1 100644 --- a/man-pages.spec +++ b/man-pages.spec @@ -2,7 +2,7 @@ ## (rpmautospec version 0.6.5) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: - release_number = 8; + release_number = 12; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} @@ -71,6 +71,18 @@ Patch27: 0000-sched.7-Clarifications-corrections.patch # Add rtas.2, swapcontext.2 and cons.saver.8 man pages Patch28: additional-man-pages.patch +#Add update for RWF_ATOMIC +Patch29: RHEL-87647-1.patch +Patch30: RHEL-87647-3.patch +Patch31: RHEL-87647-2.patch +Patch32: RHEL-87647-4.patch + +# madvise(2) can return -EBUSY on MADV_SOFT_OFFLINE requests +Patch33: RHEL-115501.patch + +# rtnetlink.7: Document metrics attributes (RTAX_*) +Patch34: RHEL-86830.patch + %description A large collection of manual pages from the Linux Documentation Project (LDP). @@ -85,6 +97,12 @@ A large collection of manual pages from the Linux Documentation Project (LDP). %patch -p1 -P 26 %patch -p1 -P 27 %patch -p1 -P 28 +%patch -p1 -P 29 +%patch -p1 -P 30 +%patch -p1 -P 31 +%patch -p1 -P 32 +%patch -p1 -P 33 +%patch -p1 -P 34 ## Remove man pages we are not going to use ## @@ -138,6 +156,19 @@ fi %changelog ## START: Generated by rpmautospec +* Wed Nov 19 2025 Patsy Griffin - 6.06-12 +- rtnetlink.7: Document metrics attributes (RTAX_*) (RHEL-86830) + +* Tue Nov 11 2025 Patsy Griffin - 6.06-11 +- madvise(2): madvise can return EBUSY on MADV_SOFT_OFFLINE requests. + (RHEL-115501) + +* Thu Sep 18 2025 Patsy Griffin - 6.06-10 +- Document RWF_ATOMIC, STATX_ATTR_WRITE_ATOMIC flags (RHEL-87647) + +* Wed Aug 20 2025 Martin Coufal - 6.06-9 +- Update gating.yaml + * Fri Aug 15 2025 Patsy Griffin - 6.06-8 - Remove man-pages-additional-20140218.tar.xz from sources. (RHEL-101696)