2005-04-17 02:20:36 +04:00
/*
2015-04-15 20:00:05 +03:00
* fs / nfs / nfs4idmap . h
2005-04-17 02:20:36 +04:00
*
* UID and GID to name mapping for clients .
*
* Copyright ( c ) 2002 The Regents of the University of Michigan .
* All rights reserved .
*
* Marius Aamodt Eriksen < marius @ umich . edu >
*
* Redistribution and use in source and binary forms , with or without
* modification , are permitted provided that the following conditions
* are met :
*
* 1. Redistributions of source code must retain the above copyright
* notice , this list of conditions and the following disclaimer .
* 2. Redistributions in binary form must reproduce the above copyright
* notice , this list of conditions and the following disclaimer in the
* documentation and / or other materials provided with the distribution .
* 3. Neither the name of the University nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission .
*
* THIS SOFTWARE IS PROVIDED ` ` AS IS ' ' AND ANY EXPRESS OR IMPLIED
* WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED . IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR
* CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR
* BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT ( INCLUDING
* NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
*/
# ifndef NFS_IDMAP_H
# define NFS_IDMAP_H
2013-02-01 15:21:47 +04:00
# include <linux/uidgid.h>
2012-10-13 13:46:48 +04:00
# include <uapi/linux/nfs_idmap.h>
2005-04-17 02:20:36 +04:00
/* Forward declaration to make this header independent of others */
2006-08-23 04:06:08 +04:00
struct nfs_client ;
2011-02-23 02:44:31 +03:00
struct nfs_server ;
2012-01-07 22:22:46 +04:00
struct nfs_fattr ;
struct nfs4_string ;
2005-04-17 02:20:36 +04:00
2010-09-29 23:41:49 +04:00
int nfs_idmap_init ( void ) ;
void nfs_idmap_quit ( void ) ;
2006-08-23 04:06:09 +04:00
int nfs_idmap_new ( struct nfs_client * ) ;
2006-08-23 04:06:08 +04:00
void nfs_idmap_delete ( struct nfs_client * ) ;
2005-04-17 02:20:36 +04:00
2012-01-07 22:22:46 +04:00
void nfs_fattr_init_names ( struct nfs_fattr * fattr ,
struct nfs4_string * owner_name ,
struct nfs4_string * group_name ) ;
void nfs_fattr_free_names ( struct nfs_fattr * ) ;
void nfs_fattr_map_and_free_names ( struct nfs_server * , struct nfs_fattr * ) ;
2013-02-01 15:21:47 +04:00
int nfs_map_name_to_uid ( const struct nfs_server * , const char * , size_t , kuid_t * ) ;
int nfs_map_group_to_gid ( const struct nfs_server * , const char * , size_t , kgid_t * ) ;
int nfs_map_uid_to_name ( const struct nfs_server * , kuid_t , char * , size_t ) ;
int nfs_map_gid_to_group ( const struct nfs_server * , kgid_t , char * , size_t ) ;
2006-01-03 11:55:57 +03:00
2014-12-12 01:02:04 +03:00
int nfs_map_string_to_numeric ( const char * name , size_t namelen , __u32 * res ) ;
2006-01-03 11:55:57 +03:00
extern unsigned int nfs_idmap_cache_timeout ;
2005-04-17 02:20:36 +04:00
# endif /* NFS_IDMAP_H */