summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);