All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Peng Tao <bergwolf@primarydata.com>
Cc: Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH 3/9] pnfs: add return_range method
Date: Thu, 11 Sep 2014 17:36:31 +0200	[thread overview]
Message-ID: <20140911153631.GA8039@lst.de> (raw)
In-Reply-To: <CAKVebiXPaxN5hayCYAdd22vThFk=c+Vf0nHmWAnNssMQzyiLPw@mail.gmail.com>

On Thu, Sep 11, 2014 at 11:30:50PM +0800, Peng Tao wrote:
> It looks dangerous to have extents lurking around without matching
> layout segments. One example is NFS4ERR_EXPIRED and
> NFS4ERR_BAD_STATEID in nfs4_layoutget_done(), client needs to drop all
> layout segments but may keep the layout header, in which case blocks
> layout would still hold all extents at hand.

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.

I hate the way it has been done in the old client, and tried moving the
extent tracking to a per-layout basis, and spent way too much time on it
but still couldn't get it to work, so I finally gave up.  I think we're
between a rock (the idiocy on rfc5663 that it tracks data in extents and not
in layouts) and a hard place (the forgetful Linux client and it's lose layout
coherency) here.

  reply	other threads:[~2014-09-11 15:36 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 [this message]
2014-09-12  2:22           ` Peng Tao
2014-09-13 19:38             ` Christoph Hellwig
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=20140911153631.GA8039@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.