From: Andrei Vagin <avagin@gmail.com>
Required for a new PAGEMAP_SCAN test to verify guard region reporting.
Signed-off-by: Andrei Vagin <avagin@gmail.com>
---
tools/include/uapi/linux/fs.h | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/tools/include/uapi/linux/fs.h b/tools/include/uapi/linux/fs.h
index 8a27bc5c7a7f..24ddf7bc4f25 100644
--- a/tools/include/uapi/linux/fs.h
+++ b/tools/include/uapi/linux/fs.h
@@ -40,6 +40,15 @@
#define BLOCK_SIZE_BITS 10
#define BLOCK_SIZE (1<<BLOCK_SIZE_BITS)
+/* flags for integrity meta */
+#define IO_INTEGRITY_CHK_GUARD (1U << 0) /* enforce guard check */
+#define IO_INTEGRITY_CHK_REFTAG (1U << 1) /* enforce ref check */
+#define IO_INTEGRITY_CHK_APPTAG (1U << 2) /* enforce app check */
+
+#define IO_INTEGRITY_VALID_FLAGS (IO_INTEGRITY_CHK_GUARD | \
+ IO_INTEGRITY_CHK_REFTAG | \
+ IO_INTEGRITY_CHK_APPTAG)
+
#define SEEK_SET 0 /* seek relative to beginning of file */
#define SEEK_CUR 1 /* seek relative to current file position */
#define SEEK_END 2 /* seek relative to end of file */
@@ -329,9 +338,16 @@ typedef int __bitwise __kernel_rwf_t;
/* per-IO negation of O_APPEND */
#define RWF_NOAPPEND ((__force __kernel_rwf_t)0x00000020)
+/* Atomic Write */
+#define RWF_ATOMIC ((__force __kernel_rwf_t)0x00000040)
+
+/* buffered IO that drops the cache after reading or writing data */
+#define RWF_DONTCACHE ((__force __kernel_rwf_t)0x00000080)
+
/* mask of flags supported by the kernel */
#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT |\
- RWF_APPEND | RWF_NOAPPEND)
+ RWF_APPEND | RWF_NOAPPEND | RWF_ATOMIC |\
+ RWF_DONTCACHE)
#define PROCFS_IOCTL_MAGIC 'f'
@@ -347,6 +363,7 @@ typedef int __bitwise __kernel_rwf_t;
#define PAGE_IS_PFNZERO (1 << 5)
#define PAGE_IS_HUGE (1 << 6)
#define PAGE_IS_SOFT_DIRTY (1 << 7)
+#define PAGE_IS_GUARD (1 << 8)
/*
* struct page_region - Page region with flags
--
2.49.0.395.g12beb8f557-goog
On Mon, Mar 24, 2025 at 06:53:27AM +0000, Andrei Vagin wrote: > From: Andrei Vagin <avagin@gmail.com> > > Required for a new PAGEMAP_SCAN test to verify guard region reporting. > > Signed-off-by: Andrei Vagin <avagin@gmail.com> Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> > --- > tools/include/uapi/linux/fs.h | 19 ++++++++++++++++++- > 1 file changed, 18 insertions(+), 1 deletion(-) > > diff --git a/tools/include/uapi/linux/fs.h b/tools/include/uapi/linux/fs.h > index 8a27bc5c7a7f..24ddf7bc4f25 100644 > --- a/tools/include/uapi/linux/fs.h > +++ b/tools/include/uapi/linux/fs.h > @@ -40,6 +40,15 @@ > #define BLOCK_SIZE_BITS 10 > #define BLOCK_SIZE (1<<BLOCK_SIZE_BITS) > > +/* flags for integrity meta */ > +#define IO_INTEGRITY_CHK_GUARD (1U << 0) /* enforce guard check */ > +#define IO_INTEGRITY_CHK_REFTAG (1U << 1) /* enforce ref check */ > +#define IO_INTEGRITY_CHK_APPTAG (1U << 2) /* enforce app check */ > + > +#define IO_INTEGRITY_VALID_FLAGS (IO_INTEGRITY_CHK_GUARD | \ > + IO_INTEGRITY_CHK_REFTAG | \ > + IO_INTEGRITY_CHK_APPTAG) > + > #define SEEK_SET 0 /* seek relative to beginning of file */ > #define SEEK_CUR 1 /* seek relative to current file position */ > #define SEEK_END 2 /* seek relative to end of file */ > @@ -329,9 +338,16 @@ typedef int __bitwise __kernel_rwf_t; > /* per-IO negation of O_APPEND */ > #define RWF_NOAPPEND ((__force __kernel_rwf_t)0x00000020) > > +/* Atomic Write */ > +#define RWF_ATOMIC ((__force __kernel_rwf_t)0x00000040) > + > +/* buffered IO that drops the cache after reading or writing data */ > +#define RWF_DONTCACHE ((__force __kernel_rwf_t)0x00000080) > + > /* mask of flags supported by the kernel */ > #define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT |\ > - RWF_APPEND | RWF_NOAPPEND) > + RWF_APPEND | RWF_NOAPPEND | RWF_ATOMIC |\ > + RWF_DONTCACHE) > > #define PROCFS_IOCTL_MAGIC 'f' > > @@ -347,6 +363,7 @@ typedef int __bitwise __kernel_rwf_t; > #define PAGE_IS_PFNZERO (1 << 5) > #define PAGE_IS_HUGE (1 << 6) > #define PAGE_IS_SOFT_DIRTY (1 << 7) > +#define PAGE_IS_GUARD (1 << 8) > > /* > * struct page_region - Page region with flags > -- > 2.49.0.395.g12beb8f557-goog >
© 2016 - 2025 Red Hat, Inc.