linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nick Piggin <npiggin@suse.de>
To: Jeff Layton <jlayton@redhat.com>
Cc: Steve French <smfrench@gmail.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	pbadari@us.ibm.com,
	"linux-cifs-client@lists.samba.org"
	<linux-cifs-client@lists.samba.org>
Subject: Re: [linux-cifs-client] Re: fsx-linux failing with latest cifs-2.6 git tree
Date: Mon, 1 Dec 2008 12:32:26 +0100	[thread overview]
Message-ID: <20081201113226.GD13903@wotan.suse.de> (raw)
In-Reply-To: <20081201062849.764062b2@tleilax.poochiereds.net>

On Mon, Dec 01, 2008 at 06:28:49AM -0500, Jeff Layton wrote:
> On Mon, 1 Dec 2008 09:44:35 +0100
> Nick Piggin <npiggin@suse.de> wrote:
> > > I think it actually is a problem. Suppose PageChecked is never cleared
> > > like you say, we flush the page and then do a partial page write again.
> > > We do a readpage this time and it fails, but the copy of data to the
> > > page works. Now we hit cifs_write_end and PageChecked is set, but
> > > the unwritten parts of the page actually aren't up to date. Data
> > > corruption ensues...
> > > 
> > > I agree that we should drop that patch. We might be able to make
> > > cifs_write_end more efficient, but we'll need to be more careful
> > > with PageChecked.
> > 
> > Oh? I admittedly haven't looked at the source code after applying
> > your latest patch, but I thought it should not be possible to have
> > a leaking PageChecked. The page is under the page lock the whole
> > time, so a concurrent write should not be an issue...?
> > 
> 
> But a concurrent write and read is, right?
> 
> Suppose we do a successful cifs_write_begin and set PageChecked. Another
> thread then incurs a page fault and does a readpage before we copy the
> data to the page. Won't we then call write_end with both PageChecked and
> PageUptodate set?
> 
> That write will be fine, of course. PageChecked is still true though,
> and I think that sets up the problem I was describing...

Unless cifs is doing something different from the usual case, it should
lock the page over the readpage operation (the end IO handler would
typically unlock the page after doing a SetPageUptodate).

So concurrent reads should be protected with page lock as well.


  reply	other threads:[~2008-12-01 11:32 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20081121105613.09a8cb8e@tleilax.poochiereds.net>
     [not found] ` <524f69650811210820s549de2bah3181cbc0c5633091@mail.gmail.com>
     [not found]   ` <20081121112249.0b408b55@tleilax.poochiereds.net>
     [not found]     ` <524f69650811210846q7502fd99m6f4d335bb6ac1b65@mail.gmail.com>
     [not found]       ` <524f69650811211109w659e5decoa34a8e0f907772a3@mail.gmail.com>
     [not found]         ` <524f69650811211113q4fffcc70of88cb85db531c358@mail.gmail.com>
     [not found]           ` <1227296476.20845.8.camel@norville.austin.ibm.com>
     [not found]             ` <524f69650811211218v78295682lcf6dce842327b097@mail.gmail.com>
2008-11-21 20:38               ` Fwd: fsx-linux failing with latest cifs-2.6 git tree Steve French
2008-11-21 20:41                 ` Dave Kleikamp
2008-11-21 21:02                   ` Steve French
2008-11-21 23:44                   ` Nick Piggin
2008-11-21 20:50                 ` Jeff Layton
2008-11-21 22:50                 ` Jeff Layton
2008-11-21 23:02                   ` Dave Kleikamp
2008-11-21 23:25                     ` Jeff Layton
2008-11-22  1:04                       ` Steve French
2008-11-22  1:50                         ` Jeff Layton
2008-11-21 23:53                   ` Nick Piggin
2008-11-22  1:51                     ` Jeff Layton
2008-11-22  2:02                       ` Steve French
2008-11-22  4:47                         ` Dave Kleikamp
2008-11-22 15:39                           ` [linux-cifs-client] " Jeff Layton
2008-11-22 20:27                             ` Dave Kleikamp
2008-11-23 11:57                               ` Jeff Layton
2008-11-24  2:32                                 ` Steve French
2008-11-24 11:19                                   ` [linux-cifs-client] " Jeff Layton
2008-11-26  4:04                                     ` Steve French
2008-11-26 11:54                                       ` Jeff Layton
2008-11-26 12:11                                       ` Jeff Layton
2008-11-26 13:09                                         ` [linux-cifs-client] " Nick Piggin
2008-11-26 15:08                                           ` Jeff Layton
2008-11-26 15:23                                             ` Nick Piggin
2008-11-26 16:37                                               ` Jeff Layton
2008-11-27  8:33                                                 ` Nick Piggin
2008-11-28 12:18                                                   ` Jeff Layton
2008-11-30 21:44                                                     ` Steve French
2008-11-30 22:17                                                       ` Jeff Layton
2008-12-01  8:44                                                         ` Nick Piggin
2008-12-01 11:28                                                           ` Jeff Layton
2008-12-01 11:32                                                             ` Nick Piggin [this message]
2008-12-01 11:55                                                               ` Jeff Layton
2008-12-01 17:43                                                                 ` Steve French
2008-11-26 19:46                                               ` Steve French
2008-11-24 20:00                                 ` Dave Kleikamp
2008-11-26 13:02                       ` Nick Piggin

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=20081201113226.GD13903@wotan.suse.de \
    --to=npiggin@suse.de \
    --cc=jlayton@redhat.com \
    --cc=linux-cifs-client@lists.samba.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=pbadari@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).