diff --git a/inode.c b/inode.c index 74ad1cd..ac55351 100644 --- a/inode.c +++ b/inode.c @@ -159,7 +159,9 @@ int fpgafs_mkdir( struct inode *dir, struct dentry *dentry, int mode) ret = -ENOSPC; inode = fpgafs_new_inode(dir->i_sb, mode | S_IFDIR); if (!inode) - goto unmutex; + return ret; + + mutex_lock(&inode->i_mutex); if (dir->i_mode & S_ISGID) { inode->i_gid = dir->i_gid; @@ -185,7 +187,7 @@ int fpgafs_mkdir( struct inode *dir, struct dentry *dentry, int mode) dir->i_nlink++; dentry->d_inode->i_nlink++; -unmutex: + //unmutex: mutex_unlock(&inode->i_mutex); return ret; }