[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-fsdevel
Subject:    Re: read_super()
From:       Andrew Morton <andrewm () uow ! edu ! au>
Date:       2001-05-11 17:49:18
[Download RAW message or body]

Bryan Henderson wrote:
> 
> >all ->read_super() should do is read the superblock!
> 
> You're taking it kind of literally, aren't you?  These days, superblock is
> a metaphor.  Lots of filesystems don't have real superblocks.  I think if
> we were naming ->read_super() today, we'd name it ->mount().

Well, today I'd call it lock_up_machine(), but that's another story :)

> ...
> 
> >This deadlocks ext3, which wants to call ext3_truncate()
> >inside ext3_read_super().
> 
> This is the part I don't get.  Does ext3_truncate() acquire the superblock
> lock?  If so, that would seem to be the problem -- it's a layering
> violation.

Yes.  ext2 (and hence ext3) use lock_super() to provide locking
around their manipulation of the fs-private allocation bitmaps.
As far as I can tell there's no need to do this and an fs-private
semaphore would do the job just as well, and would avoid these
deadlocks.

Andreas? Al? Stephen? Can anyone see a reason for overloading
lock_super() in this manner?
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic