summaryrefslogtreecommitdiffstats
path: root/fs/efs
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-03-02 02:36:47 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-03-02 02:36:47 +0000
commit8624512aa908741ba2795200133eae0d7f4557ea (patch)
treed5d3036fccf2604f4c98dedc11e8adb929d6b52e /fs/efs
parent7b8f5d6f1d45d9f9de1d26e7d3c32aa5af11b488 (diff)
Merge with 2.3.48.
Diffstat (limited to 'fs/efs')
-rw-r--r--fs/efs/dir.c7
-rw-r--r--fs/efs/file.c9
-rw-r--r--fs/efs/inode.c14
-rw-r--r--fs/efs/super.c12
4 files changed, 9 insertions, 33 deletions
diff --git a/fs/efs/dir.c b/fs/efs/dir.c
index 1283f9fdc..2829a60eb 100644
--- a/fs/efs/dir.c
+++ b/fs/efs/dir.c
@@ -8,14 +8,13 @@
static int efs_readdir(struct file *, void *, filldir_t);
-static struct file_operations efs_dir_operations = {
+struct file_operations efs_dir_operations = {
+ read: generic_read_dir,
readdir: efs_readdir,
};
struct inode_operations efs_dir_inode_operations = {
- &efs_dir_operations, /* default directory file-ops */
- NULL, /* create */
- efs_lookup, /* lookup */
+ lookup: efs_lookup,
};
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 3c6de9b28..67f58987e 100644
--- a/fs/efs/file.c
+++ b/fs/efs/file.c
@@ -60,12 +60,3 @@ int efs_bmap(struct inode *inode, efs_block_t block) {
return efs_map_block(inode, block);
}
-
-static struct file_operations efs_file_operations = {
- read: generic_file_read,
- mmap: generic_file_mmap,
-};
-
-struct inode_operations efs_file_inode_operations = {
- &efs_file_operations, /* default file operations */
-};
diff --git a/fs/efs/inode.c b/fs/efs/inode.c
index 0206ae6d5..93edbaac6 100644
--- a/fs/efs/inode.c
+++ b/fs/efs/inode.c
@@ -137,9 +137,10 @@ void efs_read_inode(struct inode *inode) {
switch (inode->i_mode & S_IFMT) {
case S_IFDIR:
inode->i_op = &efs_dir_inode_operations;
+ inode->i_fop = &efs_dir_operations;
break;
case S_IFREG:
- inode->i_op = &efs_file_inode_operations;
+ inode->i_fop = &generic_ro_fops;
inode->i_data.a_ops = &efs_aops;
break;
case S_IFLNK:
@@ -161,16 +162,7 @@ void efs_read_inode(struct inode *inode) {
read_inode_error:
printk(KERN_WARNING "EFS: failed to read inode %lu\n", inode->i_ino);
- inode->i_mode = S_IFREG;
- inode->i_atime = 0;
- inode->i_ctime = 0;
- inode->i_mtime = 0;
- inode->i_nlink = 1;
- inode->i_size = 0;
- inode->i_blocks = 0;
- inode->i_uid = 0;
- inode->i_gid = 0;
- inode->i_op = NULL;
+ make_bad_inode(inode);
return;
}
diff --git a/fs/efs/super.c b/fs/efs/super.c
index df0f167cb..4522b2cfe 100644
--- a/fs/efs/super.c
+++ b/fs/efs/super.c
@@ -21,15 +21,9 @@ static struct file_system_type efs_fs_type = {
};
static struct super_operations efs_superblock_operations = {
- efs_read_inode, /* read_inode */
- NULL, /* write_inode */
- NULL, /* put_inode */
- NULL, /* delete_inode */
- NULL, /* notify_change */
- efs_put_super, /* put_super */
- NULL, /* write_super */
- efs_statfs, /* statfs */
- NULL /* remount */
+ read_inode: efs_read_inode,
+ put_super: efs_put_super,
+ statfs: efs_statfs,
};
int __init init_efs_fs(void) {