162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2014 Anna Schumaker.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * NFSv3-specific filesystem definitions and declarations
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci#ifndef __LINUX_FS_NFS_NFS3_FS_H
862306a36Sopenharmony_ci#define __LINUX_FS_NFS_NFS3_FS_H
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/*
1162306a36Sopenharmony_ci * nfs3acl.c
1262306a36Sopenharmony_ci */
1362306a36Sopenharmony_ci#ifdef CONFIG_NFS_V3_ACL
1462306a36Sopenharmony_ciextern struct posix_acl *nfs3_get_acl(struct inode *inode, int type, bool rcu);
1562306a36Sopenharmony_ciextern int nfs3_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
1662306a36Sopenharmony_ci			struct posix_acl *acl, int type);
1762306a36Sopenharmony_ciextern int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl,
1862306a36Sopenharmony_ci		struct posix_acl *dfacl);
1962306a36Sopenharmony_ciextern ssize_t nfs3_listxattr(struct dentry *, char *, size_t);
2062306a36Sopenharmony_ci#else
2162306a36Sopenharmony_cistatic inline int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl,
2262306a36Sopenharmony_ci		struct posix_acl *dfacl)
2362306a36Sopenharmony_ci{
2462306a36Sopenharmony_ci	return 0;
2562306a36Sopenharmony_ci}
2662306a36Sopenharmony_ci#define nfs3_listxattr NULL
2762306a36Sopenharmony_ci#endif /* CONFIG_NFS_V3_ACL */
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci/* nfs3client.c */
3062306a36Sopenharmony_cistruct nfs_server *nfs3_create_server(struct fs_context *);
3162306a36Sopenharmony_cistruct nfs_server *nfs3_clone_server(struct nfs_server *, struct nfs_fh *,
3262306a36Sopenharmony_ci				     struct nfs_fattr *, rpc_authflavor_t);
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci/* nfs3super.c */
3562306a36Sopenharmony_ciextern struct nfs_subversion nfs_v3;
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci#endif /* __LINUX_FS_NFS_NFS3_FS_H */
38