Commit a463ddd343dacf5f1badae514ed2c5135ec0c3a9

Authored by Christoph Hellwig
Committed by Linus Torvalds
1 parent dc487002a2

[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

... ... @@ -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 /*
... ... @@ -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;
... ... @@ -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,