Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aae8a97d authored by Aneesh Kumar K.V's avatar Aneesh Kumar K.V Committed by Al Viro
Browse files

fs: Don't allow to create hardlink for deleted file



Add inode->i_nlink == 0 check in VFS. Some of the file systems
do this internally. A followup patch will remove those instance.
This is needed to ensure that with link by handle we don't allow
to create hardlink of an unlinked file. The check also prevent a race
between unlink and link

Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent becfd1f3
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -2906,6 +2906,10 @@ int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_de
		return error;

	mutex_lock(&inode->i_mutex);
	/* Make sure we don't allow creating hardlink to an unlinked file */
	if (inode->i_nlink == 0)
		error =  -ENOENT;
	else
		error = dir->i_op->link(old_dentry, dir, new_dentry);
	mutex_unlock(&inode->i_mutex);
	if (!error)