Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v5.2-rc6 165 lines 3.6 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* XDR types for nfsd. This is mainly a typing exercise. */ 3 4#ifndef LINUX_NFSD_H 5#define LINUX_NFSD_H 6 7#include <linux/vfs.h> 8#include "nfsd.h" 9#include "nfsfh.h" 10 11struct nfsd_fhandle { 12 struct svc_fh fh; 13}; 14 15struct nfsd_sattrargs { 16 struct svc_fh fh; 17 struct iattr attrs; 18}; 19 20struct nfsd_diropargs { 21 struct svc_fh fh; 22 char * name; 23 unsigned int len; 24}; 25 26struct nfsd_readargs { 27 struct svc_fh fh; 28 __u32 offset; 29 __u32 count; 30 int vlen; 31}; 32 33struct nfsd_writeargs { 34 svc_fh fh; 35 __u32 offset; 36 int len; 37 struct kvec first; 38}; 39 40struct nfsd_createargs { 41 struct svc_fh fh; 42 char * name; 43 unsigned int len; 44 struct iattr attrs; 45}; 46 47struct nfsd_renameargs { 48 struct svc_fh ffh; 49 char * fname; 50 unsigned int flen; 51 struct svc_fh tfh; 52 char * tname; 53 unsigned int tlen; 54}; 55 56struct nfsd_readlinkargs { 57 struct svc_fh fh; 58 char * buffer; 59}; 60 61struct nfsd_linkargs { 62 struct svc_fh ffh; 63 struct svc_fh tfh; 64 char * tname; 65 unsigned int tlen; 66}; 67 68struct nfsd_symlinkargs { 69 struct svc_fh ffh; 70 char * fname; 71 unsigned int flen; 72 char * tname; 73 unsigned int tlen; 74 struct iattr attrs; 75 struct kvec first; 76}; 77 78struct nfsd_readdirargs { 79 struct svc_fh fh; 80 __u32 cookie; 81 __u32 count; 82 __be32 * buffer; 83}; 84 85struct nfsd_attrstat { 86 struct svc_fh fh; 87 struct kstat stat; 88}; 89 90struct nfsd_diropres { 91 struct svc_fh fh; 92 struct kstat stat; 93}; 94 95struct nfsd_readlinkres { 96 int len; 97}; 98 99struct nfsd_readres { 100 struct svc_fh fh; 101 unsigned long count; 102 struct kstat stat; 103}; 104 105struct nfsd_readdirres { 106 int count; 107 108 struct readdir_cd common; 109 __be32 * buffer; 110 int buflen; 111 __be32 * offset; 112}; 113 114struct nfsd_statfsres { 115 struct kstatfs stats; 116}; 117 118/* 119 * Storage requirements for XDR arguments and results. 120 */ 121union nfsd_xdrstore { 122 struct nfsd_sattrargs sattr; 123 struct nfsd_diropargs dirop; 124 struct nfsd_readargs read; 125 struct nfsd_writeargs write; 126 struct nfsd_createargs create; 127 struct nfsd_renameargs rename; 128 struct nfsd_linkargs link; 129 struct nfsd_symlinkargs symlink; 130 struct nfsd_readdirargs readdir; 131}; 132 133#define NFS2_SVC_XDRSIZE sizeof(union nfsd_xdrstore) 134 135 136int nfssvc_decode_void(struct svc_rqst *, __be32 *); 137int nfssvc_decode_fhandle(struct svc_rqst *, __be32 *); 138int nfssvc_decode_sattrargs(struct svc_rqst *, __be32 *); 139int nfssvc_decode_diropargs(struct svc_rqst *, __be32 *); 140int nfssvc_decode_readargs(struct svc_rqst *, __be32 *); 141int nfssvc_decode_writeargs(struct svc_rqst *, __be32 *); 142int nfssvc_decode_createargs(struct svc_rqst *, __be32 *); 143int nfssvc_decode_renameargs(struct svc_rqst *, __be32 *); 144int nfssvc_decode_readlinkargs(struct svc_rqst *, __be32 *); 145int nfssvc_decode_linkargs(struct svc_rqst *, __be32 *); 146int nfssvc_decode_symlinkargs(struct svc_rqst *, __be32 *); 147int nfssvc_decode_readdirargs(struct svc_rqst *, __be32 *); 148int nfssvc_encode_void(struct svc_rqst *, __be32 *); 149int nfssvc_encode_attrstat(struct svc_rqst *, __be32 *); 150int nfssvc_encode_diropres(struct svc_rqst *, __be32 *); 151int nfssvc_encode_readlinkres(struct svc_rqst *, __be32 *); 152int nfssvc_encode_readres(struct svc_rqst *, __be32 *); 153int nfssvc_encode_statfsres(struct svc_rqst *, __be32 *); 154int nfssvc_encode_readdirres(struct svc_rqst *, __be32 *); 155 156int nfssvc_encode_entry(void *, const char *name, 157 int namlen, loff_t offset, u64 ino, unsigned int); 158 159void nfssvc_release_fhandle(struct svc_rqst *); 160 161/* Helper functions for NFSv2 ACL code */ 162__be32 *nfs2svc_encode_fattr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp, struct kstat *stat); 163__be32 *nfs2svc_decode_fh(__be32 *p, struct svc_fh *fhp); 164 165#endif /* LINUX_NFSD_H */