Commit a463ddd343dacf5f1badae514ed2c5135ec0c3a9
Committed by
Linus Torvalds
1 parent
dc487002a2
Exists in
master
and in
7 other branches
[PATCH] afs: use generic_ro_fops
afs actually had a write method that returned different errors depending on whether some flag was set - better return the standard EINVAL errno. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Showing 3 changed files with 1 additions and 32 deletions Side-by-side Diff
fs/afs/file.c
... | ... | @@ -31,24 +31,10 @@ |
31 | 31 | static int afs_file_invalidatepage(struct page *page, unsigned long offset); |
32 | 32 | static int afs_file_releasepage(struct page *page, gfp_t gfp_flags); |
33 | 33 | |
34 | -static ssize_t afs_file_write(struct file *file, const char __user *buf, | |
35 | - size_t size, loff_t *off); | |
36 | - | |
37 | 34 | struct inode_operations afs_file_inode_operations = { |
38 | 35 | .getattr = afs_inode_getattr, |
39 | 36 | }; |
40 | 37 | |
41 | -struct file_operations afs_file_file_operations = { | |
42 | - .read = generic_file_read, | |
43 | - .write = afs_file_write, | |
44 | - .mmap = generic_file_mmap, | |
45 | -#if 0 | |
46 | - .open = afs_file_open, | |
47 | - .release = afs_file_release, | |
48 | - .fsync = afs_file_fsync, | |
49 | -#endif | |
50 | -}; | |
51 | - | |
52 | 38 | struct address_space_operations afs_fs_aops = { |
53 | 39 | .readpage = afs_file_readpage, |
54 | 40 | .sync_page = block_sync_page, |
... | ... | @@ -56,22 +42,6 @@ |
56 | 42 | .releasepage = afs_file_releasepage, |
57 | 43 | .invalidatepage = afs_file_invalidatepage, |
58 | 44 | }; |
59 | - | |
60 | -/*****************************************************************************/ | |
61 | -/* | |
62 | - * AFS file write | |
63 | - */ | |
64 | -static ssize_t afs_file_write(struct file *file, const char __user *buf, | |
65 | - size_t size, loff_t *off) | |
66 | -{ | |
67 | - struct afs_vnode *vnode; | |
68 | - | |
69 | - vnode = AFS_FS_I(file->f_dentry->d_inode); | |
70 | - if (vnode->flags & AFS_VNODE_DELETED) | |
71 | - return -ESTALE; | |
72 | - | |
73 | - return -EIO; | |
74 | -} /* end afs_file_write() */ | |
75 | 45 | |
76 | 46 | /*****************************************************************************/ |
77 | 47 | /* |
fs/afs/inode.c
... | ... | @@ -49,7 +49,7 @@ |
49 | 49 | case AFS_FTYPE_FILE: |
50 | 50 | inode->i_mode = S_IFREG | vnode->status.mode; |
51 | 51 | inode->i_op = &afs_file_inode_operations; |
52 | - inode->i_fop = &afs_file_file_operations; | |
52 | + inode->i_fop = &generic_ro_fops; | |
53 | 53 | break; |
54 | 54 | case AFS_FTYPE_DIR: |
55 | 55 | inode->i_mode = S_IFDIR | vnode->status.mode; |
fs/afs/internal.h
... | ... | @@ -71,7 +71,6 @@ |
71 | 71 | */ |
72 | 72 | extern struct address_space_operations afs_fs_aops; |
73 | 73 | extern struct inode_operations afs_file_inode_operations; |
74 | -extern struct file_operations afs_file_file_operations; | |
75 | 74 | |
76 | 75 | #ifdef AFS_CACHING_SUPPORT |
77 | 76 | extern int afs_cache_get_page_cookie(struct page *page, |