Created attachment 126400 [details] Patch 1 of 2 that fixes the problem
Description of problem: nfsd_setuser() sets both the rqstp->cred and the current tasks uid, gid, and groups according to an exports squash rules (all_squash, root_squash). nfsd_setuser() is called in fh_verify() to correctly set the current's threads access to an export's directories and files. setting the rqstp->cred is problematic for SETCLIENTID which is required to store the principal used for it's call, and whcih has client-wide scope, not export wide scope. under the current scheme, the rqstp->cred could be set by nfsd_setuser or not, depending on the other previous NFSv4 operatios in the SETCLIENTID compound. in order to pass confirmation of a clientid, SETCLIENTID_CONFIRM compares the rqstp->cred with the credentials stored by SETCLIENTID. again, setting the rqstp->cred with nfsd_user() is probelmatic. Version-Release number of selected component (if applicable): How reproducible: Mount a newer Solaris, AIX or HP server Steps to Reproduce: 1. 2. 3. Actual results: The mount fails Expected results: The mount should work Additional info: This was found at this year's Connectathon
Created attachment 126401 [details] Patch 2 of 2 that fixes the problem
committed in stream U4 build 34.24. A test kernel with this patch is available from http://people.redhat.com/~jbaron/rhel4/
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2006-0575.html