Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Nov 2015 02:59:02 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-fs@FreeBSD.org
Subject:   [Bug 18874] [2TB] 32bit NFS servers export wrong negative values to 64bit clients
Message-ID:  <bug-18874-3630-nuXxN4RdFQ@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-18874-3630@https.bugs.freebsd.org/bugzilla/>
References:  <bug-18874-3630@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=18874

--- Comment #24 from Rick Macklem <rmacklem@FreeBSD.org> ---
The NFSv3 and NFSv4 RFCs specify the field as 64bit unsigned on
the wire. To "cheat" and put a negative value in it will break
non-BSD clients like Solaris.

The new/current FreeBSD server checks for a negative value for f_bavail
and puts 0 on the wire if it is negative.
The new/current FreeBSD client divides the unsigned 64bit value off the
wire by NFS_FABLKSIZE before assigning it to the 64bit signed f_bavail,
so it can never be negative (because the unsigned value fits in 63bits
after the divide).

I think this can be closed, rick

-- 
You are receiving this mail because:
You are the assignee for the bug.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-18874-3630-nuXxN4RdFQ>