On Fri, Apr 02, 2010 at 11:53:09AM -0700, Artem Belevich wrote:
> Hi,
> 
> I've ran into a problem on 8-stable/amd64 today. Basically any attempt
> to pass 2GB chunk  of data to write(2) returns EINVAL. It looks like
> we're limiting amount of data to be written to INT_MAX which looks
> rather restrictive on LP64 platforms. NetBSD/OpenBSD do use SSIZE_MAX
> which does seem to be the limit specified by POSIX, if I'm looking at
> the correct specification here
> http://www.opengroup.org/onlinepubs/000095399/functions/write.html
> 
> A bit of googling shows that this issue was also recently mentioned on
> svn-src-all:
> http://www.mail-archive.com/svn-src-...@freebsd.org/msg18266.html
> 
> Was the INT_MAX limit in FreeBSD imposed intentionally, even on 64-bit
> platforms or is it a bug that needs fixing?

I did some preliminary work for this, changing the type of uio_resid
member of struct uio in stable/8 and HEAD to ssize_t. I have half-finished
patch that takes this to completion, allowing SSIZE_MAX maximal i/o.

No ETA when it will be done.

Attachment: pgpwWyO3ucHNS.pgp
Description: PGP signature

Reply via email to