30 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
32 #include <linux/module.h>
33 #include <linux/list.h>
35 #include <linux/errno.h>
58 {
"Operation not permitted",
EPERM},
59 {
"wstat prohibited",
EPERM},
60 {
"No such file or directory",
ENOENT},
61 {
"directory entry not found",
ENOENT},
62 {
"file not found",
ENOENT},
63 {
"Interrupted system call",
EINTR},
64 {
"Input/output error",
EIO},
65 {
"No such device or address",
ENXIO},
66 {
"Argument list too long",
E2BIG},
67 {
"Bad file descriptor",
EBADF},
68 {
"Resource temporarily unavailable",
EAGAIN},
69 {
"Cannot allocate memory",
ENOMEM},
70 {
"Permission denied",
EACCES},
72 {
"Block device required",
ENOTBLK},
73 {
"Device or resource busy",
EBUSY},
75 {
"Invalid cross-device link",
EXDEV},
76 {
"No such device",
ENODEV},
78 {
"Is a directory",
EISDIR},
79 {
"Invalid argument",
EINVAL},
80 {
"Too many open files in system",
ENFILE},
81 {
"Too many open files",
EMFILE},
83 {
"File too large",
EFBIG},
84 {
"No space left on device",
ENOSPC},
86 {
"Read-only file system",
EROFS},
87 {
"Too many links",
EMLINK},
88 {
"Broken pipe",
EPIPE},
89 {
"Numerical argument out of domain",
EDOM},
90 {
"Numerical result out of range",
ERANGE},
91 {
"Resource deadlock avoided",
EDEADLK},
93 {
"No locks available",
ENOLCK},
94 {
"Function not implemented",
ENOSYS},
96 {
"Too many levels of symbolic links",
ELOOP},
97 {
"No message of desired type",
ENOMSG},
98 {
"Identifier removed",
EIDRM},
100 {
"Machine is not on the network",
ENONET},
101 {
"Package not installed",
ENOPKG},
103 {
"Link has been severed",
ENOLINK},
104 {
"Communication error on send",
ECOMM},
105 {
"Protocol error",
EPROTO},
107 {
"File descriptor in bad state",
EBADFD},
109 {
"Too many users",
EUSERS},
110 {
"Socket operation on non-socket",
ENOTSOCK},
119 {
"Network dropped connection on reset",
ENETRESET},
122 {
"No buffer space available",
ENOBUFS},
123 {
"Transport endpoint is already connected",
EISCONN},
124 {
"Transport endpoint is not connected",
ENOTCONN},
125 {
"Cannot send after transport endpoint shutdown",
ESHUTDOWN},
130 {
"Operation already in progress",
EALREADY},
132 {
"Is a named type file",
EISNAM},
134 {
"Disk quota exceeded",
EDQUOT},
136 {
"fid unknown or out of range",
EBADF},
137 {
"permission denied",
EACCES},
138 {
"file does not exist",
ENOENT},
140 {
"bad offset in directory read",
ESPIPE},
141 {
"bad use of fid",
EBADF},
142 {
"wstat can't convert between files and directories",
EPERM},
145 {
"file already exists",
EEXIST},
146 {
"file or directory already exists",
EEXIST},
147 {
"fid already in use",
EBADF},
150 {
"file already open for I/O",
ETXTBSY},
154 {
"not a member of proposed group",
EPERM},
156 {
"only owner can change group in wstat",
EACCES},
157 {
"read only file system",
EROFS},
158 {
"no access to special file",
EPERM},
159 {
"i/o count too large",
EIO},
160 {
"unknown group",
EINVAL},
162 {
"bogus wstat buffer",
EPROTO},
163 {
"exclusive use file already open",
EAGAIN},
164 {
"corrupted directory entry",
EIO},
165 {
"corrupted file entry",
EIO},
166 {
"corrupted block label",
EIO},
167 {
"corrupted meta data",
EIO},
168 {
"illegal offset",
EINVAL},
169 {
"illegal path element",
ENOENT},
170 {
"root of file system is corrupted",
EIO},
171 {
"corrupted super block",
EIO},
172 {
"protocol botch",
EPROTO},
173 {
"file system is full",
ENOSPC},
174 {
"file is in use",
EAGAIN},
175 {
"directory entry is not allocated",
ENOENT},
176 {
"file is read only",
EROFS},
177 {
"file has been removed",
EIDRM},
178 {
"only support truncation to zero length",
EPERM},
179 {
"cannot remove root",
EPERM},
180 {
"file too big",
EFBIG},
181 {
"venti i/o error",
EIO},
183 {
"u9fs rhostsauth: no authentication required", 0},
184 {
"u9fs authnone: no authentication required", 0},
199 for (bucket = 0; bucket <
ERRHASHSZ; bucket++)
203 for (c = errmap; c->
name !=
NULL; c++) {
206 INIT_HLIST_NODE(&c->
list);
207 hlist_add_head(&c->
list, &hash_errmap[bucket]);
231 bucket = jhash(errstr, len, 0) %
ERRHASHSZ;
242 pr_err(
"%s: server reported unknown error %s\n",