Blame view
fs/nfsd/vfs.h
4.33 KB
0a3adadee nfsd: make fs/nfs... |
1 2 3 4 5 6 |
/* * Copyright (C) 1995-1997 Olaf Kirch <okir@monad.swb.de> */ #ifndef LINUX_NFSD_VFS_H #define LINUX_NFSD_VFS_H |
1557aca79 nfsd: move most o... |
7 |
#include "nfsfh.h" |
0a3adadee nfsd: make fs/nfs... |
8 9 10 |
/* * Flags for nfsd_permission */ |
8e82fa8fd nfsd: prettify NF... |
11 12 13 14 15 16 17 18 |
#define NFSD_MAY_NOP 0 #define NFSD_MAY_EXEC 0x001 /* == MAY_EXEC */ #define NFSD_MAY_WRITE 0x002 /* == MAY_WRITE */ #define NFSD_MAY_READ 0x004 /* == MAY_READ */ #define NFSD_MAY_SATTR 0x008 #define NFSD_MAY_TRUNC 0x010 #define NFSD_MAY_LOCK 0x020 #define NFSD_MAY_MASK 0x03f |
aea93397d nfsd: distinguish... |
19 20 |
/* extra hints to permission and open routines: */ |
8e82fa8fd nfsd: prettify NF... |
21 22 23 24 25 26 |
#define NFSD_MAY_OWNER_OVERRIDE 0x040 #define NFSD_MAY_LOCAL_ACCESS 0x080 /* for device special files */ #define NFSD_MAY_BYPASS_GSS_ON_ROOT 0x100 #define NFSD_MAY_NOT_BREAK_LEASE 0x200 #define NFSD_MAY_BYPASS_GSS 0x400 #define NFSD_MAY_READ_IF_EXEC 0x800 |
0a3adadee nfsd: make fs/nfs... |
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#define NFSD_MAY_CREATE (NFSD_MAY_EXEC|NFSD_MAY_WRITE) #define NFSD_MAY_REMOVE (NFSD_MAY_EXEC|NFSD_MAY_WRITE|NFSD_MAY_TRUNC) /* * Callback function for readdir */ typedef int (*nfsd_dirop_t)(struct inode *, struct dentry *, int, int); /* nfsd/vfs.c */ int fh_lock_parent(struct svc_fh *, struct dentry *); int nfsd_racache_init(int); void nfsd_racache_shutdown(void); int nfsd_cross_mnt(struct svc_rqst *rqstp, struct dentry **dpp, struct svc_export **expp); __be32 nfsd_lookup(struct svc_rqst *, struct svc_fh *, const char *, unsigned int, struct svc_fh *); __be32 nfsd_lookup_dentry(struct svc_rqst *, struct svc_fh *, const char *, unsigned int, struct svc_export **, struct dentry **); __be32 nfsd_setattr(struct svc_rqst *, struct svc_fh *, struct iattr *, int, time_t); |
3227fa41a nfsd: filter read... |
49 |
int nfsd_mountpoint(struct dentry *, struct svc_export *); |
0a3adadee nfsd: make fs/nfs... |
50 51 52 53 54 55 56 57 58 59 |
#ifdef CONFIG_NFSD_V4 __be32 nfsd4_set_nfs4_acl(struct svc_rqst *, struct svc_fh *, struct nfs4_acl *); int nfsd4_get_nfs4_acl(struct svc_rqst *, struct dentry *, struct nfs4_acl **); #endif /* CONFIG_NFSD_V4 */ __be32 nfsd_create(struct svc_rqst *, struct svc_fh *, char *name, int len, struct iattr *attrs, int type, dev_t rdev, struct svc_fh *res); #ifdef CONFIG_NFSD_V3 __be32 nfsd_access(struct svc_rqst *, struct svc_fh *, u32 *, u32 *); |
ac6721a13 nfsd41: make sure... |
60 |
__be32 do_nfsd_create(struct svc_rqst *, struct svc_fh *, |
0a3adadee nfsd: make fs/nfs... |
61 62 |
char *name, int len, struct iattr *attrs, struct svc_fh *res, int createmode, |
856121b2e nfsd4: warn on op... |
63 |
u32 *verifier, bool *truncp, bool *created); |
0a3adadee nfsd: make fs/nfs... |
64 65 66 |
__be32 nfsd_commit(struct svc_rqst *, struct svc_fh *, loff_t, unsigned long); #endif /* CONFIG_NFSD_V3 */ |
175a4eb7e fs: propagate umo... |
67 |
__be32 nfsd_open(struct svc_rqst *, struct svc_fh *, umode_t, |
0a3adadee nfsd: make fs/nfs... |
68 69 |
int, struct file **); void nfsd_close(struct file *); |
039a87ca5 nfsd: minor nfsd ... |
70 71 72 |
__be32 nfsd_read(struct svc_rqst *, struct svc_fh *, loff_t, struct kvec *, int, unsigned long *); __be32 nfsd_read_file(struct svc_rqst *, struct svc_fh *, struct file *, |
0a3adadee nfsd: make fs/nfs... |
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
loff_t, struct kvec *, int, unsigned long *); __be32 nfsd_write(struct svc_rqst *, struct svc_fh *,struct file *, loff_t, struct kvec *,int, unsigned long *, int *); __be32 nfsd_readlink(struct svc_rqst *, struct svc_fh *, char *, int *); __be32 nfsd_symlink(struct svc_rqst *, struct svc_fh *, char *name, int len, char *path, int plen, struct svc_fh *res, struct iattr *); __be32 nfsd_link(struct svc_rqst *, struct svc_fh *, char *, int, struct svc_fh *); __be32 nfsd_rename(struct svc_rqst *, struct svc_fh *, char *, int, struct svc_fh *, char *, int); __be32 nfsd_remove(struct svc_rqst *, struct svc_fh *, char *, int); __be32 nfsd_unlink(struct svc_rqst *, struct svc_fh *, int type, char *name, int len); int nfsd_truncate(struct svc_rqst *, struct svc_fh *, unsigned long size); __be32 nfsd_readdir(struct svc_rqst *, struct svc_fh *, loff_t *, struct readdir_cd *, filldir_t); __be32 nfsd_statfs(struct svc_rqst *, struct svc_fh *, struct kstatfs *, int access); int nfsd_notify_change(struct inode *, struct iattr *); __be32 nfsd_permission(struct svc_rqst *, struct svc_export *, struct dentry *, int); int nfsd_sync_dir(struct dentry *dp); #if defined(CONFIG_NFSD_V2_ACL) || defined(CONFIG_NFSD_V3_ACL) struct posix_acl *nfsd_get_posix_acl(struct svc_fh *, int); int nfsd_set_posix_acl(struct svc_fh *, int, struct posix_acl *); #endif |
bad0dcffc new helpers: fh_{... |
106 107 108 109 110 111 112 113 114 |
static inline int fh_want_write(struct svc_fh *fh) { return mnt_want_write(fh->fh_export->ex_path.mnt); } static inline void fh_drop_write(struct svc_fh *fh) { mnt_drop_write(fh->fh_export->ex_path.mnt); } |
0a3adadee nfsd: make fs/nfs... |
115 |
#endif /* LINUX_NFSD_VFS_H */ |