statx: define STATX_ATTR_VERITY
authorEric Biggers <ebiggers@google.com>
Tue, 29 Oct 2019 20:41:38 +0000 (13:41 -0700)
committerEric Biggers <ebiggers@google.com>
Wed, 13 Nov 2019 20:15:34 +0000 (12:15 -0800)
Add a statx attribute bit STATX_ATTR_VERITY which will be set if the
file has fs-verity enabled.  This is the statx() equivalent of
FS_VERITY_FL which is returned by FS_IOC_GETFLAGS.

This is useful because it allows applications to check whether a file is
a verity file without opening it.  Opening a verity file can be
expensive because the fsverity_info is set up on open, which involves
parsing metadata and optionally verifying a cryptographic signature.

This is analogous to how various other bits are exposed through both
FS_IOC_GETFLAGS and statx(), e.g. the encrypt bit.

Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Acked-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
include/linux/stat.h
include/uapi/linux/stat.h

index 765573d..528c4ba 100644 (file)
@@ -33,7 +33,8 @@ struct kstat {
         STATX_ATTR_IMMUTABLE |                         \
         STATX_ATTR_APPEND |                            \
         STATX_ATTR_NODUMP |                            \
-        STATX_ATTR_ENCRYPTED                           \
+        STATX_ATTR_ENCRYPTED |                         \
+        STATX_ATTR_VERITY                              \
         )/* Attrs corresponding to FS_*_FL flags */
        u64             ino;
        dev_t           dev;
index 7b35e98..ad80a5c 100644 (file)
@@ -167,8 +167,8 @@ struct statx {
 #define STATX_ATTR_APPEND              0x00000020 /* [I] File is append-only */
 #define STATX_ATTR_NODUMP              0x00000040 /* [I] File is not to be dumped */
 #define STATX_ATTR_ENCRYPTED           0x00000800 /* [I] File requires key to decrypt in fs */
-
 #define STATX_ATTR_AUTOMOUNT           0x00001000 /* Dir: Automount trigger */
+#define STATX_ATTR_VERITY              0x00100000 /* [I] Verity protected file */
 
 
 #endif /* _UAPI_LINUX_STAT_H */