Haywire

Former Marine Mallory Kane (Gina Carano) goes to a diner in Upstate New York to meet Aaron (Channing Tatum). He tells her to get in his car, but she refuses and they fight. He pulls out a gun, but she disarms and pistol-whips him. Scott (Michael Angarano), a customer in the diner, intervenes and Mallory demands his car keys and that he get in the car. As they flee, she explains who she is and what has happened to her. The flashback sequences are intermixed with scenes of their flight.
Mallory tells Scott that she and Aaron work for a company that handles "operations". One week before, the firm's director (and Mallory's ex-boyfriend) Kenneth (Ewan McGregor) had attended a meeting in Washington, D.C. arranged by government agent Coblenz (Michael Douglas). Kenneth's firm was hired to rescue Jiang (Anthony Brandon Wong), who was allegedly being held hostage in an apartment in Barcelona. Also present at the meeting was Coblenz's Spanish contact, Rodrigo (Antonio Banderas).
Mallory and her team, which includes Aaron, travel to Barcelona and, despite difficulties, succeed in rescuing Jiang and delivering him to Rodrigo.
Back in the United States, Mallory is approached by Kenneth, who insists she undertake what he describes as an easy assignment: to pose as the wife of British MI6 agent Paul (Michael Fassbender) during a mission in Dublin. Mallory agrees and accompanies Paul to a party at Russborough House, where they meet with his contact, Studer (Mathieu Kassovitz). Paul meets with Studer again as Mallory watches from afar. She sees Paul go into a barn and after he leaves, she enters it to find Jiang dead, clutching in his hand a brooch which Kenneth had insisted she wear as a recognition signal for her initial contact with Paul. Mallory realizes she has been set up.
On returning to their room at the Shelbourne Hotel, Paul attacks Mallory and they have a brutal fight; Mallory gets the upper hand and suffocates him near to death with a choke hold, then shoots him point blank in the face. She finds a missed call on Paul's phone and returns it. Kenneth answers and asks if Mallory has been taken care of, before realising who is on the other end. As Mallory leaves the hotel, she evades Kenneth's agents, who are tailing her. Heavily armed members of the Garda Emergency Response Unit (ERU) appear and try to arrest her. She escapes after a chase and sneaks onto a ferry to England.
Mallory calls Rodrigo and asks him whether it was he or Kenneth who set her up. Rodrigo calls Coblenz, who then calls Mallory. Coblenz tells Mallory that he has had suspicions about Kenneth for some time. Coblenz then contacts Kenneth and tells him to inform Mallory's father, John Kane (Bill Paxton), of her purported crimes.
Meanwhile, Mallory enters the United States and reaches the diner, expecting to meet Kenneth. Now on the road, Scott and Mallory are captured by the police. Both are taken into custody but the police are ambushed by Kenneth's men. Mallory manages to kill one of them and flees with Scott in one of the police cars. She releases Scott and leaves to meet with her father.
Mallory reaches her father's house in New Mexico before Kenneth, Aaron and two other men arrive to interrogate John about his daughter's whereabouts. Aaron receives a photograph on his phone of Jiang lying dead, and it dawns on him that Mallory might have been set up. He tries to press Kenneth for the truth, but Kenneth shoots him and escapes, as Mallory takes out Kenneth's other men. Aaron apologizes to Mallory as he dies in her arms.
The following day, Mallory meets with Coblenz, who reveals that he told Kenneth to contact Mallory's father, expecting that Kenneth would go to her father's house and that she would kill him there. Coblenz also gives her Kenneth's present location. Before they part, he offers her a government job, but she says she will respond after she has found Kenneth.
In Mexico, Mallory confronts Kenneth on a beach and they fight. Kenneth's foot becomes jammed between rocks. Unable to escape, he reveals that Jiang was a journalist who was being protected in a safe house after having exposed Studer's crimes. Knowing that Mallory planned to leave his firm, Kenneth arranged for her to kidnap Jiang and deliver him to Rodrigo, who delivered him to Studer, who killed him. Kenneth then framed Mallory, planning to cut all ties that could lead to him, and convinced Paul that Mallory was a double agent whom he should kill. Mallory leaves Kenneth to drown in the incoming tide.
A few days later, Mallory locates Rodrigo, who is on vacation in Majorca. The film ends as she confronts him, presumably intending to eliminate him as the last remaining link in the conspiracy against her.

Question: Where was Jiang being held?
Answer: Barcelona