mbox series

[STABLE,0/2] Fix in-memory metadata corruption at xfs_attr3_leaf_write_verify()

Message ID 1554042273-3307-1-git-send-email-alex@zadara.com (mailing list archive)
Headers show
Series Fix in-memory metadata corruption at xfs_attr3_leaf_write_verify() | expand

Message

Alex Lyakas March 31, 2019, 2:24 p.m. UTC
This is a partial backport of original Darrick's series "xfs: logging fixes" to kernel 4.14.
It fixes the in-memory metadata corruption error, which happens
when a partially initialized attribute buffer is attemped to be written to disk. 
This issue is reproducible with kernel 4.14, when adding a 1-sec sleep in xfs_attr_set(),
between the call to  xfs_attr_shortform_to_leaf() and the call to xfs_attr_leaf_addname().

Darrick J. Wong (2):
  xfs: add the ability to join a held buffer to a defer_ops
  xfs: hold xfs_buf locked between shortform->leaf conversion and the
    addition of an attribute

 fs/xfs/libxfs/xfs_attr.c      | 20 +++++++++++++++-----
 fs/xfs/libxfs/xfs_attr_leaf.c |  9 ++++++---
 fs/xfs/libxfs/xfs_attr_leaf.h |  3 ++-
 fs/xfs/libxfs/xfs_defer.c     | 39 ++++++++++++++++++++++++++++++++++++---
 fs/xfs/libxfs/xfs_defer.h     |  5 ++++-
 5 files changed, 63 insertions(+), 13 deletions(-)

Comments

Brian Foster April 2, 2019, 11:44 a.m. UTC | #1
On Sun, Mar 31, 2019 at 05:24:33PM +0300, Alex Lyakas wrote:
> This is a partial backport of original Darrick's series "xfs: logging fixes" to kernel 4.14.
> It fixes the in-memory metadata corruption error, which happens
> when a partially initialized attribute buffer is attemped to be written to disk. 
> This issue is reproducible with kernel 4.14, when adding a 1-sec sleep in xfs_attr_set(),
> between the call to  xfs_attr_shortform_to_leaf() and the call to xfs_attr_leaf_addname().
> 

For future reference, you probably want to make sure the patch series is
threaded when it's posted to the list. That aside, this looks like a
reasonable and straightforward backport to me:

Acked-by: Brian Foster <bfoster@redhat.com>

> Darrick J. Wong (2):
>   xfs: add the ability to join a held buffer to a defer_ops
>   xfs: hold xfs_buf locked between shortform->leaf conversion and the
>     addition of an attribute
> 
>  fs/xfs/libxfs/xfs_attr.c      | 20 +++++++++++++++-----
>  fs/xfs/libxfs/xfs_attr_leaf.c |  9 ++++++---
>  fs/xfs/libxfs/xfs_attr_leaf.h |  3 ++-
>  fs/xfs/libxfs/xfs_defer.c     | 39 ++++++++++++++++++++++++++++++++++++---
>  fs/xfs/libxfs/xfs_defer.h     |  5 ++++-
>  5 files changed, 63 insertions(+), 13 deletions(-)
> 
> -- 
> 1.9.1
>
Alex Lyakas April 2, 2019, 1:33 p.m. UTC | #2
Hi Brian,

On Tue, Apr 2, 2019 at 2:44 PM Brian Foster <bfoster@redhat.com> wrote:
>
> On Sun, Mar 31, 2019 at 05:24:33PM +0300, Alex Lyakas wrote:
> > This is a partial backport of original Darrick's series "xfs: logging fixes" to kernel 4.14.
> > It fixes the in-memory metadata corruption error, which happens
> > when a partially initialized attribute buffer is attemped to be written to disk.
> > This issue is reproducible with kernel 4.14, when adding a 1-sec sleep in xfs_attr_set(),
> > between the call to  xfs_attr_shortform_to_leaf() and the call to xfs_attr_leaf_addname().
> >
>
> For future reference, you probably want to make sure the patch series is
> threaded when it's posted to the list.
I am not sure what you mean by this. I used "git-send-email" to send
all the patches one-by-one. Perhaps you mean that I should have sent
them in one "git-send-email" command?

> That aside, this looks like a
> reasonable and straightforward backport to me:
>
> Acked-by: Brian Foster <bfoster@redhat.com>
I assume that I can treat your "Acked-by" as "Reviewed-by" (Dave asked
for this to pass a review).

Thanks!
Alex.


>
> > Darrick J. Wong (2):
> >   xfs: add the ability to join a held buffer to a defer_ops
> >   xfs: hold xfs_buf locked between shortform->leaf conversion and the
> >     addition of an attribute
> >
> >  fs/xfs/libxfs/xfs_attr.c      | 20 +++++++++++++++-----
> >  fs/xfs/libxfs/xfs_attr_leaf.c |  9 ++++++---
> >  fs/xfs/libxfs/xfs_attr_leaf.h |  3 ++-
> >  fs/xfs/libxfs/xfs_defer.c     | 39 ++++++++++++++++++++++++++++++++++++---
> >  fs/xfs/libxfs/xfs_defer.h     |  5 ++++-
> >  5 files changed, 63 insertions(+), 13 deletions(-)
> >
> > --
> > 1.9.1
> >
Brian Foster April 2, 2019, 1:54 p.m. UTC | #3
On Tue, Apr 02, 2019 at 04:33:38PM +0300, Alex Lyakas wrote:
> Hi Brian,
> 
> On Tue, Apr 2, 2019 at 2:44 PM Brian Foster <bfoster@redhat.com> wrote:
> >
> > On Sun, Mar 31, 2019 at 05:24:33PM +0300, Alex Lyakas wrote:
> > > This is a partial backport of original Darrick's series "xfs: logging fixes" to kernel 4.14.
> > > It fixes the in-memory metadata corruption error, which happens
> > > when a partially initialized attribute buffer is attemped to be written to disk.
> > > This issue is reproducible with kernel 4.14, when adding a 1-sec sleep in xfs_attr_set(),
> > > between the call to  xfs_attr_shortform_to_leaf() and the call to xfs_attr_leaf_addname().
> > >
> >
> > For future reference, you probably want to make sure the patch series is
> > threaded when it's posted to the list.
> I am not sure what you mean by this. I used "git-send-email" to send
> all the patches one-by-one. Perhaps you mean that I should have sent
> them in one "git-send-email" command?
> 

Yeah, most likely. At least I don't do anything more than format a patch
series to a directory, update the cover letter and whatnot and then 'git
send-email ...' on the entire directory to achieve threading.

> > That aside, this looks like a
> > reasonable and straightforward backport to me:
> >
> > Acked-by: Brian Foster <bfoster@redhat.com>
> I assume that I can treat your "Acked-by" as "Reviewed-by" (Dave asked
> for this to pass a review).
> 

Sure, either way is fine. I wasn't sure what tags are expected for the
stable trees (if any) and just wanted to indicate that I think the
backport looks fine.

Brian

> Thanks!
> Alex.
> 
> 
> >
> > > Darrick J. Wong (2):
> > >   xfs: add the ability to join a held buffer to a defer_ops
> > >   xfs: hold xfs_buf locked between shortform->leaf conversion and the
> > >     addition of an attribute
> > >
> > >  fs/xfs/libxfs/xfs_attr.c      | 20 +++++++++++++++-----
> > >  fs/xfs/libxfs/xfs_attr_leaf.c |  9 ++++++---
> > >  fs/xfs/libxfs/xfs_attr_leaf.h |  3 ++-
> > >  fs/xfs/libxfs/xfs_defer.c     | 39 ++++++++++++++++++++++++++++++++++++---
> > >  fs/xfs/libxfs/xfs_defer.h     |  5 ++++-
> > >  5 files changed, 63 insertions(+), 13 deletions(-)
> > >
> > > --
> > > 1.9.1
> > >
Greg KH April 3, 2019, 2:08 p.m. UTC | #4
On Sun, Mar 31, 2019 at 05:24:33PM +0300, Alex Lyakas wrote:
> This is a partial backport of original Darrick's series "xfs: logging fixes" to kernel 4.14.
> It fixes the in-memory metadata corruption error, which happens
> when a partially initialized attribute buffer is attemped to be written to disk. 
> This issue is reproducible with kernel 4.14, when adding a 1-sec sleep in xfs_attr_set(),
> between the call to  xfs_attr_shortform_to_leaf() and the call to xfs_attr_leaf_addname().
> 
> Darrick J. Wong (2):
>   xfs: add the ability to join a held buffer to a defer_ops
>   xfs: hold xfs_buf locked between shortform->leaf conversion and the
>     addition of an attribute

What are the git commit ids of these patches in Linus's tree?

thanks,

greg k-h
Alex Lyakas April 6, 2019, 1:11 p.m. UTC | #5
Hi Greg,

The relevant commits in the Linus's tree are:

b7b2846fe26f2c0d7f317c874a13d3ecf22670ff
xfs: add the ability to join a held buffer to a defer_ops

6e643cd094de3bd0f97edcc1db0089afa24d909f
xfs: hold xfs_buf locked between shortform->leaf conversion and the
addition of an attribute

They were pulled by Linus in commit:

fca0e39b2bd2fcfea2027845df28757943d9f561
Merge tag 'xfs-4.15-fixes-8' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux

Thanks,
Alex.

On Wed, Apr 3, 2019 at 5:08 PM Greg KH <greg@kroah.com> wrote:
>
> On Sun, Mar 31, 2019 at 05:24:33PM +0300, Alex Lyakas wrote:
> > This is a partial backport of original Darrick's series "xfs: logging fixes" to kernel 4.14.
> > It fixes the in-memory metadata corruption error, which happens
> > when a partially initialized attribute buffer is attemped to be written to disk.
> > This issue is reproducible with kernel 4.14, when adding a 1-sec sleep in xfs_attr_set(),
> > between the call to  xfs_attr_shortform_to_leaf() and the call to xfs_attr_leaf_addname().
> >
> > Darrick J. Wong (2):
> >   xfs: add the ability to join a held buffer to a defer_ops
> >   xfs: hold xfs_buf locked between shortform->leaf conversion and the
> >     addition of an attribute
>
> What are the git commit ids of these patches in Linus's tree?
>
> thanks,
>
> greg k-h
Greg KH April 24, 2019, 4:46 p.m. UTC | #6
On Sat, Apr 06, 2019 at 04:11:53PM +0300, Alex Lyakas wrote:
> Hi Greg,
> 
> The relevant commits in the Linus's tree are:
> 
> b7b2846fe26f2c0d7f317c874a13d3ecf22670ff
> xfs: add the ability to join a held buffer to a defer_ops
> 
> 6e643cd094de3bd0f97edcc1db0089afa24d909f
> xfs: hold xfs_buf locked between shortform->leaf conversion and the
> addition of an attribute
> 
> They were pulled by Linus in commit:
> 
> fca0e39b2bd2fcfea2027845df28757943d9f561
> Merge tag 'xfs-4.15-fixes-8' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux

Thanks, both now queued up.

greg k-h