xref: /freebsd/sys/fs/nfs/nfsv4_errstr.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
19ec7b004SRick Macklem /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
3d63027b6SPedro F. Giffuni  *
49ec7b004SRick Macklem  * Copyright (c) 2009 Rick Macklem, University of Guelph
59ec7b004SRick Macklem  * All rights reserved.
69ec7b004SRick Macklem  *
79ec7b004SRick Macklem  * Redistribution and use in source and binary forms, with or without
89ec7b004SRick Macklem  * modification, are permitted provided that the following conditions
99ec7b004SRick Macklem  * are met:
109ec7b004SRick Macklem  * 1. Redistributions of source code must retain the above copyright
119ec7b004SRick Macklem  *    notice, this list of conditions and the following disclaimer.
129ec7b004SRick Macklem  * 2. Redistributions in binary form must reproduce the above copyright
139ec7b004SRick Macklem  *    notice, this list of conditions and the following disclaimer in the
149ec7b004SRick Macklem  *    documentation and/or other materials provided with the distribution.
159ec7b004SRick Macklem  *
169ec7b004SRick Macklem  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
179ec7b004SRick Macklem  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
189ec7b004SRick Macklem  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
199ec7b004SRick Macklem  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
209ec7b004SRick Macklem  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
219ec7b004SRick Macklem  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
229ec7b004SRick Macklem  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
239ec7b004SRick Macklem  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
249ec7b004SRick Macklem  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
259ec7b004SRick Macklem  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
269ec7b004SRick Macklem  * SUCH DAMAGE.
279ec7b004SRick Macklem  */
289ec7b004SRick Macklem 
299ec7b004SRick Macklem #ifndef _NFS_NFSV4ERRSTR_H_
309ec7b004SRick Macklem #define	_NFS_NFSV4ERRSTR_H_
319ec7b004SRick Macklem 
329ec7b004SRick Macklem /*
339ec7b004SRick Macklem  * Defines static storage in the C file, but I can't be bothered creating
349ec7b004SRick Macklem  * a library of one function for this, since it is only currently used by
359ec7b004SRick Macklem  * mount_newnfs.c.
369ec7b004SRick Macklem  */
378f2940ceSRick Macklem static const char *nfsv4_errstr[NFSERR_XATTR2BIG - 10000] = {
389ec7b004SRick Macklem 	"Illegal filehandle",
399ec7b004SRick Macklem 	"Undefined NFSv4 err",
409ec7b004SRick Macklem 	"READDIR cookie is stale",
419ec7b004SRick Macklem 	"operation not supported",
429ec7b004SRick Macklem 	"response limit exceeded",
439ec7b004SRick Macklem 	"undefined server error",
449ec7b004SRick Macklem 	"type invalid for CREATE",
459ec7b004SRick Macklem 	"file busy - retry",
469ec7b004SRick Macklem 	"nverify says attrs same",
479ec7b004SRick Macklem 	"lock unavailable",
489ec7b004SRick Macklem 	"lock lease expired",
499ec7b004SRick Macklem 	"I/O failed due to lock",
509ec7b004SRick Macklem 	"in grace period",
519ec7b004SRick Macklem 	"filehandle expired",
529ec7b004SRick Macklem 	"share reserve denied",
539ec7b004SRick Macklem 	"wrong security flavor",
549ec7b004SRick Macklem 	"clientid in use",
559ec7b004SRick Macklem 	"resource exhaustion",
569ec7b004SRick Macklem 	"filesystem relocated",
579ec7b004SRick Macklem 	"current FH is not set",
588f2940ceSRick Macklem 	"minor version not supported",
599ec7b004SRick Macklem 	"server has rebooted",
609ec7b004SRick Macklem 	"server has rebooted",
619ec7b004SRick Macklem 	"state is out of sync",
629ec7b004SRick Macklem 	"incorrect stateid",
639ec7b004SRick Macklem 	"request is out of seq",
649ec7b004SRick Macklem 	"verify - attrs not same",
659ec7b004SRick Macklem 	"lock range not supported",
669ec7b004SRick Macklem 	"should be file/directory",
679ec7b004SRick Macklem 	"no saved filehandle",
689ec7b004SRick Macklem 	"some filesystem moved",
699ec7b004SRick Macklem 	"recommended attr not sup",
709ec7b004SRick Macklem 	"reclaim outside of grace",
719ec7b004SRick Macklem 	"reclaim error at server",
729ec7b004SRick Macklem 	"conflict on reclaim",
739ec7b004SRick Macklem 	"XDR decode failed",
749ec7b004SRick Macklem 	"file locks held at CLOSE",
759ec7b004SRick Macklem 	"conflict in OPEN and I/O",
769ec7b004SRick Macklem 	"owner translation bad",
779ec7b004SRick Macklem 	"utf-8 char not supported",
789ec7b004SRick Macklem 	"name not supported",
799ec7b004SRick Macklem 	"lock range not supported",
809ec7b004SRick Macklem 	"no atomic up/downgrade",
819ec7b004SRick Macklem 	"undefined operation",
829ec7b004SRick Macklem 	"file locking deadlock",
839ec7b004SRick Macklem 	"open file blocks op",
849ec7b004SRick Macklem 	"lockowner state revoked",
85cf64777fSEric van Gyzen 	"callback path down",
8657fd4aa7SRick Macklem 	"bad IO mode",
8757fd4aa7SRick Macklem 	"bad layout",
8857fd4aa7SRick Macklem 	"bad session digest",
8957fd4aa7SRick Macklem 	"bad session",
9057fd4aa7SRick Macklem 	"bad slot",
9157fd4aa7SRick Macklem 	"complete already",
9257fd4aa7SRick Macklem 	"not bound to session",
9357fd4aa7SRick Macklem 	"delegation already wanted",
9457fd4aa7SRick Macklem 	"back channel busy",
9557fd4aa7SRick Macklem 	"layout try later",
9657fd4aa7SRick Macklem 	"layout unavailable",
9757fd4aa7SRick Macklem 	"no matching layout",
9857fd4aa7SRick Macklem 	"recall conflict",
9957fd4aa7SRick Macklem 	"unknown layout type",
10057fd4aa7SRick Macklem 	"sequence misordered",
10157fd4aa7SRick Macklem 	"sequence position",
10257fd4aa7SRick Macklem 	"request too big",
10357fd4aa7SRick Macklem 	"reply too big",
10457fd4aa7SRick Macklem 	"reply too big to cache",
10557fd4aa7SRick Macklem 	"retry uncached reply",
10657fd4aa7SRick Macklem 	"unsafe compound",
10757fd4aa7SRick Macklem 	"too many operations",
10857fd4aa7SRick Macklem 	"operation not in session",
10957fd4aa7SRick Macklem 	"hash algorithm unsupported",
11057fd4aa7SRick Macklem 	"unknown error",
11157fd4aa7SRick Macklem 	"clientID busy",
1128f2940ceSRick Macklem 	"pNFS IO hole",
11357fd4aa7SRick Macklem 	"sequence false retry",
11457fd4aa7SRick Macklem 	"bad high slot",
11557fd4aa7SRick Macklem 	"dead session",
11657fd4aa7SRick Macklem 	"encrypt algorithm unsupported",
1178f2940ceSRick Macklem 	"pNFS no layout",
11857fd4aa7SRick Macklem 	"not only operation",
11957fd4aa7SRick Macklem 	"wrong credential",
12057fd4aa7SRick Macklem 	"wrong type",
12157fd4aa7SRick Macklem 	"directory delegation unavailable",
12257fd4aa7SRick Macklem 	"reject delegation",
12357fd4aa7SRick Macklem 	"return conflict",
12457fd4aa7SRick Macklem 	"delegation revoked",
12557fd4aa7SRick Macklem 	"partner not supported",
12657fd4aa7SRick Macklem 	"partner no auth",
12757fd4aa7SRick Macklem 	"union not supported",
12857fd4aa7SRick Macklem 	"offload denied",
12957fd4aa7SRick Macklem 	"wrong LFS",
13057fd4aa7SRick Macklem 	"bad label",
13157fd4aa7SRick Macklem 	"offload no request",
13257fd4aa7SRick Macklem 	"no extended attribute",
13357fd4aa7SRick Macklem 	"extended attribute too big",
1349ec7b004SRick Macklem };
1359ec7b004SRick Macklem 
1369ec7b004SRick Macklem /*
1379ec7b004SRick Macklem  * Return the error string for the NFS4ERR_xxx. The pointers returned are
1389ec7b004SRick Macklem  * static and must not be free'd.
1399ec7b004SRick Macklem  */
1409ec7b004SRick Macklem static const char *
nfsv4_geterrstr(int errval)1419ec7b004SRick Macklem nfsv4_geterrstr(int errval)
1429ec7b004SRick Macklem {
1439ec7b004SRick Macklem 
1448f2940ceSRick Macklem 	if (errval < NFSERR_BADHANDLE || errval > NFSERR_XATTR2BIG)
1459ec7b004SRick Macklem 		return (NULL);
1469ec7b004SRick Macklem 	return (nfsv4_errstr[errval - NFSERR_BADHANDLE]);
1479ec7b004SRick Macklem }
1489ec7b004SRick Macklem 
1499ec7b004SRick Macklem #endif	/* _NFS_NFSV4ERRSTR_H_ */
150