summaryrefslogtreecommitdiffstats
path: root/fs/bfs
diff options
context:
space:
mode:
Diffstat (limited to 'fs/bfs')
-rw-r--r--fs/bfs/dir.c19
-rw-r--r--fs/bfs/file.c3
-rw-r--r--fs/bfs/inode.c11
3 files changed, 9 insertions, 24 deletions
diff --git a/fs/bfs/dir.c b/fs/bfs/dir.c
index 83b3e517b..44e96e101 100644
--- a/fs/bfs/dir.c
+++ b/fs/bfs/dir.c
@@ -23,11 +23,6 @@ static int bfs_add_entry(struct inode * dir, const char * name, int namelen, int
static struct buffer_head * bfs_find_entry(struct inode * dir,
const char * name, int namelen, struct bfs_dirent ** res_dir);
-static ssize_t bfs_dir_read(struct file * f, char * buf, size_t count, loff_t *ppos)
-{
- return -EISDIR;
-}
-
static int bfs_readdir(struct file * f, void * dirent, filldir_t filldir)
{
struct inode * dir = f->f_dentry->d_inode;
@@ -75,10 +70,10 @@ static int bfs_readdir(struct file * f, void * dirent, filldir_t filldir)
return 0;
}
-static struct file_operations bfs_dir_operations = {
- read: bfs_dir_read,
- readdir: bfs_readdir,
- fsync: file_fsync,
+struct file_operations bfs_dir_operations = {
+ read: generic_read_dir,
+ readdir: bfs_readdir,
+ fsync: file_fsync,
};
extern void dump_imap(const char *, struct super_block *);
@@ -107,6 +102,7 @@ static int bfs_create(struct inode * dir, struct dentry * dentry, int mode)
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
inode->i_blocks = inode->i_blksize = 0;
inode->i_op = &bfs_file_inops;
+ inode->i_fop = &bfs_file_operations;
inode->i_mapping->a_ops = &bfs_aops;
inode->i_mode = mode;
inode->i_ino = inode->iu_dsk_ino = ino;
@@ -256,15 +252,10 @@ end_rename:
}
struct inode_operations bfs_dir_inops = {
- default_file_ops: &bfs_dir_operations,
create: bfs_create,
lookup: bfs_lookup,
link: bfs_link,
unlink: bfs_unlink,
- symlink: NULL,
- mkdir: NULL,
- rmdir: NULL,
- mknod: NULL,
rename: bfs_rename,
};
diff --git a/fs/bfs/file.c b/fs/bfs/file.c
index fe90391f1..aba9cefd1 100644
--- a/fs/bfs/file.c
+++ b/fs/bfs/file.c
@@ -18,7 +18,7 @@
#define dprintf(x...)
#endif
-static struct file_operations bfs_file_operations = {
+struct file_operations bfs_file_operations = {
read: generic_file_read,
write: generic_file_write,
mmap: generic_file_mmap,
@@ -156,5 +156,4 @@ struct address_space_operations bfs_aops = {
};
struct inode_operations bfs_file_inops = {
- default_file_ops: &bfs_file_operations,
};
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c
index 14e440f27..79c7c6507 100644
--- a/fs/bfs/inode.c
+++ b/fs/bfs/inode.c
@@ -59,12 +59,13 @@ static void bfs_read_inode(struct inode * inode)
if (di->i_vtype == BFS_VDIR) {
inode->i_mode |= S_IFDIR;
inode->i_op = &bfs_dir_inops;
+ inode->i_fop = &bfs_dir_operations;
} else if (di->i_vtype == BFS_VREG) {
inode->i_mode |= S_IFREG;
inode->i_op = &bfs_file_inops;
+ inode->i_fop = &bfs_file_operations;
inode->i_mapping->a_ops = &bfs_aops;
- } else
- inode->i_op = NULL;
+ }
inode->i_uid = di->i_uid;
inode->i_gid = di->i_gid;
@@ -209,15 +210,10 @@ static void bfs_write_super(struct super_block *s)
static struct super_operations bfs_sops = {
read_inode: bfs_read_inode,
write_inode: bfs_write_inode,
- put_inode: NULL,
delete_inode: bfs_delete_inode,
- notify_change: NULL,
put_super: bfs_put_super,
write_super: bfs_write_super,
statfs: bfs_statfs,
- remount_fs: NULL,
- clear_inode: NULL,
- umount_begin: NULL
};
void dump_imap(const char *prefix, struct super_block * s)
@@ -337,7 +333,6 @@ static struct file_system_type bfs_fs_type = {
name: "bfs",
fs_flags: FS_REQUIRES_DEV,
read_super: bfs_read_super,
- next: NULL
};
#ifdef MODULE