@@ -179,12 +179,12 @@ static const struct sysfs_ops sb_sysfs_ops = {
static int register_kobj(struct super_block *sb)
{
- struct kobj_type *ktype;
- ktype = kzalloc(sizeof(struct kobj_type), GFP_USER);
- if (IS_ERR(ktype))
- return PTR_ERR(ktype);
+ struct kobj_type *ktype = kzalloc(sizeof(struct kobj_type), GFP_USER);
+ if (!ktype)
+ return -ENOMEM;
ktype->sysfs_ops = &sb_sysfs_ops;
ktype->release = release_super;
+ ktype->default_attrs = sb->s_attr;
sb->s_kobj.kset = sb->s_type->kset;
return kobject_init_and_add(&sb->s_kobj, ktype, NULL,
"%s", sb->s_id);
@@ -1441,6 +1441,7 @@ struct super_block {
spinlock_t s_inode_list_lock ____cacheline_aligned_in_smp;
struct list_head s_inodes; /* all inodes */
struct kobject s_kobj;
+ struct attribute **s_attr;
};
extern struct timespec current_fs_time(struct super_block *sb);