Bring a pot of salted water to a boil. Cook linguine until al dente, about 9 minutes, or as package directs. Reserve 1/2 cup of cooking water; drain pasta.
Melt butter in a small pan over medium-low heat. Sprinkle in flour and cook, stirring, until thickened but not browned, about 2 minutes. Whisk in milk and continue to whisk until sauce is thick enough to coat the back of a spoon, about 3 minutes. Season with salt and pepper. Remove from heat.
Warm oil in a large skillet over medium-high heat. Add garlic and cook, stirring, until golden, about 1 minute. Add mushrooms and sauté until they release their liquid and begin to turn golden, about 5 minutes. Add onion, celery and crushed red pepper and cook, stirring, until vegetables are tender, about 5 minutes longer.
Stir sauce and reserved pasta water into vegetable mixture and cook, stirring, until heated through, about 5 minutes. Reduce heat to medium-low, add tuna, breaking it up, and cook until warmed through, about 2 minutes. Season with salt and pepper. Toss linguine with sauce, sprinkle with parsley, if desired, and serve hot.