Last week, the tub drain totally stopped functioning. In hopes of avoiding all the agony of tearing into walls, I bailed out the tub, disconnected the drain between the tub and the trap--I could get to that part of the plumbing--and attempted to snake out the trap from the bottom. I did manage to get out a few good clumps of old, smelly, yecky hair. The drain then functioned slowely for a few gallons, but then it stopped again.
In a desparate move, and thoroughly frustrated by now, I dumped a bit over a gallon (two 2.5 quart bottles) of Liquid Plumber into the tub. To my absolute and utter amazement, that worked. The tub drains freely now. I've never in my life had liquid drain cleaner actually work for me. And previous to this I'd dumped an acid-based cleaner down the drain to no-effect, so having Liquid Plumber (which is a base) work was a bit of a shock, but a pleasent shock to be sure.
I relate this story as a way of suggesting that you at least try a liquid drain cleaner first. (Maybe you've done that already) It may not work, but it doesn't cost much, and maybe you'll get lucky like I did.
Oh, and I learned the hard way to wear rubber gloves when you snake a drain. I still have a bit of black gunk under my fingernails. It took a couple days to get my hands clean after that messy work.