On Sun, May 06, 2018 at 11:59:57AM -0400, Jeff Layton wrote: > From: Matthew Wilcox <willy@xxxxxxxxxxxxx> > > The errseq_t infrastructure assumes that errors which occurred before > the file descriptor was opened are of no interest to the application. > This turns out to be a regression for some applications, notably Postgres. > > Before errseq_t, a writeback error would be reported exactly once (as > long as the inode remained in memory), so Postgres could open a file, > call fsync() and find out whether there had been a writeback error on > that file from another process. > > This patch changes the errseq infrastructure to report errors to all > file descriptors which are opened after the error occurred, but before > it was reported to any file descriptor. This restores the user-visible > behaviour. > > [ jlayton: fix up conflicts in comments ] > > Cc: stable@xxxxxxxxxxxxxxx > Fixes: 5660e13d2fd6 ("fs: new infrastructure for writeback error handling and reporting") > Signed-off-by: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx> > Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx> > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> > (cherry picked from commit b4678df184b314a2bd47d2329feca2c2534aa12b) > --- > lib/errseq.c | 25 +++++++++++-------------- > 1 file changed, 11 insertions(+), 14 deletions(-) > > This is a backport to the v4.14 stable series. The only merge conflict > was due to an earlier patch by Willy to flesh out the comments. There > were no code changes necessary. Thanks for the backport, now queued up. greg k-h