On Tue, 2007-01-09 at 15:49 +1100, David Chinner wrote:
On Tue, Jan 09, 2007 at 03:17:03PM +1100, Nathan Scott wrote:
quoted
On Mon, 2007-01-08 at 19:51 -0800, Andrew Morton wrote:
quoted
If that's not true, then what _is_ happening in there?
This particular case was a device mapper stack trace, hence the
confusion, I think. Both XFS and DM are making the same generic
block layer call here though (freeze_bdev).
Yup. it's the freeze_bdev/thaw_bdev use of the bd_mount_mutex()
that's the problem. I fail to see _why_ we need to hold a lock
across the freeze/thaw - the only reason i can think of is to
hold out new calls to sget() (via get_sb_bdev()) while the
filesystem is frozen though I'm not sure why you'd need to
do that. Can someone explain why we are holding the lock from
freeze to thaw?
Not me. If it's really not needed, then...
quoted
quoted
If that _is_ true then, well, that sucks a bit.
Indeed, its a fairly ordinary interface, but thats too late to go
fix now I guess (since its exposed to userspace already).
Userspace knows nothing about that lock, so we can change that without
changing the the userspace API.
...that would be true, AFAICS.
cheers.
--
Nathan