Commit 8a70ee33 authored by Jan Kara's avatar Jan Kara

udf: Avoid dir link count to go negative

If we are writing back inode of unlinked directory, its link count ends
up being (u16)-1. Although the inode is deleted, udf_iget() can load the
inode when NFS uses stale file handle and get confused.
Signed-off-by: default avatarJan Kara <jack@suse.cz>
parent 44bf091f
...@@ -1664,7 +1664,7 @@ static int udf_update_inode(struct inode *inode, int do_sync) ...@@ -1664,7 +1664,7 @@ static int udf_update_inode(struct inode *inode, int do_sync)
FE_PERM_U_DELETE | FE_PERM_U_CHATTR)); FE_PERM_U_DELETE | FE_PERM_U_CHATTR));
fe->permissions = cpu_to_le32(udfperms); fe->permissions = cpu_to_le32(udfperms);
if (S_ISDIR(inode->i_mode)) if (S_ISDIR(inode->i_mode) && inode->i_nlink > 0)
fe->fileLinkCount = cpu_to_le16(inode->i_nlink - 1); fe->fileLinkCount = cpu_to_le16(inode->i_nlink - 1);
else else
fe->fileLinkCount = cpu_to_le16(inode->i_nlink); fe->fileLinkCount = cpu_to_le16(inode->i_nlink);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment