Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ad5abd5b authored by Al Viro's avatar Al Viro
Browse files

debugfs: kill __create_file()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 190afd81
Loading
Loading
Loading
Loading
+33 −38
Original line number Diff line number Diff line
@@ -348,30 +348,6 @@ static struct dentry *end_creating(struct dentry *dentry, int error)
	return dentry;
}

static struct dentry *__create_file(const char *name, umode_t mode,
				    struct dentry *parent, void *data,
				    const struct file_operations *fops)
{
	struct dentry *dentry = start_creating(name, parent);
	int error;

	if (IS_ERR(dentry))
		return NULL;

	switch (mode & S_IFMT) {
	case S_IFDIR:
		error = debugfs_mkdir(dentry, mode);
		break;
	case S_IFLNK:
		error = debugfs_link(dentry, mode, data);
		break;
	default:
		error = debugfs_create(dentry, mode, data, fops);
		break;
	}
	return end_creating(dentry, error);
}

/**
 * debugfs_create_file - create a file in the debugfs filesystem
 * @name: a pointer to a string containing the name of the file to create.
@@ -402,15 +378,19 @@ struct dentry *debugfs_create_file(const char *name, umode_t mode,
				   struct dentry *parent, void *data,
				   const struct file_operations *fops)
{
	switch (mode & S_IFMT) {
	case S_IFREG:
	case 0:
		break;
	default:
		BUG();
	}
	struct dentry *dentry;
	int error;

	return __create_file(name, mode, parent, data, fops);
	if (!(mode & S_IFMT))
		mode |= S_IFREG;
	BUG_ON(!S_ISREG(mode));
	dentry = start_creating(name, parent);

	if (IS_ERR(dentry))
		return NULL;

	error = debugfs_create(dentry, mode, data, fops);
	return end_creating(dentry, error);
}
EXPORT_SYMBOL_GPL(debugfs_create_file);

@@ -434,8 +414,14 @@ EXPORT_SYMBOL_GPL(debugfs_create_file);
 */
struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
{
	return __create_file(name, S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO,
				   parent, NULL, NULL);
	struct dentry *dentry = start_creating(name, parent);
	int error;

	if (IS_ERR(dentry))
		return NULL;

	error = debugfs_mkdir(dentry, S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO);
	return end_creating(dentry, error);
}
EXPORT_SYMBOL_GPL(debugfs_create_dir);

@@ -465,17 +451,26 @@ EXPORT_SYMBOL_GPL(debugfs_create_dir);
struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent,
				      const char *target)
{
	struct dentry *result;
	struct dentry *dentry;
	char *link;
	int error;

	link = kstrdup(target, GFP_KERNEL);
	if (!link)
		return NULL;

	result = __create_file(name, S_IFLNK | S_IRWXUGO, parent, link, NULL);
	if (!result)
	dentry = start_creating(name, parent);

	if (IS_ERR(dentry)) {
		kfree(link);
		return NULL;
	}

	error = debugfs_link(dentry, S_IFLNK | S_IRWXUGO, link);
	if (error)
		kfree(link);
	return result;

	return end_creating(dentry, error);
}
EXPORT_SYMBOL_GPL(debugfs_create_symlink);