nfs4_minor_version_opsRegular
4.4: Absent ⚠️
4.8: Absent ⚠️
4.10: Absent ⚠️
4.13: Absent ⚠️
4.15: Absent ⚠️
4.18: Absent ⚠️
5.0: Absent ⚠️
5.3: Absent ⚠️
5.4: Absent ⚠️
5.8: Absent ⚠️
5.11: Absent ⚠️
5.13: ✅struct nfs4_minor_version_ops {
u32 minor_version;
unsigned int init_caps;
int (*init_client)(struct nfs_client *);
void (*shutdown_client)(struct nfs_client *);
bool (*match_stateid)(const nfs4_stateid *, const nfs4_stateid *);
int (*find_root_sec)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
void (*free_lock_state)(struct nfs_server *, struct nfs4_lock_state *);
int (*test_and_free_expired)(struct nfs_server *, nfs4_stateid *, const struct cred *);
struct nfs_seqid * (*alloc_seqid)(struct nfs_seqid_counter *, gfp_t);
void (*session_trunk)(struct rpc_clnt *, struct rpc_xprt *, void *);
const struct rpc_call_ops *call_sync_ops;
const struct nfs4_state_recovery_ops *reboot_recovery_ops;
const struct nfs4_state_recovery_ops *nograce_recovery_ops;
const struct nfs4_state_maintenance_ops *state_renewal_ops;
const struct nfs4_mig_recovery_ops *mig_recovery_ops;
};
5.15: ✅struct nfs4_minor_version_ops {
u32 minor_version;
unsigned int init_caps;
int (*init_client)(struct nfs_client *);
void (*shutdown_client)(struct nfs_client *);
bool (*match_stateid)(const nfs4_stateid *, const nfs4_stateid *);
int (*find_root_sec)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
void (*free_lock_state)(struct nfs_server *, struct nfs4_lock_state *);
int (*test_and_free_expired)(struct nfs_server *, nfs4_stateid *, const struct cred *);
struct nfs_seqid * (*alloc_seqid)(struct nfs_seqid_counter *, gfp_t);
void (*session_trunk)(struct rpc_clnt *, struct rpc_xprt *, void *);
const struct rpc_call_ops *call_sync_ops;
const struct nfs4_state_recovery_ops *reboot_recovery_ops;
const struct nfs4_state_recovery_ops *nograce_recovery_ops;
const struct nfs4_state_maintenance_ops *state_renewal_ops;
const struct nfs4_mig_recovery_ops *mig_recovery_ops;
};
5.19: ✅struct nfs4_minor_version_ops {
u32 minor_version;
unsigned int init_caps;
int (*init_client)(struct nfs_client *);
void (*shutdown_client)(struct nfs_client *);
bool (*match_stateid)(const nfs4_stateid *, const nfs4_stateid *);
int (*find_root_sec)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
void (*free_lock_state)(struct nfs_server *, struct nfs4_lock_state *);
int (*test_and_free_expired)(struct nfs_server *, nfs4_stateid *, const struct cred *);
struct nfs_seqid * (*alloc_seqid)(struct nfs_seqid_counter *, gfp_t);
void (*session_trunk)(struct rpc_clnt *, struct rpc_xprt *, void *);
const struct rpc_call_ops *call_sync_ops;
const struct nfs4_state_recovery_ops *reboot_recovery_ops;
const struct nfs4_state_recovery_ops *nograce_recovery_ops;
const struct nfs4_state_maintenance_ops *state_renewal_ops;
const struct nfs4_mig_recovery_ops *mig_recovery_ops;
};
6.2: ✅struct nfs4_minor_version_ops {
u32 minor_version;
unsigned int init_caps;
int (*init_client)(struct nfs_client *);
void (*shutdown_client)(struct nfs_client *);
bool (*match_stateid)(const nfs4_stateid *, const nfs4_stateid *);
int (*find_root_sec)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
void (*free_lock_state)(struct nfs_server *, struct nfs4_lock_state *);
int (*test_and_free_expired)(struct nfs_server *, nfs4_stateid *, const struct cred *);
struct nfs_seqid * (*alloc_seqid)(struct nfs_seqid_counter *, gfp_t);
void (*session_trunk)(struct rpc_clnt *, struct rpc_xprt *, void *);
const struct rpc_call_ops *call_sync_ops;
const struct nfs4_state_recovery_ops *reboot_recovery_ops;
const struct nfs4_state_recovery_ops *nograce_recovery_ops;
const struct nfs4_state_maintenance_ops *state_renewal_ops;
const struct nfs4_mig_recovery_ops *mig_recovery_ops;
};
6.5: ✅struct nfs4_minor_version_ops {
u32 minor_version;
unsigned int init_caps;
int (*init_client)(struct nfs_client *);
void (*shutdown_client)(struct nfs_client *);
bool (*match_stateid)(const nfs4_stateid *, const nfs4_stateid *);
int (*find_root_sec)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
void (*free_lock_state)(struct nfs_server *, struct nfs4_lock_state *);
int (*test_and_free_expired)(struct nfs_server *, nfs4_stateid *, const struct cred *);
struct nfs_seqid * (*alloc_seqid)(struct nfs_seqid_counter *, gfp_t);
void (*session_trunk)(struct rpc_clnt *, struct rpc_xprt *, void *);
const struct rpc_call_ops *call_sync_ops;
const struct nfs4_state_recovery_ops *reboot_recovery_ops;
const struct nfs4_state_recovery_ops *nograce_recovery_ops;
const struct nfs4_state_maintenance_ops *state_renewal_ops;
const struct nfs4_mig_recovery_ops *mig_recovery_ops;
};
6.8: ✅struct nfs4_minor_version_ops {
u32 minor_version;
unsigned int init_caps;
int (*init_client)(struct nfs_client *);
void (*shutdown_client)(struct nfs_client *);
bool (*match_stateid)(const nfs4_stateid *, const nfs4_stateid *);
int (*find_root_sec)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
void (*free_lock_state)(struct nfs_server *, struct nfs4_lock_state *);
int (*test_and_free_expired)(struct nfs_server *, nfs4_stateid *, const struct cred *);
struct nfs_seqid * (*alloc_seqid)(struct nfs_seqid_counter *, gfp_t);
void (*session_trunk)(struct rpc_clnt *, struct rpc_xprt *, void *);
const struct rpc_call_ops *call_sync_ops;
const struct nfs4_state_recovery_ops *reboot_recovery_ops;
const struct nfs4_state_recovery_ops *nograce_recovery_ops;
const struct nfs4_state_maintenance_ops *state_renewal_ops;
const struct nfs4_mig_recovery_ops *mig_recovery_ops;
};
arm64: Absent ⚠️
armhf: Absent ⚠️
ppc64el: Absent ⚠️
riscv64: Absent ⚠️
aws: Absent ⚠️
azure: Absent ⚠️
gcp: Absent ⚠️
lowlatency: Absent ⚠️
Regular
5.13 and 5.15 ✅
5.15 and 5.19 ✅
5.19 and 6.2 ✅
6.2 and 6.5 ✅
6.5 and 6.8 ✅