Thread (7 messages) 7 messages, 5 authors, 2016-08-11

Re: Sleeping function called in invalid context

From: Andreas Dilger <hidden>
Date: 2016-08-11 19:52:38

On Aug 5, 2016, at 8:56 AM, Theodore Ts'o [off-list ref] wrote:

On Fri, Aug 05, 2016 at 09:29:59AM +0300, Nikolay Borisov wrote:
quoted
quoted
The easist way to fix this is defer the ext4_commit_super() to a
workqueue.  We only need this in the errors=continue case, and in that
scenario we're not in a hurry when the superblock gets written out.
Is errors=continue the default option if nothing specifically is
specified at mount time, since I don't have this set explicitly:

/dev/vda / ext4 rw,relatime,data=ordered 0 0
Yes, it's the default.  I keep wondering whether we should change the
default to remount-ro or even panic, since people sometimes don't
notice that the "file system has been corrupted" messages, and then
they can end up losing a lot more detail if we forced them to address
the issue right away.
I'd definitely be in favour of making the default "errors=remount-ro".
We've been setting that explicitly for years, since otherwise people
may not notice their ongoing problems until the filesystem completely
explodes.

Related to that, there is a Lustre patch to handle inconsistencies
between group descriptors and block/inode bitmaps by marking only the
group as unusable for new allocations, instead of marking the whole
filesystem in error.  Is that something that is of interest to a wider
audience?

Patch against RHEL7 is attached, but could be updated for newer kernels
if there is interest.

Cheers, Andreas



Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help