diff --git a/fs/orangefs/pvfs2-kernel.h b/fs/orangefs/pvfs2-kernel.h index 16df1d5aa879..c36868be03dc 100644 --- a/fs/orangefs/pvfs2-kernel.h +++ b/fs/orangefs/pvfs2-kernel.h @@ -364,18 +364,6 @@ struct pvfs2_sb_info_s { struct list_head list; }; -/* - * a temporary structure used only for sb mount time that groups the - * mount time data provided along with a private superblock structure - * that is allocated before a 'kernel' superblock is allocated. -*/ -struct pvfs2_mount_sb_info_s { - void *data; - struct pvfs2_khandle root_khandle; - __s32 fs_id; - int id; -}; - /* * structure that holds the state of any async I/O operation issued * through the VFS. Needed especially to handle cancellation requests diff --git a/fs/orangefs/super.c b/fs/orangefs/super.c index 833af68c2227..f29e7cccdfd1 100644 --- a/fs/orangefs/super.c +++ b/fs/orangefs/super.c @@ -347,13 +347,13 @@ static struct export_operations pvfs2_export_ops = { .fh_to_dentry = pvfs2_fh_to_dentry, }; -static int pvfs2_fill_sb(struct super_block *sb, void *data, int silent) +static int pvfs2_fill_sb(struct super_block *sb, + struct pvfs2_fs_mount_response *fs_mount, + void *data, int silent) { int ret = -EINVAL; struct inode *root = NULL; struct dentry *root_dentry = NULL; - struct pvfs2_mount_sb_info_s *mount_sb_info = - (struct pvfs2_mount_sb_info_s *) data; struct pvfs2_object_kref root_object; /* alloc and init our private pvfs2 sb info */ @@ -364,13 +364,12 @@ static int pvfs2_fill_sb(struct super_block *sb, void *data, int silent) memset(sb->s_fs_info, 0, sizeof(struct pvfs2_sb_info_s)); PVFS2_SB(sb)->sb = sb; - PVFS2_SB(sb)->root_khandle = mount_sb_info->root_khandle; - PVFS2_SB(sb)->fs_id = mount_sb_info->fs_id; - PVFS2_SB(sb)->id = mount_sb_info->id; + PVFS2_SB(sb)->root_khandle = fs_mount->root_khandle; + PVFS2_SB(sb)->fs_id = fs_mount->fs_id; + PVFS2_SB(sb)->id = fs_mount->id; - if (mount_sb_info->data) { - ret = parse_mount_options(sb, mount_sb_info->data, - silent); + if (data) { + ret = parse_mount_options(sb, data, silent); if (ret) return ret; } @@ -419,7 +418,6 @@ struct dentry *pvfs2_mount(struct file_system_type *fst, int ret = -EINVAL; struct super_block *sb = ERR_PTR(-EINVAL); struct pvfs2_kernel_op_s *new_op; - struct pvfs2_mount_sb_info_s mount_sb_info; struct dentry *d = ERR_PTR(-EINVAL); gossip_debug(GOSSIP_SUPER_DEBUG, @@ -455,13 +453,6 @@ struct dentry *pvfs2_mount(struct file_system_type *fst, goto free_op; } - /* fill in temporary structure passed to fill_sb method */ - mount_sb_info.data = data; - mount_sb_info.root_khandle = - new_op->downcall.resp.fs_mount.root_khandle; - mount_sb_info.fs_id = new_op->downcall.resp.fs_mount.fs_id; - mount_sb_info.id = new_op->downcall.resp.fs_mount.id; - sb = sget(fst, NULL, set_anon_super, flags, NULL); if (IS_ERR(sb)) { @@ -470,7 +461,7 @@ struct dentry *pvfs2_mount(struct file_system_type *fst, } ret = pvfs2_fill_sb(sb, - (void *)&mount_sb_info, + &new_op->downcall.resp.fs_mount, data, flags & MS_SILENT ? 1 : 0); if (ret) {