Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Jan 2002 03:19:01 +0600
From:      Max Khon <fjoe@iclub.nsu.ru>
To:        arch@freebsd.org
Subject:   request for review
Message-ID:  <20020115031901.A99067@iclub.nsu.ru>

next in thread | raw e-mail | index | archive | help

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

hi, there!

please review attached patch. it should fix `diff' when one of the
compared files is a tty (e.g. 'diff -u - /etc/motd').
The problem is that fstat(0, &s) returns s.st_blocksize == 0 in this case
and this breaks `diff'.

I do not know if this is correct fix (should `diff' be fixed instead?)
but under OpenBSD 2.9 and Linux 2.2.x non-zero values are returned.

/fjoe

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="vfs_vnops.c.diff"

? current-diffs
Index: vfs_vnops.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/vfs_vnops.c,v
retrieving revision 1.125
diff -u -p -r1.125 vfs_vnops.c
--- vfs_vnops.c	18 Dec 2001 20:48:54 -0000	1.125
+++ vfs_vnops.c	14 Jan 2002 18:04:45 -0000
@@ -579,6 +579,8 @@ vn_stat(vp, sb, td)
 			sb->st_blksize = vp->v_rdev->si_bsize_phys;
 		if (sb->st_blksize < BLKDEV_IOSIZE)
 			sb->st_blksize = BLKDEV_IOSIZE;
+	} else if (vap->va_type == VCHR) {
+		sb->st_blksize = vap->va_blocksize;
 	} else {
 		sb->st_blksize = 0;
 	}

--qDbXVdCdHGoSgWSk--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020115031901.A99067>