xref: /linux/fs/nfsd/idmap.h (revision e5451c8f8330e03ad3cfa16048b4daf961af434f)
11da177e4SLinus Torvalds /*
21da177e4SLinus Torvalds  *  Mapping of UID to name and vice versa.
31da177e4SLinus Torvalds  *
41da177e4SLinus Torvalds  *  Copyright (c) 2002, 2003 The Regents of the University of
51da177e4SLinus Torvalds  *  Michigan.  All rights reserved.
61da177e4SLinus Torvalds > *
71da177e4SLinus Torvalds  *  Marius Aamodt Eriksen <marius@umich.edu>
81da177e4SLinus Torvalds  *
91da177e4SLinus Torvalds  *  Redistribution and use in source and binary forms, with or without
101da177e4SLinus Torvalds  *  modification, are permitted provided that the following conditions
111da177e4SLinus Torvalds  *  are met:
121da177e4SLinus Torvalds  *
131da177e4SLinus Torvalds  *  1. Redistributions of source code must retain the above copyright
141da177e4SLinus Torvalds  *     notice, this list of conditions and the following disclaimer.
151da177e4SLinus Torvalds  *  2. Redistributions in binary form must reproduce the above copyright
161da177e4SLinus Torvalds  *     notice, this list of conditions and the following disclaimer in the
171da177e4SLinus Torvalds  *     documentation and/or other materials provided with the distribution.
181da177e4SLinus Torvalds  *  3. Neither the name of the University nor the names of its
191da177e4SLinus Torvalds  *     contributors may be used to endorse or promote products derived
201da177e4SLinus Torvalds  *     from this software without specific prior written permission.
211da177e4SLinus Torvalds  *
221da177e4SLinus Torvalds  *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
231da177e4SLinus Torvalds  *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
241da177e4SLinus Torvalds  *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
251da177e4SLinus Torvalds  *  DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
261da177e4SLinus Torvalds  *  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
271da177e4SLinus Torvalds  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
281da177e4SLinus Torvalds  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
291da177e4SLinus Torvalds  *  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
301da177e4SLinus Torvalds  *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
311da177e4SLinus Torvalds  *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
321da177e4SLinus Torvalds  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
331da177e4SLinus Torvalds  */
341da177e4SLinus Torvalds 
351da177e4SLinus Torvalds #ifndef LINUX_NFSD_IDMAP_H
361da177e4SLinus Torvalds #define LINUX_NFSD_IDMAP_H
371da177e4SLinus Torvalds 
381da177e4SLinus Torvalds #include <linux/in.h>
391da177e4SLinus Torvalds #include <linux/sunrpc/svc.h>
40*e446d66dSKinglong Mee #include <linux/nfs_idmap.h>
411da177e4SLinus Torvalds 
42bd0b1e95SNeilBrown #ifdef CONFIG_NFSD_V4
4343ec1a20SStanislav Kinsbursky int nfsd_idmap_init(struct net *);
4443ec1a20SStanislav Kinsbursky void nfsd_idmap_shutdown(struct net *);
45bd0b1e95SNeilBrown #else
nfsd_idmap_init(struct net * net)4643ec1a20SStanislav Kinsbursky static inline int nfsd_idmap_init(struct net *net)
47dbf847ecSJ. Bruce Fields {
48dbf847ecSJ. Bruce Fields 	return 0;
49dbf847ecSJ. Bruce Fields }
nfsd_idmap_shutdown(struct net * net)5043ec1a20SStanislav Kinsbursky static inline void nfsd_idmap_shutdown(struct net *net)
51dbf847ecSJ. Bruce Fields {
52dbf847ecSJ. Bruce Fields }
53bd0b1e95SNeilBrown #endif
541da177e4SLinus Torvalds 
5565e10f6dSEric W. Biederman __be32 nfsd_map_name_to_uid(struct svc_rqst *, const char *, size_t, kuid_t *);
5665e10f6dSEric W. Biederman __be32 nfsd_map_name_to_gid(struct svc_rqst *, const char *, size_t, kgid_t *);
57ddd1ea56SJ. Bruce Fields __be32 nfsd4_encode_user(struct xdr_stream *, struct svc_rqst *, kuid_t);
58ddd1ea56SJ. Bruce Fields __be32 nfsd4_encode_group(struct xdr_stream *, struct svc_rqst *, kgid_t);
591da177e4SLinus Torvalds 
601da177e4SLinus Torvalds #endif /* LINUX_NFSD_IDMAP_H */
61