[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZEs1za7Q0U4bY08w@casper.infradead.org>
Date: Fri, 28 Apr 2023 03:56:13 +0100
From: Matthew Wilcox <willy@...radead.org>
To: Dave Chinner <dchinner@...hat.com>
Cc: Ming Lei <ming.lei@...hat.com>, Theodore Ts'o <tytso@....edu>,
linux-ext4@...r.kernel.org,
Andreas Dilger <adilger.kernel@...ger.ca>,
linux-block@...r.kernel.org,
Andrew Morton <akpm@...ux-foundation.org>,
linux-fsdevel@...r.kernel.org, linux-mm@...ck.org,
Eric Sandeen <sandeen@...hat.com>,
Christoph Hellwig <hch@....de>, Zhang Yi <yi.zhang@...hat.com>
Subject: Re: [ext4 io hang] buffered write io hang in balance_dirty_pages
On Fri, Apr 28, 2023 at 09:33:20AM +1000, Dave Chinner wrote:
> The block device needs to be shutting down the filesystem when it
> has some sort of fatal, unrecoverable error like this (e.g. hot
> unplug). We have the XFS_IOC_GOINGDOWN ioctl for telling the
> filesystem it can't function anymore. This ioctl
> (_IOR('X',125,__u32)) has also been replicated into ext4, f2fs and
> CIFS and it gets exercised heavily by fstests. Hence this isn't XFS
> specific functionality, nor is it untested functionality.
>
> The ioctl should be lifted to the VFS as FS_IOC_SHUTDOWN and a
> super_operations method added to trigger a filesystem shutdown.
> That way the block device removal code could simply call
> sb->s_ops->shutdown(sb, REASON) if it exists rather than
> sync_filesystem(sb) if there's a superblock associated with the
> block device. Then all these
I think this is the wrong approach. Not that I've had any time to
work on my alternative approach:
https://www.infradead.org/~willy/banbury.html
Powered by blists - more mailing lists