aboutsummaryrefslogtreecommitdiffstats
path: root/fs/configfs
diff options
context:
space:
mode:
authorLouis Rilling <Louis.Rilling@kerlabs.com>2008-06-16 13:01:00 -0400
committerMark Fasheh <mfasheh@suse.com>2008-07-14 16:57:16 -0400
commit107ed40bd070df5e4a0a012042c45c40963dc574 (patch)
treed3b8c1799083c0e7d4f1af3e1b84f0a86372eaee /fs/configfs
parent5301a77da2da1e4c22573e0e8d394a653b8ad9f9 (diff)
configfs: Make configfs_new_dirent() return error code instead of NULL
This patch makes configfs_new_dirent return negative error code instead of NULL, which will be useful in the next patch to differentiate ENOMEM from ENOENT. Signed-off-by: Louis Rilling <Louis.Rilling@kerlabs.com> Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/configfs')
-rw-r--r--fs/configfs/dir.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index a08e5c2f25e8..918a332babfe 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -30,6 +30,7 @@
30#include <linux/mount.h> 30#include <linux/mount.h>
31#include <linux/module.h> 31#include <linux/module.h>
32#include <linux/slab.h> 32#include <linux/slab.h>
33#include <linux/err.h>
33 34
34#include <linux/configfs.h> 35#include <linux/configfs.h>
35#include "configfs_internal.h" 36#include "configfs_internal.h"
@@ -83,7 +84,7 @@ static struct configfs_dirent *configfs_new_dirent(struct configfs_dirent * pare
83 84
84 sd = kmem_cache_zalloc(configfs_dir_cachep, GFP_KERNEL); 85 sd = kmem_cache_zalloc(configfs_dir_cachep, GFP_KERNEL);
85 if (!sd) 86 if (!sd)
86 return NULL; 87 return ERR_PTR(-ENOMEM);
87 88
88 atomic_set(&sd->s_count, 1); 89 atomic_set(&sd->s_count, 1);
89 INIT_LIST_HEAD(&sd->s_links); 90 INIT_LIST_HEAD(&sd->s_links);
@@ -129,8 +130,8 @@ int configfs_make_dirent(struct configfs_dirent * parent_sd,
129 struct configfs_dirent * sd; 130 struct configfs_dirent * sd;
130 131
131 sd = configfs_new_dirent(parent_sd, element); 132 sd = configfs_new_dirent(parent_sd, element);
132 if (!sd) 133 if (IS_ERR(sd))
133 return -ENOMEM; 134 return PTR_ERR(sd);
134 135
135 sd->s_mode = mode; 136 sd->s_mode = mode;
136 sd->s_type = type; 137 sd->s_type = type;
@@ -1277,7 +1278,7 @@ static int configfs_dir_open(struct inode *inode, struct file *file)
1277 file->private_data = configfs_new_dirent(parent_sd, NULL); 1278 file->private_data = configfs_new_dirent(parent_sd, NULL);
1278 mutex_unlock(&dentry->d_inode->i_mutex); 1279 mutex_unlock(&dentry->d_inode->i_mutex);
1279 1280
1280 return file->private_data ? 0 : -ENOMEM; 1281 return IS_ERR(file->private_data) ? PTR_ERR(file->private_data) : 0;
1281 1282
1282} 1283}
1283 1284