From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Andrew Patterson <andrew.patterson@hp.com>
Cc: Christoph Hellwig <hch@infradead.org>,
linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
viro@zeniv.linux.org.uk, axboe@kernel.dk,
andmike@linux.vnet.ibm.com
Subject: Re: [PATCH 1/2] Added flush_disk to factor out common buffer cache flushing code.
Date: Wed, 07 May 2008 13:21:48 -0500 [thread overview]
Message-ID: <1210184508.3067.21.camel@localhost.localdomain> (raw)
In-Reply-To: <1210183716.20337.34.camel@grinch>
On Wed, 2008-05-07 at 18:08 +0000, Andrew Patterson wrote:
> On Wed, 2008-05-07 at 12:59 -0500, James Bottomley wrote:
> > On Tue, 2008-05-06 at 04:44 -0400, Christoph Hellwig wrote:
> > > On Mon, May 05, 2008 at 05:04:19PM -0600, Andrew Patterson wrote:
> > > > Added flush_disk to factor out common buffer cache flushing code.
> > > >
> > > > We need to be able to flush the buffer cache for more than just when a
> > > > disk is changed, so we factor out common cache flush code in
> > > > check_disk_change() to an internal flush_disk() routine. This routine
> > > > will then be used for both disk changes and disk resizes (in a later
> > > > patch).
> > > >
> > > > Include the disk name in the text indicating that there are busy
> > > > inodes on the device and increase the KERN severity of the message.
> > >
> > > This doesn't make much sense to me. When a disk has grown there's no
> > > point in invalidating any buffers, and when it has shrunk it's too late
> > > already. Also I suspect modern filesystems might be really allergic to
> > > this kind of under the hood actions. That is if they use the bdev
> > > mapping at all, something that at least xfs and I think btrfs aswell
> > > don't do at all.
> >
> > I agree on the grown disc case. For the shrunk disk, we need at least
> > to invalidate the sectors that no-longer physically exist.
> >
> > The two use cases for shrinking I can see are
> >
> > 1. planned: the fs is already shrunk to within the new boundaries
> > and all data is relocated, so invalidate is fine (any dirty
> > buffers that might exist in the shrunk region are there only
> > because they were relocated but not yet written to their
> > original location).
>
> So why do we need to invalidate here if everything is fine?
We need rid of stray pages. Obviously dirty ones that would cause write
errors at some point need to be killed. The danger ones are read only
ones that can hang around for a long time. The (perhaps unlikely)
scenario where they bite is if the disk is shrunk then expanded it's one
of those annoying scenarios that most people don't care about: expanded
space is empty, what does it matter if we get stray data; and security
people jump up and down and scream about data leaking.
> > 2. unplanned: In this case, the fs is probably toast, so whether
> > we invalidate or not isn't going to make a whole lot of
> > difference; it's still going to try to read or write from
> > sectors beyond the new size and get I/O errors.
> >
>
> Invalidating here might be useful in that errors are reported earlier.
Yes ... force the filesystem to have errors immediately before it sees
them on writeback or read ahead or something delayed.
> > Unfortunately, we don't seem to have a partial invalidation function for
> > the page cache and filesystem, so should we have one?
> >
>
> I have been having problems with my email, hence the missing 2 patches.
> I'll resend the whole series and add flush_disk() call in
> revalidate_disk() as separate patch, so that the flush code can be
> optionally applied.
James
next prev parent reply other threads:[~2008-05-07 18:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-05 23:04 [PATCH 0/4] detect online disk resize Andrew Patterson
2008-05-05 23:04 ` [PATCH 1/2] Added flush_disk to factor out common buffer cache flushing code Andrew Patterson
2008-05-06 8:44 ` Christoph Hellwig
2008-05-07 17:59 ` James Bottomley
2008-05-07 18:08 ` Andrew Patterson
2008-05-07 18:21 ` James Bottomley [this message]
2008-05-05 23:04 ` [PATCH 2/2] Wrapper for lower-level revalidate_disk routines Andrew Patterson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1210184508.3067.21.camel@localhost.localdomain \
--to=james.bottomley@hansenpartnership.com \
--cc=andmike@linux.vnet.ibm.com \
--cc=andrew.patterson@hp.com \
--cc=axboe@kernel.dk \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox