Loading drivers/block/aoe/aoe.h +2 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,7 @@ struct aoedev { ulong ref; struct work_struct work;/* disk create work struct */ struct gendisk *gd; struct dentry *debugfs; struct request_queue *blkq; struct hd_geometry geo; sector_t ssize; Loading Loading @@ -206,6 +207,7 @@ struct ktstate { int aoeblk_init(void); void aoeblk_exit(void); void aoeblk_gdalloc(void *); void aoedisk_rm_debugfs(struct aoedev *d); void aoedisk_rm_sysfs(struct aoedev *d); int aoechr_init(void); Loading drivers/block/aoe/aoeblk.c +35 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,40 @@ static const struct attribute_group attr_group = { .attrs = aoe_attrs, }; static const struct file_operations aoe_debugfs_fops; static void aoedisk_add_debugfs(struct aoedev *d) { struct dentry *entry; char *p; if (aoe_debugfs_dir == NULL) return; p = strchr(d->gd->disk_name, '/'); if (p == NULL) p = d->gd->disk_name; else p++; BUG_ON(*p == '\0'); entry = debugfs_create_file(p, 0444, aoe_debugfs_dir, d, &aoe_debugfs_fops); if (IS_ERR_OR_NULL(entry)) { pr_info("aoe: cannot create debugfs file for %s\n", d->gd->disk_name); return; } BUG_ON(d->debugfs); d->debugfs = entry; } void aoedisk_rm_debugfs(struct aoedev *d) { BUG_ON(d->debugfs == NULL); debugfs_remove(d->debugfs); d->debugfs = NULL; } static int aoedisk_add_sysfs(struct aoedev *d) { Loading Loading @@ -332,6 +366,7 @@ aoeblk_gdalloc(void *vp) add_disk(gd); aoedisk_add_sysfs(d); aoedisk_add_debugfs(d); spin_lock_irqsave(&d->lock, flags); WARN_ON(!(d->flags & DEVFL_GD_NOW)); Loading drivers/block/aoe/aoedev.c +1 −0 Original line number Diff line number Diff line Loading @@ -278,6 +278,7 @@ freedev(struct aoedev *d) del_timer_sync(&d->timer); if (d->gd) { aoedisk_rm_debugfs(d); aoedisk_rm_sysfs(d); del_gendisk(d->gd); put_disk(d->gd); Loading Loading
drivers/block/aoe/aoe.h +2 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,7 @@ struct aoedev { ulong ref; struct work_struct work;/* disk create work struct */ struct gendisk *gd; struct dentry *debugfs; struct request_queue *blkq; struct hd_geometry geo; sector_t ssize; Loading Loading @@ -206,6 +207,7 @@ struct ktstate { int aoeblk_init(void); void aoeblk_exit(void); void aoeblk_gdalloc(void *); void aoedisk_rm_debugfs(struct aoedev *d); void aoedisk_rm_sysfs(struct aoedev *d); int aoechr_init(void); Loading
drivers/block/aoe/aoeblk.c +35 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,40 @@ static const struct attribute_group attr_group = { .attrs = aoe_attrs, }; static const struct file_operations aoe_debugfs_fops; static void aoedisk_add_debugfs(struct aoedev *d) { struct dentry *entry; char *p; if (aoe_debugfs_dir == NULL) return; p = strchr(d->gd->disk_name, '/'); if (p == NULL) p = d->gd->disk_name; else p++; BUG_ON(*p == '\0'); entry = debugfs_create_file(p, 0444, aoe_debugfs_dir, d, &aoe_debugfs_fops); if (IS_ERR_OR_NULL(entry)) { pr_info("aoe: cannot create debugfs file for %s\n", d->gd->disk_name); return; } BUG_ON(d->debugfs); d->debugfs = entry; } void aoedisk_rm_debugfs(struct aoedev *d) { BUG_ON(d->debugfs == NULL); debugfs_remove(d->debugfs); d->debugfs = NULL; } static int aoedisk_add_sysfs(struct aoedev *d) { Loading Loading @@ -332,6 +366,7 @@ aoeblk_gdalloc(void *vp) add_disk(gd); aoedisk_add_sysfs(d); aoedisk_add_debugfs(d); spin_lock_irqsave(&d->lock, flags); WARN_ON(!(d->flags & DEVFL_GD_NOW)); Loading
drivers/block/aoe/aoedev.c +1 −0 Original line number Diff line number Diff line Loading @@ -278,6 +278,7 @@ freedev(struct aoedev *d) del_timer_sync(&d->timer); if (d->gd) { aoedisk_rm_debugfs(d); aoedisk_rm_sysfs(d); del_gendisk(d->gd); put_disk(d->gd); Loading