xref: /freebsd/sys/fs/nfs/nfsv4_errstr.h (revision 9ec7b004d0edbf800e5b875353109a36b997b0a3)
19ec7b004SRick Macklem /*-
29ec7b004SRick Macklem  * Copyright (c) 2009 Rick Macklem, University of Guelph
39ec7b004SRick Macklem  * All rights reserved.
49ec7b004SRick Macklem  *
59ec7b004SRick Macklem  * Redistribution and use in source and binary forms, with or without
69ec7b004SRick Macklem  * modification, are permitted provided that the following conditions
79ec7b004SRick Macklem  * are met:
89ec7b004SRick Macklem  * 1. Redistributions of source code must retain the above copyright
99ec7b004SRick Macklem  *    notice, this list of conditions and the following disclaimer.
109ec7b004SRick Macklem  * 2. Redistributions in binary form must reproduce the above copyright
119ec7b004SRick Macklem  *    notice, this list of conditions and the following disclaimer in the
129ec7b004SRick Macklem  *    documentation and/or other materials provided with the distribution.
139ec7b004SRick Macklem  *
149ec7b004SRick Macklem  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
159ec7b004SRick Macklem  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
169ec7b004SRick Macklem  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
179ec7b004SRick Macklem  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
189ec7b004SRick Macklem  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
199ec7b004SRick Macklem  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
209ec7b004SRick Macklem  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
219ec7b004SRick Macklem  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
229ec7b004SRick Macklem  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
239ec7b004SRick Macklem  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
249ec7b004SRick Macklem  * SUCH DAMAGE.
259ec7b004SRick Macklem  *
269ec7b004SRick Macklem  * $FreeBSD$
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  */
379ec7b004SRick Macklem static const char *nfsv4_errstr[48] = {
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",
589ec7b004SRick Macklem 	"minor vers not supp",
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",
859ec7b004SRick Macklem 	"callback path down"
869ec7b004SRick Macklem };
879ec7b004SRick Macklem 
889ec7b004SRick Macklem /*
899ec7b004SRick Macklem  * Return the error string for the NFS4ERR_xxx. The pointers returned are
909ec7b004SRick Macklem  * static and must not be free'd.
919ec7b004SRick Macklem  */
929ec7b004SRick Macklem static const char *
939ec7b004SRick Macklem nfsv4_geterrstr(int errval)
949ec7b004SRick Macklem {
959ec7b004SRick Macklem 
969ec7b004SRick Macklem 	if (errval < NFSERR_BADHANDLE || errval > NFSERR_CBPATHDOWN)
979ec7b004SRick Macklem 		return (NULL);
989ec7b004SRick Macklem 	return (nfsv4_errstr[errval - NFSERR_BADHANDLE]);
999ec7b004SRick Macklem }
1009ec7b004SRick Macklem 
1019ec7b004SRick Macklem #endif	/* _NFS_NFSV4ERRSTR_H_ */
102