blob: 35debf1141a37af22223f7207033da17e5d27159 [file]
/* 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 <linux/nfs4.h>: the NFS4ERR_* values used below are the only
* reason that include was needed.
*/
#ifndef LINUX_NFSD_NFSERR_H
#define LINUX_NFSD_NFSERR_H
#include <linux/sunrpc/xdrgen/nfs2.h>
#include <linux/nfs3.h>
#include <linux/nfs4.h>
/*
* 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(NFS3ERR_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(NFS3ERR_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(NFS3ERR_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(NFS3ERR_REMOTE)
#define nfserr_wflush cpu_to_be32(NFSERR_WFLUSH)
#define nfserr_badhandle cpu_to_be32(NFS3ERR_BADHANDLE)
#define nfserr_notsync cpu_to_be32(NFS3ERR_NOT_SYNC)
#define nfserr_badcookie cpu_to_be32(NFS3ERR_BAD_COOKIE)
#define nfserr_notsupp cpu_to_be32(NFS3ERR_NOTSUPP)
#define nfserr_toosmall cpu_to_be32(NFS3ERR_TOOSMALL)
#define nfserr_serverfault cpu_to_be32(NFS3ERR_SERVERFAULT)
#define nfserr_badtype cpu_to_be32(NFS3ERR_BADTYPE)
#define nfserr_jukebox cpu_to_be32(NFS3ERR_JUKEBOX)
#define nfserr_delay cpu_to_be32(NFS4ERR_DELAY)
#define nfserr_same cpu_to_be32(NFS4ERR_SAME)
#define nfserr_denied cpu_to_be32(NFS4ERR_DENIED)
#define nfserr_deadlock cpu_to_be32(NFS4ERR_DEADLOCK)
#define nfserr_expired cpu_to_be32(NFS4ERR_EXPIRED)
#define nfserr_bad_cookie cpu_to_be32(NFS4ERR_BAD_COOKIE)
#define nfserr_clid_inuse cpu_to_be32(NFS4ERR_CLID_INUSE)
#define nfserr_stale_clientid cpu_to_be32(NFS4ERR_STALE_CLIENTID)
#define nfserr_resource cpu_to_be32(NFS4ERR_RESOURCE)
#define nfserr_moved cpu_to_be32(NFS4ERR_MOVED)
#define nfserr_nofilehandle cpu_to_be32(NFS4ERR_NOFILEHANDLE)
#define nfserr_minor_vers_mismatch cpu_to_be32(NFS4ERR_MINOR_VERS_MISMATCH)
#define nfserr_share_denied cpu_to_be32(NFS4ERR_SHARE_DENIED)
#define nfserr_stale_stateid cpu_to_be32(NFS4ERR_STALE_STATEID)
#define nfserr_old_stateid cpu_to_be32(NFS4ERR_OLD_STATEID)
#define nfserr_bad_stateid cpu_to_be32(NFS4ERR_BAD_STATEID)
#define nfserr_bad_seqid cpu_to_be32(NFS4ERR_BAD_SEQID)
#define nfserr_symlink cpu_to_be32(NFS4ERR_SYMLINK)
#define nfserr_not_same cpu_to_be32(NFS4ERR_NOT_SAME)
#define nfserr_lock_range cpu_to_be32(NFS4ERR_LOCK_RANGE)
#define nfserr_restorefh cpu_to_be32(NFS4ERR_RESTOREFH)
#define nfserr_attrnotsupp cpu_to_be32(NFS4ERR_ATTRNOTSUPP)
#define nfserr_bad_xdr cpu_to_be32(NFS4ERR_BADXDR)
#define nfserr_openmode cpu_to_be32(NFS4ERR_OPENMODE)
#define nfserr_badowner cpu_to_be32(NFS4ERR_BADOWNER)
#define nfserr_locks_held cpu_to_be32(NFS4ERR_LOCKS_HELD)
#define nfserr_op_illegal cpu_to_be32(NFS4ERR_OP_ILLEGAL)
#define nfserr_grace cpu_to_be32(NFS4ERR_GRACE)
#define nfserr_no_grace cpu_to_be32(NFS4ERR_NO_GRACE)
#define nfserr_reclaim_bad cpu_to_be32(NFS4ERR_RECLAIM_BAD)
#define nfserr_badname cpu_to_be32(NFS4ERR_BADNAME)
#define nfserr_admin_revoked cpu_to_be32(NFS4ERR_ADMIN_REVOKED)
#define nfserr_cb_path_down cpu_to_be32(NFS4ERR_CB_PATH_DOWN)
#define nfserr_locked cpu_to_be32(NFS4ERR_LOCKED)
#define nfserr_wrongsec cpu_to_be32(NFS4ERR_WRONGSEC)
#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 */