diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-23 00:40:54 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-23 00:40:54 +0000 |
commit | 529c593ece216e4aaffd36bd940cb94f1fa63129 (patch) | |
tree | 78f1c0b805f5656aa7b0417a043c5346f700a2cf /fs/efs | |
parent | 0bd079751d25808d1972baee5c4eaa1db2227257 (diff) |
Merge with 2.3.43. I did ignore all modifications to the qlogicisp.c
driver due to the Origin A64 hacks.
Diffstat (limited to 'fs/efs')
-rw-r--r-- | fs/efs/dir.c | 30 | ||||
-rw-r--r-- | fs/efs/file.c | 31 | ||||
-rw-r--r-- | fs/efs/inode.c | 18 | ||||
-rw-r--r-- | fs/efs/symlink.c | 4 |
4 files changed, 21 insertions, 62 deletions
diff --git a/fs/efs/dir.c b/fs/efs/dir.c index 4e84b1abb..1283f9fdc 100644 --- a/fs/efs/dir.c +++ b/fs/efs/dir.c @@ -9,41 +9,13 @@ static int efs_readdir(struct file *, void *, filldir_t); static struct file_operations efs_dir_operations = { - NULL, /* lseek */ - NULL, /* read */ - NULL, /* write */ - efs_readdir, /* readdir */ - NULL, /* poll */ - NULL, /* ioctl */ - NULL, /* mmap */ - NULL, /* open */ - NULL, /* flush */ - NULL, /* release */ - NULL, /* fsync */ - NULL, /* fasync */ + readdir: efs_readdir, }; -extern int efs_get_block(struct inode *, long, struct buffer_head *, int); - struct inode_operations efs_dir_inode_operations = { &efs_dir_operations, /* default directory file-ops */ NULL, /* create */ efs_lookup, /* lookup */ - NULL, /* link */ - NULL, /* unlink */ - NULL, /* symlink */ - NULL, /* mkdir */ - NULL, /* rmdir */ - NULL, /* mknod */ - NULL, /* rename */ - NULL, /* readlink */ - NULL, /* follow_link */ - efs_get_block, /* get_block */ - NULL, /* readpage */ - NULL, /* writepage */ - NULL, /* truncate */ - NULL, /* permission */ - NULL /* revalidate */ }; static int efs_readdir(struct file *filp, void *dirent, filldir_t filldir) { diff --git a/fs/efs/file.c b/fs/efs/file.c index 8a2a8163d..3c6de9b28 100644 --- a/fs/efs/file.c +++ b/fs/efs/file.c @@ -62,37 +62,10 @@ int efs_bmap(struct inode *inode, efs_block_t block) { } static struct file_operations efs_file_operations = { - NULL, /* lseek */ - generic_file_read, /* read */ - NULL, /* write */ - NULL, /* readdir */ - NULL, /* poll */ - NULL, /* ioctl */ - generic_file_mmap, /* mmap */ - NULL, /* open */ - NULL, /* flush */ - NULL, /* release */ - NULL, /* fsync */ - NULL, /* fasync */ + read: generic_file_read, + mmap: generic_file_mmap, }; struct inode_operations efs_file_inode_operations = { &efs_file_operations, /* default file operations */ - NULL, /* create */ - NULL, /* lookup */ - NULL, /* link */ - NULL, /* unlink */ - NULL, /* symlink */ - NULL, /* mkdir */ - NULL, /* rmdir */ - NULL, /* mknod */ - NULL, /* rename */ - NULL, /* readlink */ - NULL, /* follow_link */ - efs_get_block, /* get_block */ - block_read_full_page, /* readpage */ - NULL, /* writepage */ - NULL, /* truncate */ - NULL, /* permission */ - NULL /* revalidate */ }; diff --git a/fs/efs/inode.c b/fs/efs/inode.c index 75903be12..0206ae6d5 100644 --- a/fs/efs/inode.c +++ b/fs/efs/inode.c @@ -10,6 +10,20 @@ #include <linux/efs_fs.h> #include <linux/efs_fs_sb.h> +extern int efs_get_block(struct inode *, long, struct buffer_head *, int); +static int efs_readpage(struct dentry *dentry, struct page *page) +{ + return block_read_full_page(page,efs_get_block); +} +static int _efs_bmap(struct address_space *mapping, long block) +{ + return generic_block_bmap(mapping,block,efs_get_block); +} +struct address_space_operations efs_aops = { + readpage: efs_readpage, + bmap: _efs_bmap +}; + static inline void extent_copy(efs_extent *src, efs_extent *dst) { /* * this is slightly evil. it doesn't just copy @@ -126,9 +140,11 @@ void efs_read_inode(struct inode *inode) { break; case S_IFREG: inode->i_op = &efs_file_inode_operations; + inode->i_data.a_ops = &efs_aops; break; case S_IFLNK: - inode->i_op = &efs_symlink_inode_operations; + inode->i_op = &page_symlink_inode_operations; + inode->i_data.a_ops = &efs_symlink_aops; break; case S_IFCHR: case S_IFBLK: diff --git a/fs/efs/symlink.c b/fs/efs/symlink.c index 6bfc16be7..66776c7e5 100644 --- a/fs/efs/symlink.c +++ b/fs/efs/symlink.c @@ -48,8 +48,6 @@ fail: return err; } -struct inode_operations efs_symlink_inode_operations = { - readlink: page_readlink, - follow_link: page_follow_link, +struct address_space_operations efs_symlink_aops = { readpage: efs_symlink_readpage }; |