瀏覽代碼

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>
Jan Kara 11 年之前
父節點
當前提交
4071b91362
共有 1 個文件被更改,包括 4 次插入2 次删除
  1. 4 2
      fs/udf/inode.c

+ 4 - 2
fs/udf/inode.c

@@ -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)
-		link_count = 1;
+	if (!link_count) {
+		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);