[dm-devel] 2.6.3-udm5

Christophe Saout christophe at saout.de
Mon Mar 1 10:33:03 UTC 2004


Am Mo, den 01.03.2004 schrieb Kevin Corry um 15:55:

> > I've got a question: Is it stupid to move the __unlock_fs from dm_resume
> > to the end of dm_suspend? My webserver loves to deadlock when trying to
> > snapshot the root volume without it... unfortunately I don't have direct
> > access to the machine so I can't find out what exactly happens (it
> > happened twice and I'm not to excited trying it too often because the
> > watchdog reboots the machine hard after some minutes).
> >
> > Trying to avoid having a filesystem locked between two syscalls is
> > probably not a too bad idea. If the filesystem is unlocked after
> > BLOCK_IO is set the filesystem will be in a clean state and new requests
> > will be deferred and submitted to the new table after resume anyway.
> > This doesn't make a difference with the suspend syscall but seems to do
> > with.
> 
> I'd say it really depends on if the filesystems' unlockfs calls can block 
> waiting for I/O to complete. If they can, I'd think it would be invalid to 
> call unlockfs while the device is suspended. If we can ensure that the 
> filesystem will *never* block during that call, your suggestion might work. 
> Of course, I don't know enough about the various filesystems to answer that 
> question.

Damn. You're right. This only works for reiserfs, ext3 locks up.

This makes SUSPEND even more dangerous. I know it was dangerous but now
it's nearly unusable. I have no idea why it locks up on the other
machine.

But I don't like the idea of getting the mount semaphore (lock_fs) in
one syscall and releasing it in another. This feels wrong. And waiting
for buffers when unlocking doesn't seem good either. Hmm.





More information about the dm-devel mailing list