On Tue, Jun 16, 2009 at 09:03:37AM +0200, Frank Batschulat (Home) wrote: > On Tue, 16 Jun 2009 08:11:34 +0200, Frank Batschulat (Home) <Frank.Batschulat > at sun.com> wrote: > > On Tue, 16 Jun 2009 07:31:35 +0200, Marcel Telka <Marcel.Telka at sun.com> > > wrote: > > > >> 4) When _PC_FILESIZEBITS is not supported VOP_PATHCONF() will fail and > >> return > >> EINVAL (according to the comments section in the CR), so the codepath will > >> break at line 1574 and your fix won't be used to salvage the situation: > >> > >> 1571 error = VOP_PATHCONF(sarg->cs->vp, _PC_FILESIZEBITS, > >> &val, > >> 1572 sarg->cs->cr, NULL); > >> 1573 if (error) > >> 1574 break; > >> 1575 > >> 1576 /* > >> 1577 * If the underlying file system does not support > >> 1578 * _PC_FILESIZEBITS, return a reasonable default. > >> Note that > >> 1579 * error code on VOP_PATHCONF will be 0, even if the > >> underlying > >> 1580 * file system does not support _PC_FILESIZEBITS. > >> 1581 */ > >> 1582 if (val == -1) { > >> 1583 na->maxfilesize = MAXOFF32_T; > >> 1584 } else { > >> 1585 if (val >= (sizeof (uint64_t) * 8)) > >> 1586 na->maxfilesize = UINT64_MAX; > >> 1587 else > >> 1588 na->maxfilesize = ((1LL << val) - 1); > >> 1589 } > > > > I disagree, you have to distinguish between the fact that _PC_FILESIZEBITS > > is > > not implemented and VOP_PATHCONF() not being implemented or returning an > > error.
You are probably right. I based my comment above on this comment in the CR only: ---------------------------------------------------------------- The NFSv4 server is wants to determine the maximum filesize of the underlying filesystem. It does this with the use of VOP_PATHCONF(_PC_FILESIZEBITS). Unfortunately, the underlying PCFS filesystem doesn't like to talk about that particular pathconf query and unconditionally returns EINVAL. The NFSv4 server dutifully returns this error to the client. The Solaris NFSv4 client likes to ask for the maxfilesize attribute upon mount so the client will be unable to mount this filesystem currently. ---------------------------------------------------------------- I know it is no longer true for pcfs, but I considered it as a general description of possible behavior :-)... -- Marcel Telka Solaris RPE