1017779f1e
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>
52 lines
1.2 KiB
C
52 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _LINUX_STAT_H
|
|
#define _LINUX_STAT_H
|
|
|
|
|
|
#include <asm/stat.h>
|
|
#include <uapi/linux/stat.h>
|
|
|
|
#define S_IRWXUGO (S_IRWXU|S_IRWXG|S_IRWXO)
|
|
#define S_IALLUGO (S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO)
|
|
#define S_IRUGO (S_IRUSR|S_IRGRP|S_IROTH)
|
|
#define S_IWUGO (S_IWUSR|S_IWGRP|S_IWOTH)
|
|
#define S_IXUGO (S_IXUSR|S_IXGRP|S_IXOTH)
|
|
|
|
#define UTIME_NOW ((1l << 30) - 1l)
|
|
#define UTIME_OMIT ((1l << 30) - 2l)
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/time.h>
|
|
#include <linux/uidgid.h>
|
|
|
|
#define KSTAT_QUERY_FLAGS (AT_STATX_SYNC_TYPE)
|
|
|
|
struct kstat {
|
|
u32 result_mask; /* What fields the user got */
|
|
umode_t mode;
|
|
unsigned int nlink;
|
|
uint32_t blksize; /* Preferred I/O size */
|
|
u64 attributes;
|
|
u64 attributes_mask;
|
|
#define KSTAT_ATTR_FS_IOC_FLAGS \
|
|
(STATX_ATTR_COMPRESSED | \
|
|
STATX_ATTR_IMMUTABLE | \
|
|
STATX_ATTR_APPEND | \
|
|
STATX_ATTR_NODUMP | \
|
|
STATX_ATTR_ENCRYPTED | \
|
|
STATX_ATTR_VERITY \
|
|
)/* Attrs corresponding to FS_*_FL flags */
|
|
u64 ino;
|
|
dev_t dev;
|
|
dev_t rdev;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
loff_t size;
|
|
struct timespec64 atime;
|
|
struct timespec64 mtime;
|
|
struct timespec64 ctime;
|
|
struct timespec64 btime; /* File creation time */
|
|
u64 blocks;
|
|
};
|
|
|
|
#endif
|