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>