linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Peng Tao <bergwolf@primarydata.com>
Cc: Christoph Hellwig <hch@lst.de>,
	Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH 3/9] pnfs: add return_range method
Date: Sat, 13 Sep 2014 21:38:54 +0200	[thread overview]
Message-ID: <20140913193854.GA31909@lst.de> (raw)
In-Reply-To: <CAKVebiX9S1zHVxNNnBguD8BKqyJJVOm3n+XJUhAxcM+8FD5dgg@mail.gmail.com>

On Fri, Sep 12, 2014 at 10:22:11AM +0800, Peng Tao wrote:
> > We never do I/O without a valid layout, but we keep the extents around
> > because we need to keep state like that it's been written to or has
> > a commit pending in a single place, and also need to keep it if a layout
> > goes away temporarily.
> We don't know if layout goes away temporarily or permanently. If
> server happens to move the file's data (enterprise NAS does that for a
> lot of reasons) in between, next time client does layoutget, it will
> get a different extent mapping. I'm not sure if the new extent
> tracking code is able to cope with it. The old code will certainly
> fail though.

A server is expected to do a layout recall with the clora_changed set
to true if it moves data around and thus the layout goes away permanently.
The Linux client currently irgnores that field, but that's something which
needs to fixed in the core pnfs code and not the block layout drivers.

But this isn't one of the cases were we keep the extent around but
not the layout - those are the ones were we have stateid mismatches
or similar (most of them now fixed by me).

We actually have a much bigger elephant in the room, which this series
doesn't address yet:  if a layoutcommit fails we curently don't have
a way to resend the data to the MDS.  This will be more common pnfs core
work as we basically need to keep the data in a state similar to NFS
unstable writes, instead of claiming that we finished a NFS_FILE_SYNC,
which allows the VM to drop the data from the pagecache before the
commit happened.

I'm slowly wading through all these issues - I initially only planned to
write a server but so far fixing up the client has taken way more of my
time compared to the relatively trivial server..

> If your concern is current layoutreturn implementation that ignores
> pending layoutcommit (and inflight IOs), that needs to be fixed. I
> have a patchset to fix it and it is still under internal QA. I'll post
> it once it passes testing.

That's a different issues, but I'm happy to review that as well.

  reply	other threads:[~2014-09-13 19:38 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-10 15:23 pnfs block layout driver fixes V4 Christoph Hellwig
2014-09-10 15:23 ` [PATCH 1/9] pnfs: force a layout commit when encountering busy segments during recall Christoph Hellwig
2014-09-10 15:23 ` [PATCH 2/9] pnfs: add flag to force read-modify-write in ->write_begin Christoph Hellwig
2014-09-10 15:23 ` [PATCH 3/9] pnfs: add return_range method Christoph Hellwig
2014-09-11 13:54   ` Peng Tao
2014-09-11 15:20     ` Christoph Hellwig
2014-09-11 15:30       ` Peng Tao
2014-09-11 15:36         ` Christoph Hellwig
2014-09-12  2:22           ` Peng Tao
2014-09-13 19:38             ` Christoph Hellwig [this message]
2014-09-10 15:23 ` [PATCH 4/9] pnfs/blocklayout: remove read-modify-write handling in bl_write_pagelist Christoph Hellwig
2014-09-10 15:23 ` [PATCH 5/9] pnfs/blocklayout: don't set pages uptodate Christoph Hellwig
2014-09-10 15:23 ` [PATCH 6/9] pnfs/blocklayout: rewrite extent tracking Christoph Hellwig
2014-09-11 14:11   ` Peng Tao
2014-09-11 15:21     ` Christoph Hellwig
2014-09-10 15:23 ` [PATCH 7/9] pnfs/blocklayout: implement the return_range method Christoph Hellwig
2014-09-11 14:16   ` Peng Tao
2014-09-11 15:24     ` Christoph Hellwig
2014-09-10 15:23 ` [PATCH 8/9] pnfs/blocklayout: return layouts on setattr Christoph Hellwig
2014-09-11 14:24   ` Peng Tao
2014-09-11 14:42     ` Boaz Harrosh
2014-09-11 15:25     ` Christoph Hellwig
2014-09-11 15:38       ` Trond Myklebust
2014-09-11 15:48         ` Christoph Hellwig
2014-09-11 16:14           ` Trond Myklebust
2014-09-14 10:55             ` Boaz Harrosh
2014-09-14 13:24               ` Trond Myklebust
2014-09-14 13:51                 ` Boaz Harrosh
2014-09-14 14:16                   ` Trond Myklebust
2014-09-14 14:28                     ` Boaz Harrosh
2014-09-10 15:23 ` [PATCH 9/9] pnfs/blocklayout: allocate separate pages for the layoutcommit payload Christoph Hellwig
  -- strict thread matches above, loose matches on Subject: below --
2014-09-09 16:40 pnfs block layout driver fixes V3 Christoph Hellwig
2014-09-09 16:40 ` [PATCH 3/9] pnfs: add return_range method Christoph Hellwig

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=20140913193854.GA31909@lst.de \
    --to=hch@lst.de \
    --cc=bergwolf@primarydata.com \
    --cc=linux-nfs@vger.kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).