/* SPDX-License-Identifier: GPL-2.0 */ /* * Pre-xdr'ed nfsd error values and nfsd-internal error codes. * * Separated from nfsd.h so that nfsd.h itself does not have to pull * in : the NFS4ERR_* values used below are the only * reason that include was needed. */ #ifndef LINUX_NFSD_NFSERR_H #define LINUX_NFSD_NFSERR_H #include #include /* * These macros provide pre-xdr'ed values for faster operation. */ #define nfs_ok cpu_to_be32(NFS_OK) #define nfserr_perm cpu_to_be32(NFSERR_PERM) #define nfserr_noent cpu_to_be32(NFSERR_NOENT) #define nfserr_io cpu_to_be32(NFSERR_IO) #define nfserr_nxio cpu_to_be32(NFSERR_NXIO) #define nfserr_acces cpu_to_be32(NFSERR_ACCES) #define nfserr_exist cpu_to_be32(NFSERR_EXIST) #define nfserr_xdev cpu_to_be32(NFSERR_XDEV) #define nfserr_nodev cpu_to_be32(NFSERR_NODEV) #define nfserr_notdir cpu_to_be32(NFSERR_NOTDIR) #define nfserr_isdir cpu_to_be32(NFSERR_ISDIR) #define nfserr_inval cpu_to_be32(NFSERR_INVAL) #define nfserr_fbig cpu_to_be32(NFSERR_FBIG) #define nfserr_nospc cpu_to_be32(NFSERR_NOSPC) #define nfserr_rofs cpu_to_be32(NFSERR_ROFS) #define nfserr_mlink cpu_to_be32(NFSERR_MLINK) #define nfserr_nametoolong cpu_to_be32(NFSERR_NAMETOOLONG) #define nfserr_notempty cpu_to_be32(NFSERR_NOTEMPTY) #define nfserr_dquot cpu_to_be32(NFSERR_DQUOT) #define nfserr_stale cpu_to_be32(NFSERR_STALE) #define nfserr_remote cpu_to_be32(NFSERR_REMOTE) #define nfserr_wflush cpu_to_be32(NFSERR_WFLUSH) #define nfserr_badhandle cpu_to_be32(NFSERR_BADHANDLE) #define nfserr_notsync cpu_to_be32(NFSERR_NOT_SYNC) #define nfserr_badcookie cpu_to_be32(NFSERR_BAD_COOKIE) #define nfserr_notsupp cpu_to_be32(NFSERR_NOTSUPP) #define nfserr_toosmall cpu_to_be32(NFSERR_TOOSMALL) #define nfserr_serverfault cpu_to_be32(NFSERR_SERVERFAULT) #define nfserr_badtype cpu_to_be32(NFSERR_BADTYPE) #define nfserr_jukebox cpu_to_be32(NFSERR_JUKEBOX) #define nfserr_denied cpu_to_be32(NFSERR_DENIED) #define nfserr_deadlock cpu_to_be32(NFSERR_DEADLOCK) #define nfserr_expired cpu_to_be32(NFSERR_EXPIRED) #define nfserr_bad_cookie cpu_to_be32(NFSERR_BAD_COOKIE) #define nfserr_same cpu_to_be32(NFSERR_SAME) #define nfserr_clid_inuse cpu_to_be32(NFSERR_CLID_INUSE) #define nfserr_stale_clientid cpu_to_be32(NFSERR_STALE_CLIENTID) #define nfserr_resource cpu_to_be32(NFSERR_RESOURCE) #define nfserr_moved cpu_to_be32(NFSERR_MOVED) #define nfserr_nofilehandle cpu_to_be32(NFSERR_NOFILEHANDLE) #define nfserr_minor_vers_mismatch cpu_to_be32(NFSERR_MINOR_VERS_MISMATCH) #define nfserr_share_denied cpu_to_be32(NFSERR_SHARE_DENIED) #define nfserr_stale_stateid cpu_to_be32(NFSERR_STALE_STATEID) #define nfserr_old_stateid cpu_to_be32(NFSERR_OLD_STATEID) #define nfserr_bad_stateid cpu_to_be32(NFSERR_BAD_STATEID) #define nfserr_bad_seqid cpu_to_be32(NFSERR_BAD_SEQID) #define nfserr_symlink cpu_to_be32(NFSERR_SYMLINK) #define nfserr_not_same cpu_to_be32(NFSERR_NOT_SAME) #define nfserr_lock_range cpu_to_be32(NFSERR_LOCK_RANGE) #define nfserr_restorefh cpu_to_be32(NFSERR_RESTOREFH) #define nfserr_attrnotsupp cpu_to_be32(NFSERR_ATTRNOTSUPP) #define nfserr_bad_xdr cpu_to_be32(NFSERR_BAD_XDR) #define nfserr_openmode cpu_to_be32(NFSERR_OPENMODE) #define nfserr_badowner cpu_to_be32(NFSERR_BADOWNER) #define nfserr_locks_held cpu_to_be32(NFSERR_LOCKS_HELD) #define nfserr_op_illegal cpu_to_be32(NFSERR_OP_ILLEGAL) #define nfserr_grace cpu_to_be32(NFSERR_GRACE) #define nfserr_no_grace cpu_to_be32(NFSERR_NO_GRACE) #define nfserr_reclaim_bad cpu_to_be32(NFSERR_RECLAIM_BAD) #define nfserr_badname cpu_to_be32(NFSERR_BADNAME) #define nfserr_admin_revoked cpu_to_be32(NFS4ERR_ADMIN_REVOKED) #define nfserr_cb_path_down cpu_to_be32(NFSERR_CB_PATH_DOWN) #define nfserr_locked cpu_to_be32(NFSERR_LOCKED) #define nfserr_wrongsec cpu_to_be32(NFSERR_WRONGSEC) #define nfserr_delay cpu_to_be32(NFS4ERR_DELAY) #define nfserr_badiomode cpu_to_be32(NFS4ERR_BADIOMODE) #define nfserr_badlayout cpu_to_be32(NFS4ERR_BADLAYOUT) #define nfserr_bad_session_digest cpu_to_be32(NFS4ERR_BAD_SESSION_DIGEST) #define nfserr_badsession cpu_to_be32(NFS4ERR_BADSESSION) #define nfserr_badslot cpu_to_be32(NFS4ERR_BADSLOT) #define nfserr_complete_already cpu_to_be32(NFS4ERR_COMPLETE_ALREADY) #define nfserr_conn_not_bound_to_session cpu_to_be32(NFS4ERR_CONN_NOT_BOUND_TO_SESSION) #define nfserr_deleg_already_wanted cpu_to_be32(NFS4ERR_DELEG_ALREADY_WANTED) #define nfserr_back_chan_busy cpu_to_be32(NFS4ERR_BACK_CHAN_BUSY) #define nfserr_layouttrylater cpu_to_be32(NFS4ERR_LAYOUTTRYLATER) #define nfserr_layoutunavailable cpu_to_be32(NFS4ERR_LAYOUTUNAVAILABLE) #define nfserr_nomatching_layout cpu_to_be32(NFS4ERR_NOMATCHING_LAYOUT) #define nfserr_recallconflict cpu_to_be32(NFS4ERR_RECALLCONFLICT) #define nfserr_unknown_layouttype cpu_to_be32(NFS4ERR_UNKNOWN_LAYOUTTYPE) #define nfserr_seq_misordered cpu_to_be32(NFS4ERR_SEQ_MISORDERED) #define nfserr_sequence_pos cpu_to_be32(NFS4ERR_SEQUENCE_POS) #define nfserr_req_too_big cpu_to_be32(NFS4ERR_REQ_TOO_BIG) #define nfserr_rep_too_big cpu_to_be32(NFS4ERR_REP_TOO_BIG) #define nfserr_rep_too_big_to_cache cpu_to_be32(NFS4ERR_REP_TOO_BIG_TO_CACHE) #define nfserr_retry_uncached_rep cpu_to_be32(NFS4ERR_RETRY_UNCACHED_REP) #define nfserr_unsafe_compound cpu_to_be32(NFS4ERR_UNSAFE_COMPOUND) #define nfserr_too_many_ops cpu_to_be32(NFS4ERR_TOO_MANY_OPS) #define nfserr_op_not_in_session cpu_to_be32(NFS4ERR_OP_NOT_IN_SESSION) #define nfserr_hash_alg_unsupp cpu_to_be32(NFS4ERR_HASH_ALG_UNSUPP) #define nfserr_clientid_busy cpu_to_be32(NFS4ERR_CLIENTID_BUSY) #define nfserr_pnfs_io_hole cpu_to_be32(NFS4ERR_PNFS_IO_HOLE) #define nfserr_seq_false_retry cpu_to_be32(NFS4ERR_SEQ_FALSE_RETRY) #define nfserr_bad_high_slot cpu_to_be32(NFS4ERR_BAD_HIGH_SLOT) #define nfserr_deadsession cpu_to_be32(NFS4ERR_DEADSESSION) #define nfserr_encr_alg_unsupp cpu_to_be32(NFS4ERR_ENCR_ALG_UNSUPP) #define nfserr_pnfs_no_layout cpu_to_be32(NFS4ERR_PNFS_NO_LAYOUT) #define nfserr_not_only_op cpu_to_be32(NFS4ERR_NOT_ONLY_OP) #define nfserr_wrong_cred cpu_to_be32(NFS4ERR_WRONG_CRED) #define nfserr_wrong_type cpu_to_be32(NFS4ERR_WRONG_TYPE) #define nfserr_dirdeleg_unavail cpu_to_be32(NFS4ERR_DIRDELEG_UNAVAIL) #define nfserr_reject_deleg cpu_to_be32(NFS4ERR_REJECT_DELEG) #define nfserr_returnconflict cpu_to_be32(NFS4ERR_RETURNCONFLICT) #define nfserr_deleg_revoked cpu_to_be32(NFS4ERR_DELEG_REVOKED) #define nfserr_partner_notsupp cpu_to_be32(NFS4ERR_PARTNER_NOTSUPP) #define nfserr_partner_no_auth cpu_to_be32(NFS4ERR_PARTNER_NO_AUTH) #define nfserr_union_notsupp cpu_to_be32(NFS4ERR_UNION_NOTSUPP) #define nfserr_offload_denied cpu_to_be32(NFS4ERR_OFFLOAD_DENIED) #define nfserr_wrong_lfs cpu_to_be32(NFS4ERR_WRONG_LFS) #define nfserr_badlabel cpu_to_be32(NFS4ERR_BADLABEL) #define nfserr_file_open cpu_to_be32(NFS4ERR_FILE_OPEN) #define nfserr_xattr2big cpu_to_be32(NFS4ERR_XATTR2BIG) #define nfserr_noxattr cpu_to_be32(NFS4ERR_NOXATTR) /* * Error codes for internal use. These are based at an impossible * nfsstat4 value so that, once converted to be32, they cannot conflict * with any value defined by the protocol (compare the nlm__int__* codes * in fs/lockd/lockd.h). */ enum { /* end-of-file indicator in readdir */ NFSERR_EOF = 30000, #define nfserr_eof cpu_to_be32(NFSERR_EOF) /* replay detected */ NFSERR_REPLAY_ME, #define nfserr_replay_me cpu_to_be32(NFSERR_REPLAY_ME) /* nfs41 replay detected */ NFSERR_REPLAY_CACHE, #define nfserr_replay_cache cpu_to_be32(NFSERR_REPLAY_CACHE) /* symlink found where dir expected - handled differently to * other symlink found errors by NFSv3. */ NFSERR_SYMLINK_NOT_DIR, #define nfserr_symlink_not_dir cpu_to_be32(NFSERR_SYMLINK_NOT_DIR) }; #endif /* LINUX_NFSD_NFSERR_H */