]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: add support for snapshots alternate_name 45224/head
authorLuís Henriques <lhenriques@suse.de>
Wed, 2 Mar 2022 16:46:16 +0000 (16:46 +0000)
committerLuís Henriques <lhenriques@suse.de>
Wed, 2 Mar 2022 16:50:19 +0000 (16:50 +0000)
Signed-off-by: Luís Henriques <lhenriques@suse.de>
src/mds/Server.cc
src/mds/snap.cc
src/mds/snap.h

index b87264c3ee3ecae55d3e0c9461df88752aaa89cd..7eef27352f47e7a6ea68cbb28ef3fa906a5c65a7 100644 (file)
@@ -10332,8 +10332,10 @@ void Server::handle_client_lssnap(MDRequestRef& mdr)
       break;
 
     encode(snap_name, dnbl);
+
     //infinite lease
     LeaseStat e(CEPH_LEASE_VALID, -1, 0);
+    e.alternate_name = std::string(p->second->alternate_name);
     mds->locker->encode_lease(dnbl, mdr->session->info, e);
     dout(20) << "encode_infinite_lease" << dendl;
 
@@ -10496,6 +10498,7 @@ void Server::handle_client_mksnap(MDRequestRef& mdr)
   info.ino = diri->ino();
   info.snapid = snapid;
   info.name = snapname;
+  info.alternate_name = req->get_alternate_name();
   info.stamp = mdr->get_op_stamp();
   info.metadata = payload.metadata;
 
index c5b8728e927149548d7c02b9d655df9b179a72ce..625e345e890efe7ad815b94beade8bbb7c124c78 100644 (file)
@@ -25,18 +25,19 @@ using namespace std;
 
 void SnapInfo::encode(bufferlist& bl) const
 {
-  ENCODE_START(3, 2, bl);
+  ENCODE_START(4, 2, bl);
   encode(snapid, bl);
   encode(ino, bl);
   encode(stamp, bl);
   encode(name, bl);
   encode(metadata, bl);
+  encode(alternate_name, bl);
   ENCODE_FINISH(bl);
 }
 
 void SnapInfo::decode(bufferlist::const_iterator& bl)
 {
-  DECODE_START_LEGACY_COMPAT_LEN(3, 2, 2, bl);
+  DECODE_START_LEGACY_COMPAT_LEN(4, 2, 2, bl);
   decode(snapid, bl);
   decode(ino, bl);
   decode(stamp, bl);
@@ -44,6 +45,9 @@ void SnapInfo::decode(bufferlist::const_iterator& bl)
   if (struct_v >= 3) {
     decode(metadata, bl);
   }
+  if (struct_v >= 4) {
+    decode(alternate_name, bl);
+  }
   DECODE_FINISH(bl);
 }
 
index f8b5b701af46f22cde7c18a314fdbd43568c9322..012e944d92d325f4dcc88e8e6960fb207a94ff32 100644 (file)
@@ -38,6 +38,7 @@ struct SnapInfo {
   inodeno_t ino;
   utime_t stamp;
   std::string name;
+  std::string alternate_name;
 
   mutable std::string long_name; ///< cached _$ino_$name
   std::map<std::string,std::string> metadata;