From: Jody French <jfrench@austin.rr.com>
To: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Cc: Jeff Layton <jlayton@redhat.com>,
Steve French <smfrench@gmail.com>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Shirish Pargaonkar <shirishpargaonkar@gmail.com>,
Dave Kleikamp <shaggy@linux.vnet.ibm.com>
Subject: Re: flush and EIO errors when writepages fails
Date: Sat, 21 Jun 2008 09:21:42 -0500 [thread overview]
Message-ID: <485D0E76.3020205@austin.rr.com> (raw)
In-Reply-To: <20080621131919.GA22509@2ka.mipt.ru>
Evgeniy Polyakov wrote:
>> Either way, if we really want to do a second attempt to write out the
>> pagevec, then adding some code to cifs_writepages that sleeps for a bit
>> and implements this seems like the thing to do. I'm not convinced that
>> it will actually make much difference, but it seems unlikely to hurt
>> anything.
>>
>
> If server returns serious error then there is no other way except to
> discard data with error, but if server does not respond or respond EBUSY
> or that kind of error, then subsequent write can succeed and at least
> should not harm. As a simple case, it is possible to sleep a bit and
> resend in writepages(), but it is also possible just to return from the
> callback and allow VFS to call it again (frequently it will happen very
> soon though) with the same pages (or even increased chunk).
>
In the particular case we are looking at, the network stack (TCP perhaps
due a temporary glitch in
the network adapter or routing infrastructure or temporary memory
pressure) is returning EAGAIN
for more than 15 seconds (on the tcp send of the Write request) but the
server itself has not crashed,
(subsequent parts of the file written via later writepages requests are
eventually written out), eventually
we give up in writepages and return EIO on the next fsync or flush/close
- but if we could
make one more attempt to go through in flush, and write all dirty pages
including the ones that we timed
out on that would help. In addition if readpage is about to do a
partial page read into a dirty page that
we were unable to write out we would like to try once more before
corrupting the data.
next prev parent reply other threads:[~2008-06-21 14:37 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-20 22:34 flush and EIO errors when writepages fails Steve French
2008-06-21 7:05 ` Evgeniy Polyakov
2008-06-21 12:27 ` Jeff Layton
2008-06-21 13:19 ` Evgeniy Polyakov
2008-06-21 14:21 ` Jody French [this message]
2008-06-21 14:42 ` Evgeniy Polyakov
2008-06-21 16:15 ` Steve French
2008-06-21 16:28 ` Evgeniy Polyakov
2008-06-21 17:02 ` Steve French
2008-06-21 17:26 ` Evgeniy Polyakov
2008-06-21 17:37 ` Evgeniy Polyakov
2008-06-23 15:39 ` Dave Kleikamp
2008-06-23 18:05 ` Dave Kleikamp
[not found] <20080620073150.2bc9988e@tupile.poochiereds.net>
[not found] ` <OFE8C66E61.981E25D1-ON8725746E.0045A92A-8625746E.004718C0@us.ibm.com>
[not found] ` <20080620091542.09edb43f@tupile.poochiereds.net>
2008-06-20 16:19 ` Steve French (smfltc)
2008-06-20 16:34 ` Jeff Layton
2008-06-20 16:41 ` Steve French (smfltc)
2008-06-20 17:12 ` Jeff Layton
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=485D0E76.3020205@austin.rr.com \
--to=jfrench@austin.rr.com \
--cc=jlayton@redhat.com \
--cc=johnpol@2ka.mipt.ru \
--cc=linux-fsdevel@vger.kernel.org \
--cc=shaggy@linux.vnet.ibm.com \
--cc=shirishpargaonkar@gmail.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).