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
1 changed files with 4 additions and 2 deletions

View File

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