linux_statfs64() missing an argument??

From: David Taylor <davidt_at_yadt.co.uk>
Date: Sun, 8 Apr 2007 20:10:13 +0100
I've recently been trying to compile gentoo under FreeBSD
(in order, eventually, to compile OpenWRT), and ran in to a rather
confusing problem when trying to diagnose the reason "coreutils"
failed to build properly.

Eventually I tracked down the problem:

glibc calls the statfs64 syscall with (path, sizeof(struct statfs64), buf)

The linux_statfs64 emulated syscall in FreeBSD expects only (path, buf),
and returns EFAULT every time, as buf is always 0x54.

The attached patch adds the missing argument, and ensures it matches
sizeof(struct l_statfs64), returning EINVAL otherwise (is that the right
error).

I'm currently recompiling my kernel to test this, but thought I'd see
if anyone had any comments on the patch as is, since I've probably done
something wrong, as I'm not too sure how the whole syscalls.master setup
works.

-- 
David Taylor

Received on Sun Apr 08 2007 - 17:38:21 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:08 UTC