]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: change readdir wire format again
authorSage Weil <sage@newdream.net>
Wed, 17 Jun 2009 22:22:54 +0000 (15:22 -0700)
committerSage Weil <sage@newdream.net>
Wed, 17 Jun 2009 22:23:17 +0000 (15:23 -0700)
Do not include dentry offsets; they're not useful.

src/client/Client.cc
src/include/ceph_fs.h
src/kernel/mds_client.c
src/kernel/mds_client.h
src/mds/Server.cc

index 4cd6ffc7b4c2f112026b11ff9edffbd781fe096a..dea62357915ed4b98541f99b9d21114ef900809f 100644 (file)
@@ -638,8 +638,6 @@ Inode* Client::insert_trace(MetaRequest *request, utime_t from, int mds)
     string dname;
     LeaseStat dlease;
     while (numdn) {
-      __u32 pos;  // dentry pos within the fragment
-      ::decode(pos, p);
       ::decode(dname, p);
       ::decode(dlease, p);
       InodeStat ist(p);
index 49a86779538f633dcb6ce0c9391bbf2fef1f2bba..9b96d17e988b3c7ffea6c4da581c09567c722931 100644 (file)
@@ -27,7 +27,7 @@
 #define CEPH_MDS_PROTOCOL     9 /* cluster internal */
 #define CEPH_MON_PROTOCOL     4 /* cluster internal */
 #define CEPH_OSDC_PROTOCOL   18 /* public/client */
-#define CEPH_MDSC_PROTOCOL   22 /* public/client */
+#define CEPH_MDSC_PROTOCOL   23 /* public/client */
 #define CEPH_MONC_PROTOCOL   12 /* public/client */
 
 
index 3d949a288496a68681488b2b7f35dde1cd1704ea..9332578b7eac2bf3242bfd59674674cc4a46606b 100644 (file)
@@ -136,22 +136,19 @@ static int parse_reply_info_dir(void **p, void *end,
        info->dir_in = kmalloc(num * (sizeof(*info->dir_in) +
                                      sizeof(*info->dir_dname) +
                                      sizeof(*info->dir_dname_len) +
-                                     sizeof(*info->dir_pos) +
                                      sizeof(*info->dir_dlease)),
                               GFP_NOFS);
        if (info->dir_in == NULL) {
                err = -ENOMEM;
                goto out_bad;
        }
-       info->dir_pos = (void *)(info->dir_in + num);
-       info->dir_dname = (void *)(info->dir_pos + num);
+       info->dir_dname = (void *)(info->dir_in + num);
        info->dir_dname_len = (void *)(info->dir_dname + num);
        info->dir_dlease = (void *)(info->dir_dname_len + num);
 
        while (num) {
                /* dentry */
                ceph_decode_need(p, end, sizeof(u32)*2, bad);
-               ceph_decode_32(p, info->dir_pos[i]);
                ceph_decode_32(p, info->dir_dname_len[i]);
                ceph_decode_need(p, end, info->dir_dname_len[i], bad);
                info->dir_dname[i] = *p;
index 4b1da7149db2c2e4b248b7dda06703a8f7ac03a5..039b9e5c713e36695c89eba3b38ace052a6f0d55 100644 (file)
@@ -86,7 +86,6 @@ struct ceph_mds_reply_info_parsed {
        u32                           *dir_dname_len;
        struct ceph_mds_reply_lease   **dir_dlease;
        struct ceph_mds_reply_info_in *dir_in;
-       u32                           *dir_pos;
        u8                            dir_complete, dir_end;
 
        /* encoded blob describing snapshot contexts for certain
index fe39108acd42941c7efe0a84b3f219767dfd4cff..bad9851e9a228cfc3fe7ddc2c0bc04dffe60a54b 100644 (file)
@@ -2143,7 +2143,6 @@ void Server::handle_client_readdir(MDRequest *mdr)
 
 
   __u32 numfiles = 0;
-  __u32 pos = 0;
   while (it != dir->end() && numfiles < max) {
     CDentry *dn = it->second;
     it++;
@@ -2166,7 +2165,6 @@ void Server::handle_client_readdir(MDRequest *mdr)
     if (dn->last < snapid || dn->first > snapid)
       continue;
 
-    __u32 dpos = pos++;
     if (offset && strcmp(dn->get_name().c_str(), offset) <= 0)
       continue;
 
@@ -2197,7 +2195,6 @@ void Server::handle_client_readdir(MDRequest *mdr)
 
     // dentry
     dout(12) << "including    dn " << *dn << dendl;
-    ::encode(dpos, dnbl);
     ::encode(dn->name, dnbl);
     mds->locker->issue_client_lease(dn, client, dnbl, mdr->now, mdr->session);