summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHirofumi Ogawa <hirofumi@mail.parknet.co.jp>2002-08-02 20:24:01 -0700
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-08-02 20:24:01 -0700
commitcdca8d0c3ee91482c58ee4426bc3c94175edb4ff (patch)
treed5ac4abc17d3155145611607946729ea244f385d
parent3334a8ca9896ca4d4ed5bd12a75aa139efcb3b56 (diff)
[PATCH] possible of memory leak of driverfs_mknod()
This patch fixes memory leak of driverfs_mknod(), and changes odd error code.
-rw-r--r--fs/driverfs/inode.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/driverfs/inode.c b/fs/driverfs/inode.c
index 49b27f479355..0767cfa7274c 100644
--- a/fs/driverfs/inode.c
+++ b/fs/driverfs/inode.c
@@ -130,14 +130,15 @@ struct inode *driverfs_get_inode(struct super_block *sb, int mode, int dev)
static int driverfs_mknod(struct inode *dir, struct dentry *dentry, int mode, int dev)
{
- struct inode *inode = driverfs_get_inode(dir->i_sb, mode, dev);
- int error = -EPERM;
+ struct inode *inode;
+ int error = -ENOSPC;
if (dentry->d_inode)
return -EEXIST;
/* only allow create if ->d_fsdata is not NULL (so we can assume it
* comes from the driverfs API below. */
+ inode = driverfs_get_inode(dir->i_sb, mode, dev);
if (inode) {
d_instantiate(dentry, inode);
dget(dentry);