Faits: Faits: A. B._, né en 1948, a travaillé en qualité de maçon au service de divers employeurs jusqu'au 9 octobre 1997, date à laquelle il a cessé son activité en raison d'une atteinte à la santé. Le 20 novembre 1998, il a présenté une demande tendant à l'octroi d'une mesure d'orientation professionnelle et d'une rente de l'assurance-invalidité. L'Office cantonal de l'assurance-invalidité du canton de Genève a requis divers avis médicaux. En particulier, le docteur K._, médecin traitant de l'assuré, a fait état d'une claudication neurogène importante sur un canal lombaire étroit entre L3 à L5. Cette affection avait nécessité une opération consistant en une laminectomie L3-L4-L5 réalisée le 16 janvier 1998 par le docteur R._. Malgré de bons résultats post-opératoires, il subsistait des douleurs et un engourdissement à la cuisse et au genou droits, ce qui avait empêché la reprise du travail à mi-temps au mois de mai 1998 (rapport du docteur K._ du 11 janvier 1999). De son côté, le docteur R._ a constaté cliniquement des signes de douleurs dans la région antérieure du genou droit et préconisé un complément d'investigation sur ce point (rapports des 6 mars et 6 juin 2000). Dans un rapport médical intermédiaire du 26 avril 2002, le docteur K._ a indiqué que l'état de santé de l'assuré était stationnaire mais que celui-ci avait repris le travail à 50 % le 1er novembre 2001. Invité à se prononcer sur l'ensemble du dossier médical, le docteur C._, médecin de l'office AI, a indiqué que l'assuré n'était plus en mesure d'exercer son activité de maçon. L'atteinte à la santé, qui relevait moins de l'affection lombaire que de douleurs au genou droit, n'empêchait toutefois pas la reprise d'une activité sédentaire. Aussi, l'office AI a-t-il confié un stage d'observation professionnelle au Centre d'observation professionnelle de l'assurance-invalidité (COPAI). Ce stage a eu lieu du 28 mai au 23 septembre 2001 au Centre d'observation professionnelle (CIP), à Genève. Se fondant sur les conclusions du rapport de stage qui faisaient état d'une capacité entière de travail dans une activité d'ouvrier dans l'industrie légère ou de polisseur, l'office a rendu une décision, le 29 mai 2002, par laquelle il a rejeté la demande de prestations, motif pris que le taux d'invalidité constaté (19 %) était insuffisant. Se fondant sur les conclusions du rapport de stage qui faisaient état d'une capacité entière de travail dans une activité d'ouvrier dans l'industrie légère ou de polisseur, l'office a rendu une décision, le 29 mai 2002, par laquelle il a rejeté la demande de prestations, motif pris que le taux d'invalidité constaté (19 %) était insuffisant. B. B._ a recouru contre cette décision devant la Commission cantonale de recours en matière d'AVS/AI du canton de Genève, en concluant à l'octroi d'une rente d'invalidité de 50 % au moins. A l'appui de son recours, il a produit des rapports des docteurs J._, spécialiste en médecine interne et rhumatologie (du 1er juillet 2002), et P._ et A._, médecins à la division de rhumatologie de l'Hôpital X._ (du 18 septembre 2002). Par jugement du 9 juillet 2004, le Tribunal cantonal des assurances sociales du canton de Genève, à qui la cause avait été transmise, a annulé la décision attaquée et alloué à l'assuré un quart de rente à partir du 1er octobre 1998. Par jugement du 9 juillet 2004, le Tribunal cantonal des assurances sociales du canton de Genève, à qui la cause avait été transmise, a annulé la décision attaquée et alloué à l'assuré un quart de rente à partir du 1er octobre 1998. C. B._ interjette recours de droit administratif contre ce jugement, dont il demande l'annulation, en concluant à l'octroi d'une demi-rente d'invalidité, subsidiairement à la mise en oeuvre d'un complément d'instruction sous la forme d'une expertise médicale. De son côté, l'office AI interjette également un recours de droit administratif, en concluant à l'annulation du jugement cantonal et à la confirmation de sa décision du 29 mai 2002. B._ conclut à l'irrecevabilité, subsidiairement au rejet du recours de l'office AI. Celui-ci conclut au rejet du recours du prénommé. L'Office fédéral des assurances sociales a renoncé à présenter des déterminations sur les recours.