udf: Skip parent dir link count update if corrupted
BugLink: https://bugs.launchpad.net/bugs/2103869 [ Upstream commit c5566903af56dd1abb092f18dcb0c770d6cd8dcb ] If the parent directory link count is too low (likely directory inode corruption), just skip updating its link count as if it goes to 0 too early it can cause unexpected issues. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Manuel Diewald <manuel.diewald@canonical.com> Signed-off-by: Mehmet Basaran <mehmet.basaran@canonical.com>
This commit is contained in:
+5
-1
@@ -517,7 +517,11 @@ static int udf_rmdir(struct inode *dir, struct dentry *dentry)
|
||||
inode->i_nlink);
|
||||
clear_nlink(inode);
|
||||
inode->i_size = 0;
|
||||
inode_dec_link_count(dir);
|
||||
if (dir->i_nlink >= 3)
|
||||
inode_dec_link_count(dir);
|
||||
else
|
||||
udf_warn(inode->i_sb, "parent dir link count too low (%u)\n",
|
||||
dir->i_nlink);
|
||||
udf_add_fid_counter(dir->i_sb, true, -1);
|
||||
inode_set_mtime_to_ts(dir,
|
||||
inode_set_ctime_to_ts(dir, inode_set_ctime_current(inode)));
|
||||
|
||||
Reference in New Issue
Block a user