git: 824bbb9a4082 - main - diff: consider two files with same inodes as identical

From: Mariusz Zaborski <oshogbo_at_FreeBSD.org>
Date: Thu, 07 Oct 2021 15:09:46 UTC
The branch main has been updated by oshogbo:

URL: https://cgit.FreeBSD.org/src/commit/?id=824bbb9a40820fb62bde0a91c0f13e0b894da149

commit 824bbb9a40820fb62bde0a91c0f13e0b894da149
Author:     Mariusz Zaborski <oshogbo@FreeBSD.org>
AuthorDate: 2021-10-07 15:07:00 +0000
Commit:     Mariusz Zaborski <oshogbo@FreeBSD.org>
CommitDate: 2021-10-07 15:07:00 +0000

    diff: consider two files with same inodes as identical
    
    Obtained from:  OpenBSD
    MFC after:      1 week
---
 usr.bin/diff/diffreg.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c
index fc3c3406a073..995843f9e539 100644
--- a/usr.bin/diff/diffreg.c
+++ b/usr.bin/diff/diffreg.c
@@ -440,6 +440,10 @@ files_differ(FILE *f1, FILE *f2, int flags)
 	if ((flags & (D_EMPTY1|D_EMPTY2)) || stb1.st_size != stb2.st_size ||
 	    (stb1.st_mode & S_IFMT) != (stb2.st_mode & S_IFMT))
 		return (1);
+
+	if (stb1.st_dev == stb2.st_dev && stb1.st_ino == stb2.st_ino)
+		return (0);
+
 	for (;;) {
 		i = fread(buf1, 1, sizeof(buf1), f1);
 		j = fread(buf2, 1, sizeof(buf2), f2);