Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

vfs: fix dentry leak in simple_fill_super()

put dentry if inode allocation failed, d_genocide() cannot release it

Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>

authored by

Konstantin Khlebnikov and committed by
Christoph Hellwig
32096ea1 994c0e99

+3 -1
+3 -1
fs/libfs.c
··· 510 510 if (!dentry) 511 511 goto out; 512 512 inode = new_inode(s); 513 - if (!inode) 513 + if (!inode) { 514 + dput(dentry); 514 515 goto out; 516 + } 515 517 inode->i_mode = S_IFREG | files->mode; 516 518 inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; 517 519 inode->i_fop = files->ops;