On Thu 08-11-12 16:22:56, Dave Chinner wrote: > On Wed, Nov 07, 2012 at 11:31:39PM +0100, Jan Kara wrote: > > When BSD process accounting is enabled and logs information to a filesystem > > which gets frozen, system easily becomes unusable because each attempt to > > account process information blocks. Thus e.g. every task gets blocked in exit. > > > > It seems better to drop accounting information (which can already happen when > > filesystem is running out of space) instead of locking system up. This is > > implemented using a special flag FMODE_NO_FREEZE_WAIT in file->f_mode of a > > file to which accounting information is written. > > I have no problems with making freeze waiting non-blocking, by why > invent a new flag for what is essentially an O_NONBLOCK operation? > > Indeed, if someone opens a file O_NONBLOCK, shouldn't if behave > exactly the same on a frozen filesystem as this special > FMODE_NO_FREEZE_WAIT flag? Originally I didn't want to cause user visible effects for other files with the fix. But you are right that O_NONBLOCK means exactly what we need and userspace could actually expect something like this to work. I'm somewhat worried about broken applications which don't expect EAGAIN from O_NONBLOCK write to a file (as traditionally O_NONBLOCK was no-op for buffered file writes) but I guess it's worth a try. Thanks for idea, I'll send an updated patch shortly. > FWIW, nfsd could use this as well so that it doesn't block all the > nfsd threads trying to write to a frozen filesystem but instead > returns EJUKEBOX to the client to tell it ot wait for a while before > trying the operation again... Yes, that would be another possible use of O_NONBLOCK. Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html