aboutsummaryrefslogtreecommitdiffstats
path: root/fs/befs/linuxvfs.c
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
commitc71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch)
treeecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /fs/befs/linuxvfs.c
parentea53c912f8a86a8567697115b6a0d8152beee5c8 (diff)
parent6a00f206debf8a5c8899055726ad127dbeeed098 (diff)
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts: litmus/sched_cedf.c
Diffstat (limited to 'fs/befs/linuxvfs.c')
-rw-r--r--fs/befs/linuxvfs.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
index dc39d2824885..54b8c28bebc8 100644
--- a/fs/befs/linuxvfs.c
+++ b/fs/befs/linuxvfs.c
@@ -75,7 +75,6 @@ static const struct inode_operations befs_dir_inode_operations = {
75 75
76static const struct address_space_operations befs_aops = { 76static const struct address_space_operations befs_aops = {
77 .readpage = befs_readpage, 77 .readpage = befs_readpage,
78 .sync_page = block_sync_page,
79 .bmap = befs_bmap, 78 .bmap = befs_bmap,
80}; 79};
81 80
@@ -284,12 +283,18 @@ befs_alloc_inode(struct super_block *sb)
284 return &bi->vfs_inode; 283 return &bi->vfs_inode;
285} 284}
286 285
287static void 286static void befs_i_callback(struct rcu_head *head)
288befs_destroy_inode(struct inode *inode)
289{ 287{
288 struct inode *inode = container_of(head, struct inode, i_rcu);
289 INIT_LIST_HEAD(&inode->i_dentry);
290 kmem_cache_free(befs_inode_cachep, BEFS_I(inode)); 290 kmem_cache_free(befs_inode_cachep, BEFS_I(inode));
291} 291}
292 292
293static void befs_destroy_inode(struct inode *inode)
294{
295 call_rcu(&inode->i_rcu, befs_i_callback);
296}
297
293static void init_once(void *foo) 298static void init_once(void *foo)
294{ 299{
295 struct befs_inode_info *bi = (struct befs_inode_info *) foo; 300 struct befs_inode_info *bi = (struct befs_inode_info *) foo;
@@ -384,7 +389,7 @@ static struct inode *befs_iget(struct super_block *sb, unsigned long ino)
384 int num_blks; 389 int num_blks;
385 390
386 befs_ino->i_data.ds = 391 befs_ino->i_data.ds =
387 fsds_to_cpu(sb, raw_inode->data.datastream); 392 fsds_to_cpu(sb, &raw_inode->data.datastream);
388 393
389 num_blks = befs_count_blocks(sb, &befs_ino->i_data.ds); 394 num_blks = befs_count_blocks(sb, &befs_ino->i_data.ds);
390 inode->i_blocks = 395 inode->i_blocks =
@@ -729,7 +734,7 @@ parse_options(char *options, befs_mount_options * opts)
729 734
730/* This function has the responsibiltiy of getting the 735/* This function has the responsibiltiy of getting the
731 * filesystem ready for unmounting. 736 * filesystem ready for unmounting.
732 * Basicly, we free everything that we allocated in 737 * Basically, we free everything that we allocated in
733 * befs_read_inode 738 * befs_read_inode
734 */ 739 */
735static void 740static void
@@ -913,18 +918,17 @@ befs_statfs(struct dentry *dentry, struct kstatfs *buf)
913 return 0; 918 return 0;
914} 919}
915 920
916static int 921static struct dentry *
917befs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, 922befs_mount(struct file_system_type *fs_type, int flags, const char *dev_name,
918 void *data, struct vfsmount *mnt) 923 void *data)
919{ 924{
920 return get_sb_bdev(fs_type, flags, dev_name, data, befs_fill_super, 925 return mount_bdev(fs_type, flags, dev_name, data, befs_fill_super);
921 mnt);
922} 926}
923 927
924static struct file_system_type befs_fs_type = { 928static struct file_system_type befs_fs_type = {
925 .owner = THIS_MODULE, 929 .owner = THIS_MODULE,
926 .name = "befs", 930 .name = "befs",
927 .get_sb = befs_get_sb, 931 .mount = befs_mount,
928 .kill_sb = kill_block_super, 932 .kill_sb = kill_block_super,
929 .fs_flags = FS_REQUIRES_DEV, 933 .fs_flags = FS_REQUIRES_DEV,
930}; 934};