mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
![Amir Goldstein](/assets/img/avatar_default.png)
The immutable and append-only properties on an inode are published on the inode's i_flags and enforced by the VFS. Create a helper to fill the corresponding STATX_ATTR_ flags in the kstat structure from the inode's i_flags. Only orange was converted to use this helper. Other filesystems could use it in the future. Suggested-by: Miklos Szeredi <miklos@szeredi.hu> Signed-off-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
55 lines
1.3 KiB
C
55 lines
1.3 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>
|
|
|
|
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 */
|
|
#define KSTAT_ATTR_VFS_FLAGS \
|
|
(STATX_ATTR_IMMUTABLE | \
|
|
STATX_ATTR_APPEND \
|
|
) /* Attrs corresponding to S_* flags that are enforced by the VFS */
|
|
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;
|
|
u64 mnt_id;
|
|
};
|
|
|
|
#endif
|