aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/nfs/dir.c33
-rw-r--r--fs/nfs/nfs4_fs.h5
-rw-r--r--fs/nfs/nfs4proc.c20
3 files changed, 27 insertions, 31 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index e75f2aaafadf..d49f1b9cd3fd 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -63,33 +63,6 @@ const struct address_space_operations nfs_dir_aops = {
63 .freepage = nfs_readdir_clear_array, 63 .freepage = nfs_readdir_clear_array,
64}; 64};
65 65
66#ifdef CONFIG_NFS_V4
67
68static int nfs_atomic_open(struct inode *, struct dentry *,
69 struct file *, unsigned, umode_t,
70 int *);
71const struct inode_operations nfs4_dir_inode_operations = {
72 .create = nfs_create,
73 .lookup = nfs_lookup,
74 .atomic_open = nfs_atomic_open,
75 .link = nfs_link,
76 .unlink = nfs_unlink,
77 .symlink = nfs_symlink,
78 .mkdir = nfs_mkdir,
79 .rmdir = nfs_rmdir,
80 .mknod = nfs_mknod,
81 .rename = nfs_rename,
82 .permission = nfs_permission,
83 .getattr = nfs_getattr,
84 .setattr = nfs_setattr,
85 .getxattr = generic_getxattr,
86 .setxattr = generic_setxattr,
87 .listxattr = generic_listxattr,
88 .removexattr = generic_removexattr,
89};
90
91#endif /* CONFIG_NFS_V4 */
92
93static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct inode *dir, struct rpc_cred *cred) 66static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct inode *dir, struct rpc_cred *cred)
94{ 67{
95 struct nfs_open_dir_context *ctx; 68 struct nfs_open_dir_context *ctx;
@@ -1352,9 +1325,9 @@ out:
1352 return err; 1325 return err;
1353} 1326}
1354 1327
1355static int nfs_atomic_open(struct inode *dir, struct dentry *dentry, 1328int nfs_atomic_open(struct inode *dir, struct dentry *dentry,
1356 struct file *file, unsigned open_flags, 1329 struct file *file, unsigned open_flags,
1357 umode_t mode, int *opened) 1330 umode_t mode, int *opened)
1358{ 1331{
1359 struct nfs_open_context *ctx; 1332 struct nfs_open_context *ctx;
1360 struct dentry *res; 1333 struct dentry *res;
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
index 3696ca7f5f4d..e2c4c72d3866 100644
--- a/fs/nfs/nfs4_fs.h
+++ b/fs/nfs/nfs4_fs.h
@@ -200,7 +200,10 @@ struct nfs4_state_maintenance_ops {
200}; 200};
201 201
202extern const struct dentry_operations nfs4_dentry_operations; 202extern const struct dentry_operations nfs4_dentry_operations;
203extern const struct inode_operations nfs4_dir_inode_operations; 203
204/* dir.c */
205int nfs_atomic_open(struct inode *, struct dentry *, struct file *,
206 unsigned, umode_t, int *);
204 207
205/* write.c */ 208/* write.c */
206int nfs4_write_inode(struct inode *, struct writeback_control *); 209int nfs4_write_inode(struct inode *, struct writeback_control *);
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 05801be4a180..5e373c30e8d4 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -6832,6 +6832,26 @@ const struct nfs4_minor_version_ops *nfs_v4_minor_ops[] = {
6832#endif 6832#endif
6833}; 6833};
6834 6834
6835const struct inode_operations nfs4_dir_inode_operations = {
6836 .create = nfs_create,
6837 .lookup = nfs_lookup,
6838 .atomic_open = nfs_atomic_open,
6839 .link = nfs_link,
6840 .unlink = nfs_unlink,
6841 .symlink = nfs_symlink,
6842 .mkdir = nfs_mkdir,
6843 .rmdir = nfs_rmdir,
6844 .mknod = nfs_mknod,
6845 .rename = nfs_rename,
6846 .permission = nfs_permission,
6847 .getattr = nfs_getattr,
6848 .setattr = nfs_setattr,
6849 .getxattr = generic_getxattr,
6850 .setxattr = generic_setxattr,
6851 .listxattr = generic_listxattr,
6852 .removexattr = generic_removexattr,
6853};
6854
6835static const struct inode_operations nfs4_file_inode_operations = { 6855static const struct inode_operations nfs4_file_inode_operations = {
6836 .permission = nfs_permission, 6856 .permission = nfs_permission,
6837 .getattr = nfs_getattr, 6857 .getattr = nfs_getattr,