From: Jeff Layton <jlayton@redhat.com>
To: Dave Chinner <david@fromorbit.com>
Cc: Steve French <smfrench@gmail.com>,
linux-cifs@vger.kernel.org,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Mingming Cao <mcao@us.ibm.com>
Subject: Re: stable page writes: wait_on_page_writeback and packet signing
Date: Wed, 9 Mar 2011 21:12:25 -0500 [thread overview]
Message-ID: <20110309211225.2e16d14f@corrin.poochiereds.net> (raw)
In-Reply-To: <20110309184542.07c5ffe6@corrin.poochiereds.net>
On Wed, 9 Mar 2011 18:45:42 -0500
Jeff Layton <jlayton@redhat.com> wrote:
> On Thu, 10 Mar 2011 08:51:48 +1100
> Dave Chinner <david@fromorbit.com> wrote:
> >
> > Sounds like a case for the same dirty page lifecycle as NFS: clean
> > -> dirty -> writeback -> unstable -> clean. i.e. the page is
> > unstable after the issuing of the IO until the response from the
> > server so the page can't be reclaimed while the IO is still in
> > progress at the server...
> >
>
> It's a little more complicated than that for NFS. Unstable pages are
> ones that have had successful writes but that have not been committed
> yet. Once a NFS COMMIT call completes, the page is marked clean and can
> be freed by the VM.
>
> Actual writeback in NFS is pretty similar to other filesystems -- the
> page is only under writeback until the WRITE response is received. It
> just doesn't clear the dirty bit until a COMMIT response is received.
>
Sorry, that's incorrect...NFS does clear the dirty bit after writeback,
but doesn't mark the inode clean until all pages have been committed.
Either way though, that really has little to do with keeping the pages
stable while sending them, but more to do with the fact that the server
can buffer up writes and then later crash and lose them. A successful
COMMIT means that the writes got committed to stable storage.
FWIW, CIFS is currently vulnerable to that problem too, so an unstable
write model isn't a bad idea, IMO.
--
Jeff Layton <jlayton@redhat.com>
prev parent reply other threads:[~2011-03-10 2:12 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-09 19:44 stable page writes: wait_on_page_writeback and packet signing Steve French
[not found] ` <AANLkTinFx9KGKDWSdUvFSvT4S6f9QjBzX=6Uo17oO89+-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-09 21:51 ` Dave Chinner
2011-03-09 21:58 ` Chris Mason
2011-03-09 22:13 ` Steve French
[not found] ` <AANLkTikK8MOm-m9XsOA4YGRe=E9bJTDh4iEYXtZumNmv-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-10 12:26 ` Chris Mason
2011-03-10 13:16 ` Jeff Layton
[not found] ` <20110310081638.0f8275d4-xSBYVWDuneFaJnirhKH9O4GKTjYczspe@public.gmane.org>
2011-03-10 13:32 ` Chris Mason
2011-03-10 13:47 ` Jeff Layton
[not found] ` <20110310084724.658fe5d7-xSBYVWDuneFaJnirhKH9O4GKTjYczspe@public.gmane.org>
2011-03-10 13:58 ` Chris Mason
2011-03-11 12:11 ` Jeff Layton
[not found] ` <20110311071143.01b407b6-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2011-03-11 12:56 ` Chris Mason
2011-03-11 13:42 ` Jeff Layton
[not found] ` <20110311084221.4ac6bd11-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2011-03-11 16:00 ` Chris Mason
2011-03-09 23:46 ` Dave Chinner
2011-03-09 22:01 ` Steve French
2011-03-09 23:54 ` Jeff Layton
[not found] ` <20110309185427.7858c29b-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2011-03-10 0:33 ` Steve French
[not found] ` <AANLkTi=pXHjE6tNMm0_nO=Cn3nGH8oZ6Xhm1STh8x1Xe-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-10 1:30 ` Jeff Layton
2011-03-10 13:53 ` Steve French
[not found] ` <20110309203044.4fd0498e-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2011-03-11 11:53 ` Jeff Layton
[not found] ` <AANLkTinDmqah6pQnHugoVxh-gDq+6+MDMuh-TyVAQ7LP-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-10 1:41 ` Trond Myklebust
[not found] ` <1299721264.2976.3.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2011-03-10 7:34 ` Christoph Hellwig
2011-03-10 13:44 ` Steve French
2011-03-09 23:45 ` Jeff Layton
2011-03-10 2:12 ` Jeff Layton [this message]
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=20110309211225.2e16d14f@corrin.poochiereds.net \
--to=jlayton@redhat.com \
--cc=david@fromorbit.com \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=mcao@us.ibm.com \
--cc=smfrench@gmail.com \
/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).