[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201120033600.GA695373@mit.edu>
Date: Thu, 19 Nov 2020 22:36:00 -0500
From: "Theodore Y. Ts'o" <tytso@....edu>
To: Jan Kara <jack@...e.cz>
Cc: yebin <yebin10@...wei.com>, jack@...e.com,
linux-ext4@...r.kernel.org
Subject: Re: [PATCH 0/2] Fix race between do_invalidatepage and
init_page_buffers
On Tue, Aug 25, 2020 at 10:41:37AM +0200, Jan Kara wrote:
> On Tue 25-08-20 10:11:29, yebin wrote:
> > Your patch certainly can fix the problem with my testcases, but I don't
> > think it's a good way. There are other paths that can call
> > do_invalidatepage , for instance block ioctl to discard and zero_range.
>
> OK, good point! So my patch is a cleanup that stands on its own and we
> should do it regardless. But I agree we need more to completely fix this.
> I don't quite like the callback you've added just for this special case
> (furthermore it grows size of every buffer_head and there can be lots of
> those). But I agree with the general idea that we shouldn't discard buffers
> that the filesystem is working with.
>
> In fact I believe that fallocate(2) and zeroout/discard ioctls should
> return EBUSY if they are run against a mounted device because with 99%
> probability something went wrong and you're accidentally discarding the
> wrong device. But maybe I'm wrong. I'll run this idea through other fs
> developers.
I'm going through old patches, and I'm trying to figure out where did
we end up on this issue? Did we come to a conclusion on this?
One other thing which I noticed when looking at the original patch was
shouldn't lvreduce not be allowed to run on a LV which has a mounted
file system on its block device?
- Ted
Powered by blists - more mailing lists