From: Yan, Zheng Date: Mon, 24 Mar 2014 11:33:52 +0000 (+0800) Subject: client: don't include ceph.{file,dir}.layout vxattr in listxattr() X-Git-Tag: v0.79~97^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1525%2Fhead;p=ceph.git client: don't include ceph.{file,dir}.layout vxattr in listxattr() This avoids 'cp -a' modifying layout of new files/directories. Signed-off-by: Yan, Zheng --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 8691cd7678e8..d85e4031ea9a 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -7242,18 +7242,11 @@ int Client::_listxattr(Inode *in, char *name, size_t size, int uid, int gid) { int r = _getattr(in, CEPH_STAT_CAP_XATTR, uid, gid); if (r == 0) { - const char file_vxattrs[] = "ceph.file.layout"; - const char dir_vxattrs[] = "ceph.dir.layout"; for (map::iterator p = in->xattrs.begin(); p != in->xattrs.end(); ++p) r += p->first.length() + 1; - if (in->is_file()) - r += sizeof(file_vxattrs); - else if (in->is_dir() && in->has_dir_layout()) - r += sizeof(dir_vxattrs); - if (size != 0) { if (size >= (unsigned)r) { for (map::iterator p = in->xattrs.begin(); @@ -7264,13 +7257,6 @@ int Client::_listxattr(Inode *in, char *name, size_t size, int uid, int gid) *name = '\0'; name++; } - if (in->is_file()) { - memcpy(name, file_vxattrs, sizeof(file_vxattrs)); - name += sizeof(file_vxattrs); - } else if (in->is_dir() && in->has_dir_layout()) { - memcpy(name, dir_vxattrs, sizeof(dir_vxattrs)); - name += sizeof(dir_vxattrs); - } } else r = -ERANGE; }