lkml.org 
[lkml]   [2017]   [Jun]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v5 00/17] fs: introduce new writeback error reporting and convert ext2 and ext4 to use it
    From
    Date
    On Thu, 2017-06-01 at 23:25 -0600, Ross Zwisler wrote:
    > On Wed, May 31, 2017 at 08:45:23AM -0400, Jeff Layton wrote:
    > > v5: don't retrofit old API over the new infrastructure
    > > add fstype flag to indicate how wb errors are tracked within that fs
    > > add more function variants that take a errseq_t "since" value
    > > add second errseq_t to struct file to track metadata wb errors
    > > convert ext4 and ext2 to use the new APIs
    > >
    > > v4: several more cleanup patches
    > > documentation and kerneldoc comment updates
    > > fix bugs in gfs2 patches
    > > make sync_file_range use same error reporting semantics
    > > bugfixes in buffer.c
    > > convert nfs to new scheme (maybe bogus, can be dropped)
    > >
    > > v3: wb_err_t -> errseq_t conversion
    > > clean up places that re-set errors after calling filemap_* functions
    > >
    > > v2: introduce wb_err_t, use atomics
    > >
    > > This is v5 of the patchset to improve how we're tracking and reporting
    > > errors that occur during pagecache writeback. The main difference in
    > > this set from the last one is that I've stopped trying to retrofit the
    > > old error tracking API on top of the new one. This is more work since
    > > we'll have to touch each fs individually, but should be safer as the
    > > "since" values used for checking errors will be more deliberate.
    > >
    > > There are several situations where the kernel can "lose" errors that
    > > occur during writeback, such that fsync will return success even
    > > though it failed to write back some data previously. The basic idea
    > > here is to have the kernel be more deliberate about the point from
    > > which errors are checked to ensure that that doesn't happen.
    > >
    > > An additional aim of this set is to change the behavior of fsync in
    > > Linux to report writeback errors on all fds instead of just the first
    > > one. This allows writers to reliably tell whether their data made it to
    > > the backing device without having to coordinate fsync calls with other
    > > writers.
    > >
    > > To do this, we add a new typedef: errseq_t. This is a 32-bit value
    > > that can store an error code, and a sequence number so we can tell
    > > whether it has changed since we last sampled it. This allows us to
    > > record errors in the address_space and then report those errors only
    > > once per file description.
    > >
    > > This set just alters block device files, ext4 and the legacy ext2
    > > driver. If this general approach seems acceptable, then I'll start
    > > converting other filesystems in follow-on patchsets. I'd also like
    > > to get this into linux-next as soon as possible to ensure that we're
    > > banging out any bugs that might be lurking here.
    > >
    > > I also have a couple of xfstests for this as well that I'll re-post
    > > soon.
    >
    > Can you tell me a baseline that this applies cleanly to, or give me a link to
    > a tree with these patches already applied? I've tried applying it to v4.11,
    > linux/master and mmots/master, and so far nothing has worked.

    It's basically on top of v4.12-rc3, but it may not apply cleanly
    without the pile of individual patches that I sent recently.

    It may be best to just pull down the "wberr" branch from my tree here:

    git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux.git

    I was originally sending the prep patches as part of this series, but
    maintainers weren't picking them up, so I moved to sending them
    individually and then sending this pile as its own set.

    Many thanks for giving this a look and testing it!
    --
    Jeff Layton <jlayton@redhat.com>

    \
     
     \ /
      Last update: 2017-06-05 00:10    [W:4.467 / U:0.716 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site