Commit e8866cf2 authored by Ed Cashin's avatar Ed Cashin Committed by Linus Torvalds
Browse files

aoe: add AoE-target files to debugfs

parent 190519cd
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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);
+35 −0
Original line number Diff line number Diff line
@@ -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)
{
@@ -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));
+1 −0
Original line number Diff line number Diff line
@@ -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);