Message ID | 20190829113505.27223-3-david@fromorbit.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | xfs: allocate xattr buffer on demand | expand |
On Thu, Aug 29, 2019 at 09:35:02PM +1000, Dave Chinner wrote: > From: Dave Chinner <dchinner@redhat.com> > > Signed-off-by: Dave Chinner <dchinner@redhat.com> Looks ok, Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> --D > --- > fs/xfs/libxfs/xfs_attr_leaf.c | 33 +++++++++++++++++---------------- > 1 file changed, 17 insertions(+), 16 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_attr_leaf.c b/fs/xfs/libxfs/xfs_attr_leaf.c > index 7a9440b7ab00..c7378bc62d2b 100644 > --- a/fs/xfs/libxfs/xfs_attr_leaf.c > +++ b/fs/xfs/libxfs/xfs_attr_leaf.c > @@ -2391,24 +2391,25 @@ xfs_attr3_leaf_getvalue( > } > args->valuelen = valuelen; > memcpy(args->value, &name_loc->nameval[args->namelen], valuelen); > - } else { > - name_rmt = xfs_attr3_leaf_name_remote(leaf, args->index); > - ASSERT(name_rmt->namelen == args->namelen); > - ASSERT(memcmp(args->name, name_rmt->name, args->namelen) == 0); > - args->rmtvaluelen = be32_to_cpu(name_rmt->valuelen); > - args->rmtblkno = be32_to_cpu(name_rmt->valueblk); > - args->rmtblkcnt = xfs_attr3_rmt_blocks(args->dp->i_mount, > - args->rmtvaluelen); > - if (args->flags & ATTR_KERNOVAL) { > - args->valuelen = args->rmtvaluelen; > - return 0; > - } > - if (args->valuelen < args->rmtvaluelen) { > - args->valuelen = args->rmtvaluelen; > - return -ERANGE; > - } > + return 0; > + } > + > + name_rmt = xfs_attr3_leaf_name_remote(leaf, args->index); > + ASSERT(name_rmt->namelen == args->namelen); > + ASSERT(memcmp(args->name, name_rmt->name, args->namelen) == 0); > + args->rmtvaluelen = be32_to_cpu(name_rmt->valuelen); > + args->rmtblkno = be32_to_cpu(name_rmt->valueblk); > + args->rmtblkcnt = xfs_attr3_rmt_blocks(args->dp->i_mount, > + args->rmtvaluelen); > + if (args->flags & ATTR_KERNOVAL) { > + args->valuelen = args->rmtvaluelen; > + return 0; > + } > + if (args->valuelen < args->rmtvaluelen) { > args->valuelen = args->rmtvaluelen; > + return -ERANGE; > } > + args->valuelen = args->rmtvaluelen; > return 0; > } > > -- > 2.23.0.rc1 >
On Thu, Aug 29, 2019 at 09:35:02PM +1000, Dave Chinner wrote: > From: Dave Chinner <dchinner@redhat.com> > > Signed-off-by: Dave Chinner <dchinner@redhat.com> Looks good, Reviewed-by: Christoph Hellwig <hch@lst.de>
diff --git a/fs/xfs/libxfs/xfs_attr_leaf.c b/fs/xfs/libxfs/xfs_attr_leaf.c index 7a9440b7ab00..c7378bc62d2b 100644 --- a/fs/xfs/libxfs/xfs_attr_leaf.c +++ b/fs/xfs/libxfs/xfs_attr_leaf.c @@ -2391,24 +2391,25 @@ xfs_attr3_leaf_getvalue( } args->valuelen = valuelen; memcpy(args->value, &name_loc->nameval[args->namelen], valuelen); - } else { - name_rmt = xfs_attr3_leaf_name_remote(leaf, args->index); - ASSERT(name_rmt->namelen == args->namelen); - ASSERT(memcmp(args->name, name_rmt->name, args->namelen) == 0); - args->rmtvaluelen = be32_to_cpu(name_rmt->valuelen); - args->rmtblkno = be32_to_cpu(name_rmt->valueblk); - args->rmtblkcnt = xfs_attr3_rmt_blocks(args->dp->i_mount, - args->rmtvaluelen); - if (args->flags & ATTR_KERNOVAL) { - args->valuelen = args->rmtvaluelen; - return 0; - } - if (args->valuelen < args->rmtvaluelen) { - args->valuelen = args->rmtvaluelen; - return -ERANGE; - } + return 0; + } + + name_rmt = xfs_attr3_leaf_name_remote(leaf, args->index); + ASSERT(name_rmt->namelen == args->namelen); + ASSERT(memcmp(args->name, name_rmt->name, args->namelen) == 0); + args->rmtvaluelen = be32_to_cpu(name_rmt->valuelen); + args->rmtblkno = be32_to_cpu(name_rmt->valueblk); + args->rmtblkcnt = xfs_attr3_rmt_blocks(args->dp->i_mount, + args->rmtvaluelen); + if (args->flags & ATTR_KERNOVAL) { + args->valuelen = args->rmtvaluelen; + return 0; + } + if (args->valuelen < args->rmtvaluelen) { args->valuelen = args->rmtvaluelen; + return -ERANGE; } + args->valuelen = args->rmtvaluelen; return 0; }