diff options
Diffstat (limited to 'fs/ramfs/inode.c')
| -rw-r--r-- | fs/ramfs/inode.c | 30 | 
1 files changed, 7 insertions, 23 deletions
diff --git a/fs/ramfs/inode.c b/fs/ramfs/inode.c index aec766abe3a..a1fdabe21de 100644 --- a/fs/ramfs/inode.c +++ b/fs/ramfs/inode.c @@ -209,22 +209,19 @@ static int ramfs_parse_options(char *data, struct ramfs_mount_opts *opts)  int ramfs_fill_super(struct super_block *sb, void *data, int silent)  {  	struct ramfs_fs_info *fsi; -	struct inode *inode = NULL; -	struct dentry *root; +	struct inode *inode;  	int err;  	save_mount_options(sb, data);  	fsi = kzalloc(sizeof(struct ramfs_fs_info), GFP_KERNEL);  	sb->s_fs_info = fsi; -	if (!fsi) { -		err = -ENOMEM; -		goto fail; -	} +	if (!fsi) +		return -ENOMEM;  	err = ramfs_parse_options(data, &fsi->mount_opts);  	if (err) -		goto fail; +		return err;  	sb->s_maxbytes		= MAX_LFS_FILESIZE;  	sb->s_blocksize		= PAGE_CACHE_SIZE; @@ -234,24 +231,11 @@ int ramfs_fill_super(struct super_block *sb, void *data, int silent)  	sb->s_time_gran		= 1;  	inode = ramfs_get_inode(sb, NULL, S_IFDIR | fsi->mount_opts.mode, 0); -	if (!inode) { -		err = -ENOMEM; -		goto fail; -	} - -	root = d_alloc_root(inode); -	sb->s_root = root; -	if (!root) { -		err = -ENOMEM; -		goto fail; -	} +	sb->s_root = d_make_root(inode); +	if (!sb->s_root) +		return -ENOMEM;  	return 0; -fail: -	kfree(fsi); -	sb->s_fs_info = NULL; -	iput(inode); -	return err;  }  struct dentry *ramfs_mount(struct file_system_type *fs_type,  |