]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: disallow layout changes for files with data
authorYan, Zheng <zyan@redhat.com>
Wed, 4 Feb 2015 12:22:54 +0000 (20:22 +0800)
committerYan, Zheng <zyan@redhat.com>
Thu, 5 Feb 2015 14:57:13 +0000 (22:57 +0800)
Fixes: #10737
Signed-off-by: Yan, Zheng <zyan@redhat.com>
src/mds/Server.cc

index e31da938a0e54ae81382589036597da5cef6ac52..036267409e46e44309b02bcf0eef9beebce74e5c 100644 (file)
@@ -3924,6 +3924,11 @@ void Server::handle_set_vxattr(MDRequestRef& mdr, CInode *cur,
        respond_to_request(mdr, -EINVAL);
        return;
       }
+      if (cur->get_projected_inode()->size ||
+         cur->get_projected_inode()->truncate_seq > 1) {
+       respond_to_request(mdr, -ENOTEMPTY);
+       return;
+      }
       ceph_file_layout layout = cur->get_projected_inode()->layout;
       rest = name.substr(name.find("layout"));
       const OSDMap *osdmap = mds->objecter->get_osdmap_read();