Re: [PATCH] fix writing to the filesystem after unmount

From: Mikulas Patocka
Date: Thu Sep 07 2023 - 11:26:28 EST




On Thu, 7 Sep 2023, Christian Brauner wrote:

> > I think we've got too deep down into "how to fix things" but I'm not 100%
>
> We did.
>
> > sure what the "bug" actually is. In the initial posting Mikulas writes "the
> > kernel writes to the filesystem after unmount successfully returned" - is
> > that really such a big issue?

I think it's an issue if the administrator writes a script that unmounts a
filesystem and then copies the underyling block device somewhere. Or a
script that unmounts a filesystem and runs fsck afterwards. Or a script
that unmounts a filesystem and runs mkfs on the same block device.

> > Anybody else can open the device and write to it as well. Or even
> > mount the device again. So userspace that relies on this is kind of
> > flaky anyway (and always has been).

It's admin's responsibility to make sure that the filesystem is not
mounted multiple times when he touches the underlying block device after
unmount.

> Yeah, agreed.
>
> > namespaces etc. I'm not sure such behavior brings much value...
>
> It would in any case mean complicating our code for little gain imho.
> And as I showed in my initial reply the current patch would hang on any
> bind-mount unmount. IOW, any container. And Al correctly points out
> issues with exit(), close() and friends on top of that.
>
> But I also hate the idea of waiting on the last umount because that can
> also lead to new unexpected behavior when e.g., the system is shutdown
> and systemd goes on to unmount all things and then suddenly just hangs
> when before it was able to make progress.

Would you agree to waiting on the last umount only if the freeze was
initiated by lvm? (there would be no hang in this case because lvm thaws
the block device in a timely manner)

Mikulas