diff options
Diffstat (limited to 'fs/bfs')
-rw-r--r-- | fs/bfs/dir.c | 19 | ||||
-rw-r--r-- | fs/bfs/file.c | 3 | ||||
-rw-r--r-- | fs/bfs/inode.c | 11 |
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 |