Red Hat Bugzilla – Bug 186071
NFSD fails SETCLIENTID_CONFIRM
Last modified: 2007-11-30 17:07:24 EST
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):
Mount a newer Solaris, AIX or HP server
Steps to Reproduce:
The mount fails
The mount should work
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
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.