inode_operations
Regular
4.4
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*follow_link)(struct dentry *, void **);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
void (*put_link)(struct inode *, void *);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *);
int (*rename2)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(struct vfsmount *, struct dentry *, struct kstat *);
int (*setxattr)(struct dentry *, const char *, const void *, size_t, int);
ssize_t (*getxattr)(struct dentry *, const char *, void *, size_t);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*removexattr)(struct dentry *, const char *);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t, int *);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
4.8
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *);
int (*rename2)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(struct vfsmount *, struct dentry *, struct kstat *);
int (*setxattr)(struct dentry *, struct inode *, const char *, const void *, size_t, int);
ssize_t (*getxattr)(struct dentry *, struct inode *, const char *, void *, size_t);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*removexattr)(struct dentry *, const char *);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t, int *);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
4.10
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(struct vfsmount *, struct dentry *, struct kstat *);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t, int *);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
4.13
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t, int *);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
4.15
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t, int *);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
4.18
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t, int *);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
5.0
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
5.3
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
5.4
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
5.8
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
5.11
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
5.13
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct user_namespace *, struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct user_namespace *, struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct user_namespace *, struct inode *, struct dentry *, const char *);
int (*mkdir)(struct user_namespace *, struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct user_namespace *, struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct user_namespace *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct user_namespace *, struct dentry *, struct iattr *);
int (*getattr)(struct user_namespace *, const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct user_namespace *, struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct user_namespace *, struct inode *, struct posix_acl *, int);
int (*fileattr_set)(struct user_namespace *, struct dentry *, struct fileattr *);
int (*fileattr_get)(struct dentry *, struct fileattr *);
};
5.15
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct user_namespace *, struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int, bool);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct user_namespace *, struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct user_namespace *, struct inode *, struct dentry *, const char *);
int (*mkdir)(struct user_namespace *, struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct user_namespace *, struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct user_namespace *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct user_namespace *, struct dentry *, struct iattr *);
int (*getattr)(struct user_namespace *, const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct user_namespace *, struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct user_namespace *, struct inode *, struct posix_acl *, int);
int (*fileattr_set)(struct user_namespace *, struct dentry *, struct fileattr *);
int (*fileattr_get)(struct dentry *, struct fileattr *);
};
5.19
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct user_namespace *, struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int, bool);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct user_namespace *, struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct user_namespace *, struct inode *, struct dentry *, const char *);
int (*mkdir)(struct user_namespace *, struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct user_namespace *, struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct user_namespace *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct user_namespace *, struct dentry *, struct iattr *);
int (*getattr)(struct user_namespace *, const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct user_namespace *, struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct user_namespace *, struct inode *, struct posix_acl *, int);
int (*fileattr_set)(struct user_namespace *, struct dentry *, struct fileattr *);
int (*fileattr_get)(struct dentry *, struct fileattr *);
};
6.2
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct user_namespace *, struct inode *, int);
struct posix_acl * (*get_inode_acl)(struct inode *, int, bool);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct user_namespace *, struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct user_namespace *, struct inode *, struct dentry *, const char *);
int (*mkdir)(struct user_namespace *, struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct user_namespace *, struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct user_namespace *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct user_namespace *, struct dentry *, struct iattr *);
int (*getattr)(struct user_namespace *, const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct user_namespace *, struct inode *, struct file *, umode_t);
struct posix_acl * (*get_acl)(struct user_namespace *, struct dentry *, int);
int (*set_acl)(struct user_namespace *, struct dentry *, struct posix_acl *, int);
int (*fileattr_set)(struct user_namespace *, struct dentry *, struct fileattr *);
int (*fileattr_get)(struct dentry *, struct fileattr *);
};
6.5
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct mnt_idmap *, struct inode *, int);
struct posix_acl * (*get_inode_acl)(struct inode *, int, bool);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct mnt_idmap *, struct inode *, struct dentry *, const char *);
int (*mkdir)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct mnt_idmap *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct mnt_idmap *, struct dentry *, struct iattr *);
int (*getattr)(struct mnt_idmap *, const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct mnt_idmap *, struct inode *, struct file *, umode_t);
struct posix_acl * (*get_acl)(struct mnt_idmap *, struct dentry *, int);
int (*set_acl)(struct mnt_idmap *, struct dentry *, struct posix_acl *, int);
int (*fileattr_set)(struct mnt_idmap *, struct dentry *, struct fileattr *);
int (*fileattr_get)(struct dentry *, struct fileattr *);
};
6.8
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct mnt_idmap *, struct inode *, int);
struct posix_acl * (*get_inode_acl)(struct inode *, int, bool);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct mnt_idmap *, struct inode *, struct dentry *, const char *);
int (*mkdir)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct mnt_idmap *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct mnt_idmap *, struct dentry *, struct iattr *);
int (*getattr)(struct mnt_idmap *, const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct mnt_idmap *, struct inode *, struct file *, umode_t);
struct posix_acl * (*get_acl)(struct mnt_idmap *, struct dentry *, int);
int (*set_acl)(struct mnt_idmap *, struct dentry *, struct posix_acl *, int);
int (*fileattr_set)(struct mnt_idmap *, struct dentry *, struct fileattr *);
int (*fileattr_get)(struct dentry *, struct fileattr *);
struct offset_ctx * (*get_offset_ctx)(struct inode *);
};
arm64
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
armhf
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
ppc64el
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
riscv64
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
aws
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
azure
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
gcp
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
lowlatency
: ✅struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct inode *, int);
struct posix_acl * (*get_acl)(struct inode *, int);
int (*readlink)(struct dentry *, char *, int);
int (*create)(struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct inode *, struct dentry *, const char *);
int (*mkdir)(struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct dentry *, struct iattr *);
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, struct timespec64 *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
};
Regular
4.4
and 4.8
⚠️const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *)
const char * (*follow_link)(struct dentry *, void **)
void (*put_link)(struct inode *, void *)
int (*setxattr)(struct dentry *, const char *, const void *, size_t, int)
➡️ int (*setxattr)(struct dentry *, struct inode *, const char *, const void *, size_t, int)
ssize_t (*getxattr)(struct dentry *, const char *, void *, size_t)
➡️ ssize_t (*getxattr)(struct dentry *, struct inode *, const char *, void *, size_t)
4.8
and 4.10
⚠️int (*rename2)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int)
int (*setxattr)(struct dentry *, struct inode *, const char *, const void *, size_t, int)
ssize_t (*getxattr)(struct dentry *, struct inode *, const char *, void *, size_t)
int (*removexattr)(struct dentry *, const char *)
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *)
➡️ int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int)
4.10
and 4.13
⚠️int (*getattr)(struct vfsmount *, struct dentry *, struct kstat *)
➡️ int (*getattr)(const struct path *, struct kstat *, u32, unsigned int)
4.13
and 4.15
✅
4.15
and 4.18
⚠️int (*update_time)(struct inode *, struct timespec *, int)
➡️ int (*update_time)(struct inode *, struct timespec64 *, int)
4.18
and 5.0
⚠️int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t, int *)
➡️ int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t)
5.0
and 5.3
✅
5.3
and 5.4
✅
5.4
and 5.8
✅
5.8
and 5.11
✅
5.11
and 5.13
⚠️int (*fileattr_set)(struct user_namespace *, struct dentry *, struct fileattr *)
int (*fileattr_get)(struct dentry *, struct fileattr *)
int (*permission)(struct inode *, int)
➡️ int (*permission)(struct user_namespace *, struct inode *, int)
int (*create)(struct inode *, struct dentry *, umode_t, bool)
➡️ int (*create)(struct user_namespace *, struct inode *, struct dentry *, umode_t, bool)
int (*symlink)(struct inode *, struct dentry *, const char *)
➡️ int (*symlink)(struct user_namespace *, struct inode *, struct dentry *, const char *)
int (*mkdir)(struct inode *, struct dentry *, umode_t)
➡️ int (*mkdir)(struct user_namespace *, struct inode *, struct dentry *, umode_t)
int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t)
➡️ int (*mknod)(struct user_namespace *, struct inode *, struct dentry *, umode_t, dev_t)
int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int)
➡️ int (*rename)(struct user_namespace *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int)
int (*setattr)(struct dentry *, struct iattr *)
➡️ int (*setattr)(struct user_namespace *, struct dentry *, struct iattr *)
int (*getattr)(const struct path *, struct kstat *, u32, unsigned int)
➡️ int (*getattr)(struct user_namespace *, const struct path *, struct kstat *, u32, unsigned int)
int (*tmpfile)(struct inode *, struct dentry *, umode_t)
➡️ int (*tmpfile)(struct user_namespace *, struct inode *, struct dentry *, umode_t)
int (*set_acl)(struct inode *, struct posix_acl *, int)
➡️ int (*set_acl)(struct user_namespace *, struct inode *, struct posix_acl *, int)
5.13
and 5.15
⚠️struct posix_acl * (*get_acl)(struct inode *, int)
➡️ struct posix_acl * (*get_acl)(struct inode *, int, bool)
5.15
and 5.19
✅
5.19
and 6.2
⚠️struct posix_acl * (*get_inode_acl)(struct inode *, int, bool)
struct posix_acl * (*get_acl)(struct inode *, int, bool)
➡️ struct posix_acl * (*get_acl)(struct user_namespace *, struct dentry *, int)
int (*tmpfile)(struct user_namespace *, struct inode *, struct dentry *, umode_t)
➡️ int (*tmpfile)(struct user_namespace *, struct inode *, struct file *, umode_t)
int (*set_acl)(struct user_namespace *, struct inode *, struct posix_acl *, int)
➡️ int (*set_acl)(struct user_namespace *, struct dentry *, struct posix_acl *, int)
6.2
and 6.5
⚠️int (*permission)(struct user_namespace *, struct inode *, int)
➡️ int (*permission)(struct mnt_idmap *, struct inode *, int)
int (*create)(struct user_namespace *, struct inode *, struct dentry *, umode_t, bool)
➡️ int (*create)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, bool)
int (*symlink)(struct user_namespace *, struct inode *, struct dentry *, const char *)
➡️ int (*symlink)(struct mnt_idmap *, struct inode *, struct dentry *, const char *)
int (*mkdir)(struct user_namespace *, struct inode *, struct dentry *, umode_t)
➡️ int (*mkdir)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t)
int (*mknod)(struct user_namespace *, struct inode *, struct dentry *, umode_t, dev_t)
➡️ int (*mknod)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, dev_t)
int (*rename)(struct user_namespace *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int)
➡️ int (*rename)(struct mnt_idmap *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int)
int (*setattr)(struct user_namespace *, struct dentry *, struct iattr *)
➡️ int (*setattr)(struct mnt_idmap *, struct dentry *, struct iattr *)
int (*getattr)(struct user_namespace *, const struct path *, struct kstat *, u32, unsigned int)
➡️ int (*getattr)(struct mnt_idmap *, const struct path *, struct kstat *, u32, unsigned int)
int (*tmpfile)(struct user_namespace *, struct inode *, struct file *, umode_t)
➡️ int (*tmpfile)(struct mnt_idmap *, struct inode *, struct file *, umode_t)
struct posix_acl * (*get_acl)(struct user_namespace *, struct dentry *, int)
➡️ struct posix_acl * (*get_acl)(struct mnt_idmap *, struct dentry *, int)
int (*set_acl)(struct user_namespace *, struct dentry *, struct posix_acl *, int)
➡️ int (*set_acl)(struct mnt_idmap *, struct dentry *, struct posix_acl *, int)
int (*fileattr_set)(struct user_namespace *, struct dentry *, struct fileattr *)
➡️ int (*fileattr_set)(struct mnt_idmap *, struct dentry *, struct fileattr *)
6.5
and 6.8
⚠️struct offset_ctx * (*get_offset_ctx)(struct inode *)
int (*update_time)(struct inode *, struct timespec64 *, int)
➡️ int (*update_time)(struct inode *, int)
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
✅
amd64
and riscv64
✅
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅