Hi! > > Yes, it will. The process freezer can only return success if there are no more > > TASK_UNINTERRUPTIBLE tasks. Otherwise it fails (after a timeout). > > So, this means, on suspend(): > > 1. Don't worry about TASK_UNINTERRUPTIBLE > 2. Do worry about TASK_INTERRUPTIBLE > We have to cease IO and must not call wake_up_interruptible() "cease IO"? No, I believe it is enough not to start new I/O. Userspace is frozen at that point, it can't ask you to do I/O. > Isn't that a race until suspend() is called? I do not think so. > On resume(): > > 1. Don't worry about TASK_UNINTERRUPTIBLE > 2. Do not restart IO that may call wake_up_interruptible() > > When do we restart such IO? We reuse signal handling code to do that for us. It is same situation as when someone signals task doing I/O. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html