diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2015-01-25 14:02:31 -0500 | 
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-01-25 16:52:31 -0500 | 
| commit | ad5abd5ba8c66ea44e24d7b6996e85ab83b412fc (patch) | |
| tree | 02d2140a331819e5f1c128d401e2c34b517a5fc3 | |
| parent | 190afd81e4a5f24d1db6c774ca7f18acde2fca30 (diff) | |
debugfs: kill __create_file()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| -rw-r--r-- | fs/debugfs/inode.c | 71 | 
1 files changed, 33 insertions, 38 deletions
| diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c index 100186c2bf0a..18564b08884c 100644 --- a/fs/debugfs/inode.c +++ b/fs/debugfs/inode.c @@ -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; + +	if (!(mode & S_IFMT)) +		mode |= S_IFREG; +	BUG_ON(!S_ISREG(mode)); +	dentry = start_creating(name, parent); + +	if (IS_ERR(dentry)) +		return NULL; -	return __create_file(name, mode, parent, data, fops); +	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 result; +		return NULL; +	} + +	error = debugfs_link(dentry, S_IFLNK | S_IRWXUGO, link); +	if (error) +		kfree(link); + +	return end_creating(dentry, error);  }  EXPORT_SYMBOL_GPL(debugfs_create_symlink); | 
