.. | .. |
---|
487 | 487 | complete(&sbi->s_kobj_unregister); |
---|
488 | 488 | } |
---|
489 | 489 | |
---|
| 490 | +static void ext4_feat_release(struct kobject *kobj) |
---|
| 491 | +{ |
---|
| 492 | + kfree(kobj); |
---|
| 493 | +} |
---|
| 494 | + |
---|
490 | 495 | static const struct sysfs_ops ext4_attr_ops = { |
---|
491 | 496 | .show = ext4_attr_show, |
---|
492 | 497 | .store = ext4_attr_store, |
---|
.. | .. |
---|
501 | 506 | static struct kobj_type ext4_feat_ktype = { |
---|
502 | 507 | .default_groups = ext4_feat_groups, |
---|
503 | 508 | .sysfs_ops = &ext4_attr_ops, |
---|
504 | | - .release = (void (*)(struct kobject *))kfree, |
---|
| 509 | + .release = ext4_feat_release, |
---|
505 | 510 | }; |
---|
506 | 511 | |
---|
507 | 512 | static struct kobject *ext4_root; |
---|
.. | .. |
---|
534 | 539 | ext4_fc_info_show, sb); |
---|
535 | 540 | proc_create_seq_data("mb_groups", S_IRUGO, sbi->s_proc, |
---|
536 | 541 | &ext4_mb_seq_groups_ops, sb); |
---|
| 542 | + proc_create_single_data("mb_stats", 0444, sbi->s_proc, |
---|
| 543 | + ext4_seq_mb_stats_show, sb); |
---|
537 | 544 | } |
---|
538 | 545 | return 0; |
---|
539 | 546 | } |
---|