McGlynn, 28, was due to come out of contract at the end of this season, but AFL.com.au understands his career at the Swans will now stretch to at least seven seasons.
The former rookie has played 81 games and kicked 113 goals for the Swans since crossing from Hawthorn in a trade at the end of 2009.
He was a key member of the Swans' team in their 2012 premiership year, but missed the Grand Final after straining a hamstring in the qualifying final win against Adelaide.
McGlynn played 44 games in four seasons at Hawthorn.
Twitter: @AFL_Nick