diff --git a/fs/logfs/dir.c b/fs/logfs/dir.c index 72d1893ddd360ccf144cf962c4e2f05f9a136638..675cc49197feb177bcb67e0f0aefa66deed9cabd 100644 --- a/fs/logfs/dir.c +++ b/fs/logfs/dir.c @@ -434,8 +434,11 @@ static int __logfs_create(struct inode *dir, struct dentry *dentry, int ret; ta = kzalloc(sizeof(*ta), GFP_KERNEL); - if (!ta) + if (!ta) { + inode->i_nlink--; + iput(inode); return -ENOMEM; + } ta->state = CREATE_1; ta->ino = inode->i_ino;