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
14extern struct posix_acl *nfs3_get_acl(struct inode *inode, int type, bool rcu);
15extern int nfs3_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
16			struct posix_acl *acl, int type);
17extern int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl,
18		struct posix_acl *dfacl);
19extern ssize_t nfs3_listxattr(struct dentry *, char *, size_t);
20#else
21static inline int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl,
22		struct posix_acl *dfacl)
23{
24	return 0;
25}
26#define nfs3_listxattr NULL
27#endif /* CONFIG_NFS_V3_ACL */
28
29/* nfs3client.c */
30struct nfs_server *nfs3_create_server(struct fs_context *);
31struct nfs_server *nfs3_clone_server(struct nfs_server *, struct nfs_fh *,
32				     struct nfs_fattr *, rpc_authflavor_t);
33
34/* nfs3super.c */
35extern struct nfs_subversion nfs_v3;
36
37#endif /* __LINUX_FS_NFS_NFS3_FS_H */
38