From: Radoslaw Zarzynski Date: Thu, 20 Sep 2018 20:38:51 +0000 (-0400) Subject: mds: encode_xattrs() uses buffer::list::contiguous_filler. X-Git-Tag: v14.1.0~1058^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7633663e6d4d9d3d69bdc476a23edd0a33c58f05;p=ceph.git mds: encode_xattrs() uses buffer::list::contiguous_filler. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index ec17cd64a089..c305edca790d 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -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); }