linux/fs/nfs/nfs3proc.c

// SPDX-License-Identifier: GPL-2.0
/*
 *  linux/fs/nfs/nfs3proc.c
 *
 *  Client-side NFSv3 procedures stubs.
 *
 *  Copyright (C) 1997, Olaf Kirch
 */

#include <linux/mm.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/sunrpc/clnt.h>
#include <linux/slab.h>
#include <linux/nfs.h>
#include <linux/nfs3.h>
#include <linux/nfs_fs.h>
#include <linux/nfs_page.h>
#include <linux/lockd/bind.h>
#include <linux/nfs_mount.h>
#include <linux/freezer.h>
#include <linux/xattr.h>

#include "iostat.h"
#include "internal.h"
#include "nfs3_fs.h"

#define NFSDBG_FACILITY

/* A wrapper to handle the EJUKEBOX error messages */
static int
nfs3_rpc_wrapper(struct rpc_clnt *clnt, struct rpc_message *msg, int flags)
{}

#define rpc_call_sync(clnt, msg, flags)

static int
nfs3_async_handle_jukebox(struct rpc_task *task, struct inode *inode)
{}

static int
do_proc_get_root(struct rpc_clnt *client, struct nfs_fh *fhandle,
		 struct nfs_fsinfo *info)
{}

/*
 * Bare-bones access to getattr: this is for nfs_get_root/nfs_get_sb
 */
static int
nfs3_proc_get_root(struct nfs_server *server, struct nfs_fh *fhandle,
		   struct nfs_fsinfo *info)
{}

/*
 * One function for each procedure in the NFS protocol.
 */
static int
nfs3_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
		struct nfs_fattr *fattr, struct inode *inode)
{}

static int
nfs3_proc_setattr(struct dentry *dentry, struct nfs_fattr *fattr,
			struct iattr *sattr)
{}

static int
__nfs3_proc_lookup(struct inode *dir, const char *name, size_t len,
		   struct nfs_fh *fhandle, struct nfs_fattr *fattr,
		   unsigned short task_flags)
{}

static int
nfs3_proc_lookup(struct inode *dir, struct dentry *dentry,
		 struct nfs_fh *fhandle, struct nfs_fattr *fattr)
{}

static int nfs3_proc_lookupp(struct inode *inode, struct nfs_fh *fhandle,
			     struct nfs_fattr *fattr)
{}

static int nfs3_proc_access(struct inode *inode, struct nfs_access_entry *entry,
			    const struct cred *cred)
{}

static int nfs3_proc_readlink(struct inode *inode, struct page *page,
		unsigned int pgbase, unsigned int pglen)
{}

struct nfs3_createdata {};

static struct nfs3_createdata *nfs3_alloc_createdata(void)
{}

static struct dentry *
nfs3_do_create(struct inode *dir, struct dentry *dentry, struct nfs3_createdata *data)
{}

static void nfs3_free_createdata(struct nfs3_createdata *data)
{}

/*
 * Create a regular file.
 */
static int
nfs3_proc_create(struct inode *dir, struct dentry *dentry, struct iattr *sattr,
		 int flags)
{}

static int
nfs3_proc_remove(struct inode *dir, struct dentry *dentry)
{}

static void
nfs3_proc_unlink_setup(struct rpc_message *msg,
		struct dentry *dentry,
		struct inode *inode)
{}

static void nfs3_proc_unlink_rpc_prepare(struct rpc_task *task, struct nfs_unlinkdata *data)
{}

static int
nfs3_proc_unlink_done(struct rpc_task *task, struct inode *dir)
{}

static void
nfs3_proc_rename_setup(struct rpc_message *msg,
		struct dentry *old_dentry,
		struct dentry *new_dentry)
{}

static void nfs3_proc_rename_rpc_prepare(struct rpc_task *task, struct nfs_renamedata *data)
{}

static int
nfs3_proc_rename_done(struct rpc_task *task, struct inode *old_dir,
		      struct inode *new_dir)
{}

static int
nfs3_proc_link(struct inode *inode, struct inode *dir, const struct qstr *name)
{}

static int
nfs3_proc_symlink(struct inode *dir, struct dentry *dentry, struct folio *folio,
		  unsigned int len, struct iattr *sattr)
{}

static int
nfs3_proc_mkdir(struct inode *dir, struct dentry *dentry, struct iattr *sattr)
{}

static int
nfs3_proc_rmdir(struct inode *dir, const struct qstr *name)
{}

/*
 * The READDIR implementation is somewhat hackish - we pass the user buffer
 * to the encode function, which installs it in the receive iovec.
 * The decode function itself doesn't perform any decoding, it just makes
 * sure the reply is syntactically correct.
 *
 * Also note that this implementation handles both plain readdir and
 * readdirplus.
 */
static int nfs3_proc_readdir(struct nfs_readdir_arg *nr_arg,
			     struct nfs_readdir_res *nr_res)
{}

static int
nfs3_proc_mknod(struct inode *dir, struct dentry *dentry, struct iattr *sattr,
		dev_t rdev)
{}

static int
nfs3_proc_statfs(struct nfs_server *server, struct nfs_fh *fhandle,
		 struct nfs_fsstat *stat)
{}

static int
do_proc_fsinfo(struct rpc_clnt *client, struct nfs_fh *fhandle,
		 struct nfs_fsinfo *info)
{}

/*
 * Bare-bones access to fsinfo: this is for nfs_get_root/nfs_get_sb via
 * nfs_create_server
 */
static int
nfs3_proc_fsinfo(struct nfs_server *server, struct nfs_fh *fhandle,
		   struct nfs_fsinfo *info)
{}

static int
nfs3_proc_pathconf(struct nfs_server *server, struct nfs_fh *fhandle,
		   struct nfs_pathconf *info)
{}

static int nfs3_read_done(struct rpc_task *task, struct nfs_pgio_header *hdr)
{}

static void nfs3_proc_read_setup(struct nfs_pgio_header *hdr,
				 struct rpc_message *msg)
{}

static int nfs3_proc_pgio_rpc_prepare(struct rpc_task *task,
				      struct nfs_pgio_header *hdr)
{}

static int nfs3_write_done(struct rpc_task *task, struct nfs_pgio_header *hdr)
{}

static void nfs3_proc_write_setup(struct nfs_pgio_header *hdr,
				  struct rpc_message *msg,
				  struct rpc_clnt **clnt)
{}

static void nfs3_proc_commit_rpc_prepare(struct rpc_task *task, struct nfs_commit_data *data)
{}

static int nfs3_commit_done(struct rpc_task *task, struct nfs_commit_data *data)
{}

static void nfs3_proc_commit_setup(struct nfs_commit_data *data, struct rpc_message *msg,
				   struct rpc_clnt **clnt)
{}

static void nfs3_nlm_alloc_call(void *data)
{}

static bool nfs3_nlm_unlock_prepare(struct rpc_task *task, void *data)
{}

static void nfs3_nlm_release_call(void *data)
{}

static const struct nlmclnt_operations nlmclnt_fl_close_lock_ops =;

static int
nfs3_proc_lock(struct file *filp, int cmd, struct file_lock *fl)
{}

static int nfs3_have_delegation(struct inode *inode, fmode_t type, int flags)
{}

static int nfs3_return_delegation(struct inode *inode)
{}

static const struct inode_operations nfs3_dir_inode_operations =;

static const struct inode_operations nfs3_file_inode_operations =;

const struct nfs_rpc_ops nfs_v3_clientops =;