Faits: A. Le 18 mai 2009, X._ SA a ouvert action contre A._, B._, C._ et D._ devant le Tribunal de première instance du canton de Genève. Les défendeurs devaient être condamnés à payer solidairement 2'800'000 fr. avec intérêts au taux de 5% par an dès le 18 août 2004. La demanderesse les tenait pour responsables de la perte subie par elle dans la faillite d'une société, à raison de leur qualité d'organes de cette société. B._, C._ et D._ ont requis la suspension de la cause jusqu'à droit connu sur une plainte pénale introduite par la demanderesse. Le tribunal a rejeté cette requête le 5 novembre 2009; il a toutefois ordonné l'apport de la procédure pénale. Le 17 novembre 2009, la demanderesse a passé une convention avec A._ et son épouse: elle abandonnait ses prétentions contre lui; en contrepartie, l'épouse lui cédait le produit de la vente d'un immeuble dont elle était propriétaire. En conséquence, la demanderesse s'est désistée de l'action intentée à A._; le tribunal lui en a donné acte le même jour. B._, C._ et D._ ont fait valoir que la convention leur profitait à eux également; ils ont requis le tribunal d'ordonner à la demanderesse de produire ce document car elle refusait de le leur communiquer à l'amiable. La cause fut ajournée à l'audience du 21 janvier 2010 pour plaider sur incident. Dans l'intervalle, les défendeurs ont pu prendre connaissance de la convention par la procédure pénale. A l'audience du 21 janvier, tous trois se sont prévalus de la convention pour conclure, en substance, au rejet de l'action. A titre subsidiaire, B._ et C._ ont demandé la suspension de la cause jusqu'à la vente de l'immeuble, afin que le produit de la vente fût déduit de la réparation dont ils étaient éventuellement débiteurs; D._ a demandé que le produit à attendre de la vente fût déterminé par expertise. Par jugement du 18 février 2010, le tribunal a rejeté les « incidents en constatation de l'effet libératoire de la convention » et refusé la suspension de la cause. B. Le 17 mars 2010, les trois défendeurs ont demandé l'autorisation d'appeler A._ en cause et ils ont sollicité un délai à cette fin. La demanderesse s'y est opposée, soutenant que l'appel en cause était tardif et dilatoire. Le tribunal s'est prononcé le 9 juin 2010; selon son jugement, les appels en cause de chaque défendeur, à introduire contre A._, sont irrecevables. B._ ayant appelé de ce jugement, la Cour de justice a statué le 23 septembre 2011: elle a rejeté l'appel. C. Agissant par la voie du recours en matière civile, B._ requiert le Tribunal fédéral d'annuler l'arrêt de la Cour de justice, de constater la recevabilité de l'appel en cause et de renvoyer l'affaire à la juridiction cantonale pour qu'elle accorde le délai nécessaire aux défendeurs. Subsidiairement, le recourant demande l'annulation de l'arrêt et le renvoi de la cause à la Cour de justice pour nouvelle décision. Les autres parties ont été invitées à répondre. La demanderesse a conclu au rejet du recours; C._ et D._ n'ont pas procédé. 