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: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
44bf091f50
commit
8a70ee3307
|
@ -1664,7 +1664,7 @@ static int udf_update_inode(struct inode *inode, int do_sync)
|
|||
FE_PERM_U_DELETE | FE_PERM_U_CHATTR));
|
||||
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);
|
||||
else
|
||||
fe->fileLinkCount = cpu_to_le16(inode->i_nlink);
|
||||
|
|
Loading…
Reference in New Issue