Hi! > > > > To get more serious and practical though, I think the solution is to > > > > fuzz the userspace/kernelspace distinction. What we really want to > > > > do is freeze things that submit I/O, then sync, then freeze anything > > > > that processes I/O and needs to be frozen. In effect, redefine fuse > > > > processes as freezeable kernel threads. > > > > > > Another myth, that has been debunked already. The problem is: how do > > > you define fuse processes? There's no theoretical or even practial > > > way to do that. > > > > No theoretical or practical way?! I'll freely admit to being quite ignorant > > about fuse, but surely there's some way by which they can be distinguished. > > How? OK, there are some tasks, that read and/or write /dev/fuse. And > there are some that just communicate in some way with the above.
(Not that I'm advocating this, but:) You could ask fused to identify tasks involved in fuse handling. "Hey, fused, please give me list of PIDs". Yes, that would be beyond ugly. (I guess I'm advocating this:) We probably can do variation on this. Notify fuse early that suspend is comming, so we can wait for all the fused requests to be flushed (/fusectl/*/waiting going to 0), and then just trap tasks trying to communicate with fuse in a sane place (i.e. not a place where VFS locks are held). ...I'm not saying this is a nice solution, but it should work... right...? And should work for hibernation, too...? (at this point, we still have problem 1: something in s2ram path causes fuse to communicate with its frozen fused. It is not sync, so what is it?) Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/