Doncaster Rovers have signed defender Cameron John for an undisclosed fee from Premier League club Wolves.
The 21-year-old spent last season on loan with the League One side, making 21 appearances in all competitions and scoring three goals.
John, who did not appear for Wolves' first team, has agreed a two-year deal with Doncaster.
He is eligible to play in Doncaster's Carabao Cup first-round tie against Blackburn on Saturday.