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