usr/src/uts/common/fs/nfs/nfs4_srv_ns.c
changeset 806 849fb015aa25
parent 0 68f95e015346
child 1610 3436e82414c8
equal deleted inserted replaced
805:3946c495718a 806:849fb015aa25
    56 
    56 
    57 	/*
    57 	/*
    58 	 * XXX nfs4_fid() does nothing and returns EREMOTE.
    58 	 * XXX nfs4_fid() does nothing and returns EREMOTE.
    59 	 * XXX nfs3_fid()/nfs_fid() returns nfs filehandle as its fid
    59 	 * XXX nfs3_fid()/nfs_fid() returns nfs filehandle as its fid
    60 	 * which has a bigger length than local fid.
    60 	 * which has a bigger length than local fid.
    61 	 * NFS_FHMAXDATA is the size of fhandle_t.fh_xdata[NFS_FHMAXDATA].
    61 	 * NFS_FHMAXDATA_EXT is the size of
    62 	 */
    62 	 * fhandle_ext_t.fh_xdata[NFS_FHMAXDATA_EXT].
    63 	if (error == EREMOTE || (error == 0 && fidp->fid_len > NFS_FHMAXDATA)) {
    63 	 *
       
    64 	 * Note: nfs[2,3,4]_fid() only gets called for diskless clients.
       
    65 	 */
       
    66 	if (error == EREMOTE ||
       
    67 	    (error == 0 && fidp->fid_len > NFS_FHMAXDATA_EXT)) {
    64 
    68 
    65 		va.va_mask = AT_NODEID;
    69 		va.va_mask = AT_NODEID;
    66 		error = VOP_GETATTR(vp, &va, 0, CRED());
    70 		error = VOP_GETATTR(vp, &va, 0, CRED());
    67 		if (error)
    71 		if (error)
    68 			return (error);
    72 			return (error);