git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
fs
/
hfs
/
super.c
diff --git
a/fs/hfs/super.c
b/fs/hfs/super.c
index
1181d11
..
a369879
100644
(file)
--- a/
fs/hfs/super.c
+++ b/
fs/hfs/super.c
@@
-12,7
+12,6
@@
* Based on the minix file system code, (C) 1991, 1992 by Linus Torvalds
*/
* Based on the minix file system code, (C) 1991, 1992 by Linus Torvalds
*/
-#include <linux/config.h>
#include <linux/module.h>
#include <linux/blkdev.h>
#include <linux/mount.h>
#include <linux/module.h>
#include <linux/blkdev.h>
#include <linux/mount.h>
@@
-25,7
+24,7
@@
#include "hfs_fs.h"
#include "btree.h"
#include "hfs_fs.h"
#include "btree.h"
-static
kmem_cache_t
*hfs_inode_cachep;
+static
struct kmem_cache
*hfs_inode_cachep;
MODULE_LICENSE("GPL");
MODULE_LICENSE("GPL");
@@
-80,8
+79,10
@@
static void hfs_put_super(struct super_block *sb)
*
* changed f_files/f_ffree to reflect the fs_ablock/free_ablocks.
*/
*
* changed f_files/f_ffree to reflect the fs_ablock/free_ablocks.
*/
-static int hfs_statfs(struct
super_block *sb
, struct kstatfs *buf)
+static int hfs_statfs(struct
dentry *dentry
, struct kstatfs *buf)
{
{
+ struct super_block *sb = dentry->d_sb;
+
buf->f_type = HFS_SUPER_MAGIC;
buf->f_bsize = sb->s_blocksize;
buf->f_blocks = (u32)HFS_SB(sb)->fs_ablocks * HFS_SB(sb)->fs_div;
buf->f_type = HFS_SUPER_MAGIC;
buf->f_bsize = sb->s_blocksize;
buf->f_blocks = (u32)HFS_SB(sb)->fs_ablocks * HFS_SB(sb)->fs_div;
@@
-144,7
+145,7
@@
static struct inode *hfs_alloc_inode(struct super_block *sb)
{
struct hfs_inode_info *i;
{
struct hfs_inode_info *i;
- i = kmem_cache_alloc(hfs_inode_cachep,
SLAB
_KERNEL);
+ i = kmem_cache_alloc(hfs_inode_cachep,
GFP
_KERNEL);
return i ? &i->vfs_inode : NULL;
}
return i ? &i->vfs_inode : NULL;
}
@@
-355,11
+356,10
@@
static int hfs_fill_super(struct super_block *sb, void *data, int silent)
struct inode *root_inode;
int res;
struct inode *root_inode;
int res;
- sbi = k
m
alloc(sizeof(struct hfs_sb_info), GFP_KERNEL);
+ sbi = k
z
alloc(sizeof(struct hfs_sb_info), GFP_KERNEL);
if (!sbi)
return -ENOMEM;
sb->s_fs_info = sbi;
if (!sbi)
return -ENOMEM;
sb->s_fs_info = sbi;
- memset(sbi, 0, sizeof(struct hfs_sb_info));
INIT_HLIST_HEAD(&sbi->rsrc_inodes);
res = -EINVAL;
INIT_HLIST_HEAD(&sbi->rsrc_inodes);
res = -EINVAL;
@@
-390,11
+390,13
@@
static int hfs_fill_super(struct super_block *sb, void *data, int silent)
hfs_find_exit(&fd);
goto bail_no_root;
}
hfs_find_exit(&fd);
goto bail_no_root;
}
+ res = -EINVAL;
root_inode = hfs_iget(sb, &fd.search_key->cat, &rec);
hfs_find_exit(&fd);
if (!root_inode)
goto bail_no_root;
root_inode = hfs_iget(sb, &fd.search_key->cat, &rec);
hfs_find_exit(&fd);
if (!root_inode)
goto bail_no_root;
+ res = -ENOMEM;
sb->s_root = d_alloc_root(root_inode);
if (!sb->s_root)
goto bail_iput;
sb->s_root = d_alloc_root(root_inode);
if (!sb->s_root)
goto bail_iput;
@@
-413,10
+415,11
@@
bail:
return res;
}
return res;
}
-static struct super_block *hfs_get_sb(struct file_system_type *fs_type,
- int flags, const char *dev_name, void *data)
+static int hfs_get_sb(struct file_system_type *fs_type,
+ int flags, const char *dev_name, void *data,
+ struct vfsmount *mnt)
{
{
- return get_sb_bdev(fs_type, flags, dev_name, data, hfs_fill_super);
+ return get_sb_bdev(fs_type, flags, dev_name, data, hfs_fill_super
, mnt
);
}
static struct file_system_type hfs_fs_type = {
}
static struct file_system_type hfs_fs_type = {
@@
-427,7
+430,7
@@
static struct file_system_type hfs_fs_type = {
.fs_flags = FS_REQUIRES_DEV,
};
.fs_flags = FS_REQUIRES_DEV,
};
-static void hfs_init_once(void *p,
kmem_cache_t
*cachep, unsigned long flags)
+static void hfs_init_once(void *p,
struct kmem_cache
*cachep, unsigned long flags)
{
struct hfs_inode_info *i = p;
{
struct hfs_inode_info *i = p;
@@
-453,8
+456,7
@@
static int __init init_hfs_fs(void)
static void __exit exit_hfs_fs(void)
{
unregister_filesystem(&hfs_fs_type);
static void __exit exit_hfs_fs(void)
{
unregister_filesystem(&hfs_fs_type);
- if (kmem_cache_destroy(hfs_inode_cachep))
- printk(KERN_ERR "hfs_inode_cache: not all structures were freed\n");
+ kmem_cache_destroy(hfs_inode_cachep);
}
module_init(init_hfs_fs)
}
module_init(init_hfs_fs)