135 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2/*3 * NFS protocol definitions4 *5 * This file contains constants mostly for Version 2 of the protocol,6 * but also has a couple of NFSv3 bits in (notably the error codes).7 */8#ifndef _UAPI_LINUX_NFS_H9#define _UAPI_LINUX_NFS_H10 11#include <linux/types.h>12 13#define NFS_PROGRAM 10000314#define NFS_PORT 204915#define NFS_RDMA_PORT 2004916#define NFS_MAXDATA 819217#define NFS_MAXPATHLEN 102418#define NFS_MAXNAMLEN 25519#define NFS_MAXGROUPS 1620#define NFS_FHSIZE 3221#define NFS_COOKIESIZE 422#define NFS_FIFO_DEV (-1)23#define NFSMODE_FMT 017000024#define NFSMODE_DIR 004000025#define NFSMODE_CHR 002000026#define NFSMODE_BLK 006000027#define NFSMODE_REG 010000028#define NFSMODE_LNK 012000029#define NFSMODE_SOCK 014000030#define NFSMODE_FIFO 001000031 32#define NFS_MNT_PROGRAM 10000533#define NFS_MNT_VERSION 134#define NFS_MNT3_VERSION 335 36#define NFS_PIPE_DIRNAME "nfs"37 38/*39 * NFS stats. The good thing with these values is that NFSv3 errors are40 * a superset of NFSv2 errors (with the exception of NFSERR_WFLUSH which41 * no-one uses anyway), so we can happily mix code as long as we make sure42 * no NFSv3 errors are returned to NFSv2 clients.43 * Error codes that have a `--' in the v2 column are not part of the44 * standard, but seem to be widely used nevertheless.45 */46 enum nfs_stat {47 NFS_OK = 0, /* v2 v3 v4 */48 NFSERR_PERM = 1, /* v2 v3 v4 */49 NFSERR_NOENT = 2, /* v2 v3 v4 */50 NFSERR_IO = 5, /* v2 v3 v4 */51 NFSERR_NXIO = 6, /* v2 v3 v4 */52 NFSERR_EAGAIN = 11, /* v2 v3 */53 NFSERR_ACCES = 13, /* v2 v3 v4 */54 NFSERR_EXIST = 17, /* v2 v3 v4 */55 NFSERR_XDEV = 18, /* v3 v4 */56 NFSERR_NODEV = 19, /* v2 v3 v4 */57 NFSERR_NOTDIR = 20, /* v2 v3 v4 */58 NFSERR_ISDIR = 21, /* v2 v3 v4 */59 NFSERR_INVAL = 22, /* v2 v3 v4 */60 NFSERR_FBIG = 27, /* v2 v3 v4 */61 NFSERR_NOSPC = 28, /* v2 v3 v4 */62 NFSERR_ROFS = 30, /* v2 v3 v4 */63 NFSERR_MLINK = 31, /* v3 v4 */64 NFSERR_NAMETOOLONG = 63, /* v2 v3 v4 */65 NFSERR_NOTEMPTY = 66, /* v2 v3 v4 */66 NFSERR_DQUOT = 69, /* v2 v3 v4 */67 NFSERR_STALE = 70, /* v2 v3 v4 */68 NFSERR_REMOTE = 71, /* v2 v3 */69 NFSERR_WFLUSH = 99, /* v2 */70 NFSERR_BADHANDLE = 10001, /* v3 v4 */71 NFSERR_NOT_SYNC = 10002, /* v3 */72 NFSERR_BAD_COOKIE = 10003, /* v3 v4 */73 NFSERR_NOTSUPP = 10004, /* v3 v4 */74 NFSERR_TOOSMALL = 10005, /* v3 v4 */75 NFSERR_SERVERFAULT = 10006, /* v3 v4 */76 NFSERR_BADTYPE = 10007, /* v3 v4 */77 NFSERR_JUKEBOX = 10008, /* v3 v4 */78 NFSERR_SAME = 10009, /* v4 */79 NFSERR_DENIED = 10010, /* v4 */80 NFSERR_EXPIRED = 10011, /* v4 */81 NFSERR_LOCKED = 10012, /* v4 */82 NFSERR_GRACE = 10013, /* v4 */83 NFSERR_FHEXPIRED = 10014, /* v4 */84 NFSERR_SHARE_DENIED = 10015, /* v4 */85 NFSERR_WRONGSEC = 10016, /* v4 */86 NFSERR_CLID_INUSE = 10017, /* v4 */87 NFSERR_RESOURCE = 10018, /* v4 */88 NFSERR_MOVED = 10019, /* v4 */89 NFSERR_NOFILEHANDLE = 10020, /* v4 */90 NFSERR_MINOR_VERS_MISMATCH = 10021, /* v4 */91 NFSERR_STALE_CLIENTID = 10022, /* v4 */92 NFSERR_STALE_STATEID = 10023, /* v4 */93 NFSERR_OLD_STATEID = 10024, /* v4 */94 NFSERR_BAD_STATEID = 10025, /* v4 */ 95 NFSERR_BAD_SEQID = 10026, /* v4 */96 NFSERR_NOT_SAME = 10027, /* v4 */97 NFSERR_LOCK_RANGE = 10028, /* v4 */98 NFSERR_SYMLINK = 10029, /* v4 */99 NFSERR_RESTOREFH = 10030, /* v4 */100 NFSERR_LEASE_MOVED = 10031, /* v4 */101 NFSERR_ATTRNOTSUPP = 10032, /* v4 */102 NFSERR_NO_GRACE = 10033, /* v4 */103 NFSERR_RECLAIM_BAD = 10034, /* v4 */104 NFSERR_RECLAIM_CONFLICT = 10035,/* v4 */105 NFSERR_BAD_XDR = 10036, /* v4 */106 NFSERR_LOCKS_HELD = 10037, /* v4 */107 NFSERR_OPENMODE = 10038, /* v4 */108 NFSERR_BADOWNER = 10039, /* v4 */109 NFSERR_BADCHAR = 10040, /* v4 */110 NFSERR_BADNAME = 10041, /* v4 */111 NFSERR_BAD_RANGE = 10042, /* v4 */112 NFSERR_LOCK_NOTSUPP = 10043, /* v4 */113 NFSERR_OP_ILLEGAL = 10044, /* v4 */114 NFSERR_DEADLOCK = 10045, /* v4 */115 NFSERR_FILE_OPEN = 10046, /* v4 */116 NFSERR_ADMIN_REVOKED = 10047, /* v4 */117 NFSERR_CB_PATH_DOWN = 10048, /* v4 */118};119 120/* NFSv2 file types - beware, these are not the same in NFSv3 */121 122enum nfs_ftype {123 NFNON = 0,124 NFREG = 1,125 NFDIR = 2,126 NFBLK = 3,127 NFCHR = 4,128 NFLNK = 5,129 NFSOCK = 6,130 NFBAD = 7,131 NFFIFO = 8132};133 134#endif /* _UAPI_LINUX_NFS_H */135