]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: don't include ceph.{file,dir}.layout vxattr in listxattr() 1525/head
authorYan, Zheng <zheng.z.yan@intel.com>
Mon, 24 Mar 2014 11:33:52 +0000 (19:33 +0800)
committerYan, Zheng <zheng.z.yan@intel.com>
Mon, 24 Mar 2014 11:35:03 +0000 (19:35 +0800)
This avoids 'cp -a' modifying layout of new files/directories.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
src/client/Client.cc

index 8691cd7678e89007f05b50fc486bf61268d866d6..d85e4031ea9ab8266910ae3620cda9091ccabc0a 100644 (file)
@@ -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<string,bufferptr>::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<string,bufferptr>::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;
     }