[comp.os.minix] Patches for mknod

cechew@bruce.cs.monash.OZ.AU (Earl Chew) (07/25/90)

This patch fixes mknod and mknod4 in the Minix library. The problems are:

o mknod()
	Requires an extra (surprising) argument for block specials which
	specifies the size of the device. This causes headaches when porting
	programs (and even for Minix specific ones!) because the extra argument
	is left off causing funny errors --- and even system crashes.

	This version of mknod() accepts the more usual three arguments and
	(silently) forces the size to be zero.

o mknod4()
	This is the original four argument mknod() suitably renamed.

o cpdir.c
	Copied block and character specials but didn't copy the size
	information! Compile with _MINIX and _POSIX_SOURCE.

o tar.c
	What a mess! I hope it gets cleaned up during Posixfication. Anyway,
	I've hacked it to record the size information for block and character
	specials and to resurrect the sizes too. This behaviour appears to be
	Posix conformant. Compile with _MINIX and _POSIX_SOURCE.

o mknod.c
	Changed to use mknod4(). Compile with _MINIX and _POSIX_SOURCE.

o fs/open.c
	Check the size of the block special. Those running Bruce Evans' 386
	patches will notice that test8 will now fail gracefully. I think test8
	might even work if you recompile with the more robust mknod() included
	in this set of patches.

Bruce has already fiddled unistd.h to have mknod and mknod4 prototypes. There
was some discussion in comp.std.c that extras such as these should go in
another header file rather than overloading existing ones.

Earl

-------------------------------------------------------------------------------
begin 600 mknod.shar.Z
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
L'A=14U<L87(AM;9AN;X24Z,3??A=2*)`;"LR%RS""!IA.'@$D.`J[L)2@!+6
`
end
-------------------------------------------------------------------------------
-- 
Earl Chew, Dept of Computer Science, Monash University, Australia 3168
ARPA: cechew%bruce.cs.monash.oz.au@uunet.uu.net  ACS : cechew@bruce.oz
----------------------------------------------------------------------