]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: remote attribute lookups require the value length
authorDave Chinner <dchinner@redhat.com>
Fri, 7 Jun 2013 12:24:53 +0000 (22:24 +1000)
committerBen Myers <bpm@sgi.com>
Tue, 6 Aug 2013 21:26:34 +0000 (16:26 -0500)
When reading a remote attribute, to correctly calculate the length
of the data buffer for CRC enable filesystems, we need to know the
length of the attribute data. We get this information when we look
up the attribute, but we don't store it in the args structure along
with the other remote attr information we get from the lookup. Add
this information to the args structure so we can use it
appropriately.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
libxfs/xfs_attr_leaf.c

index 881f4172a8b3c12a44003385c48d670a48d34f66..d9f5ec5a0f1fc415aaff7d4ed23524bff8e580d0 100644 (file)
@@ -2122,9 +2122,10 @@ xfs_attr3_leaf_lookup_int(
                        if (!xfs_attr_namesp_match(args->flags, entry->flags))
                                continue;
                        args->index = probe;
+                       args->valuelen = be32_to_cpu(name_rmt->valuelen);
                        args->rmtblkno = be32_to_cpu(name_rmt->valueblk);
                        args->rmtblkcnt = XFS_B_TO_FSB(args->dp->i_mount,
-                                                  be32_to_cpu(name_rmt->valuelen));
+                                                      args->valuelen);
                        return XFS_ERROR(EEXIST);
                }
        }