xref: /linux/fs/nfs/nfs3_fs.h (revision f9aec1648df09d55436a0e3a94acff1df507751f)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) 2014 Anna Schumaker.
4  *
5  * NFSv3-specific filesystem definitions and declarations
6  */
7 #ifndef __LINUX_FS_NFS_NFS3_FS_H
8 #define __LINUX_FS_NFS_NFS3_FS_H
9 
10 /*
11  * nfs3acl.c
12  */
13 #ifdef CONFIG_NFS_V3_ACL
14 extern struct posix_acl *nfs3_get_acl(struct inode *inode, int type, bool rcu);
15 extern int nfs3_set_acl(struct user_namespace *mnt_userns, struct inode *inode,
16 			struct posix_acl *acl, int type);
17 extern int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl,
18 		struct posix_acl *dfacl);
19 extern ssize_t nfs3_listxattr(struct dentry *, char *, size_t);
20 extern const struct xattr_handler *nfs3_xattr_handlers[];
21 #else
22 static inline int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl,
23 		struct posix_acl *dfacl)
24 {
25 	return 0;
26 }
27 #define nfs3_listxattr NULL
28 #endif /* CONFIG_NFS_V3_ACL */
29 
30 /* nfs3client.c */
31 struct nfs_server *nfs3_create_server(struct fs_context *);
32 struct nfs_server *nfs3_clone_server(struct nfs_server *, struct nfs_fh *,
33 				     struct nfs_fattr *, rpc_authflavor_t);
34 
35 /* nfs3super.c */
36 extern struct nfs_subversion nfs_v3;
37 
38 #endif /* __LINUX_FS_NFS_NFS3_FS_H */
39