Hi Piyush, On Wed, Jun 17, 2009 at 01:19:11PM -0500, Piyush Shivam wrote: > Hi Marcel, >> The code for NFSv4 is doing this: >> >> VOP_PATHCONF(vp, _PC_FILESIZEBITS, &pc_val, cr); >> pce->maxfilesize = ((1LL << pc_val) - 1); >> >> >> The NFSv3 code is doing this: >> >> >> VOP_PATHCONF(vp, _PC_FILESIZEBITS, &l, cr, NULL); >> resp->resok.maxfilesize = (1LL << (l-1)) - 1; >> >> >> Do you see the difference? For NFSv3 case we return only (approx.) half >> value of >> max file size. >> > Yes, I saw that a while back, and am trying to understand if that is a > new bug or intentionally done by the person who wrote this originally. > Investigating the above difference is what I meant by "taking a closer > look".
Ok. Great. >> >> Another problem I see above with NFSv4 implementation is number of parameters >> in VOP_PATHCONF() macro/call. There are only 4 instead of 5 as in NFSv3 >> implementation and in >> VOP_PATHCONF() definition too: >> http://grok.czech.sun.com:8080/source/xref/onnv-clone/usr/src/uts/common/sys/vnode.h#1066 >> >> How it would even compile without a warning? >> > > Not sure if I understand. I am seeing 5 parameters to the VOP_PATHCONF > issued in rfs4_fattr4_maxfilesize as well as rfs4_get_pc_encode. Maybe > you are looking at different source code base? I am working off the ON > codebase. True. My fault. Sorry. Copy'n'paste error at my side. -- Marcel Telka Solaris RPE