]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: encode_xattrs() uses buffer::list::contiguous_filler.
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Thu, 20 Sep 2018 20:38:51 +0000 (16:38 -0400)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Sat, 6 Oct 2018 10:45:39 +0000 (12:45 +0200)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/mds/CInode.cc

index ec17cd64a0891574582e860b7b743c23c9ac8a72..c305edca790dd28528ca050eedfc6483550698ae 100644 (file)
@@ -3588,16 +3588,14 @@ int CInode::encode_inodestat(bufferlist& bl, Session *session,
     using ceph::encode;
     if (xattr_version) {
       ceph_le32 xbl_len;
-      auto xbl_len_it = bl.end();
-      xbl_len = sizeof(__u32);
-      encode(xbl_len, bl);
+      auto filler = bl.append_hole(sizeof(xbl_len));
+      const auto starting_bl_len = bl.length();
       if (pxattrs)
        encode(*pxattrs, bl);
       else
        encode((__u32)0, bl);
-      xbl_len = bl.length() - xbl_len_it.get_off() - sizeof(xbl_len);
-      if (xbl_len != sizeof(__u32))
-       xbl_len_it.copy_in(sizeof(xbl_len), (char *)&xbl_len);
+      xbl_len = bl.length() - starting_bl_len;
+      filler.copy_in(sizeof(xbl_len), (char *)&xbl_len);
     } else {
       encode((__u32)0, bl);
     }