udf: Properly detect stale inodes

NFS can easily ask for inodes that are already deleted. Currently UDF
happily returns such inodes which is a bug. Return -ESTALE if
udf_read_inode() is asked to read deleted inode.

Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
Jan Kara 2014-09-04 16:19:47 +02:00
parent 6d3d5e860a
commit 4071b91362

View File

@ -1435,8 +1435,10 @@ reread:
read_unlock(&sbi->s_cred_lock); read_unlock(&sbi->s_cred_lock);
link_count = le16_to_cpu(fe->fileLinkCount); link_count = le16_to_cpu(fe->fileLinkCount);
if (!link_count) if (!link_count) {
link_count = 1; ret = -ESTALE;
goto out;
}
set_nlink(inode, link_count); set_nlink(inode, link_count);
inode->i_size = le64_to_cpu(fe->informationLength); inode->i_size = le64_to_cpu(fe->informationLength);