if (res.res != 0 && res.error == RXKADEXPIRED) { cred_expire (ce); cred_free (ce); return xfs_message_getattr (fd, h, size); }
xfs_message_getattr (int fd, struct xfs_message_getattr *h, u_int size){     struct xfs_message_installattr msg;     VenusFid *fid;     VenusFid real_fid;     AFSFetchStatus status;     Result res;     CredCacheEntry *ce;     AccessEntry *ae;     struct xfs_message_header *h0 = NULL;     size_t h0_len = 0;     fid = (VenusFid *)&h->handle;     ce = cred_get (fid->Cell, h->cred.pag, CRED_ANY);     assert (ce != NULL);     res = cm_getattr (*fid, &status, &real_fid, ce, &ae);     if (res.res == 0) {	 fcacheentry2xfsnode (fid, &real_fid,			      &status, &msg.node, ae);	 	 msg.node.tokens = res.tokens & ~XFS_DATA_MASK;	 msg.header.opcode = XFS_MSG_INSTALLATTR;	 h0 = (struct xfs_message_header *)&msg;	 h0_len = sizeof(msg);     }     if (res.res != 0 && res.error == RXKADEXPIRED) {	 cred_expire (ce);	 cred_free (ce);	 return xfs_message_getattr (fd, h, size);     }     cred_free (ce);     xfs_send_message_wakeup_multiple (fd,				       h->header.sequence_num,				       res.res ? res.error : res.res,				       h0, h0_len,				       NULL, 0);     return 0;}