From b5024a1db0b30d9744c144f04cf83069285efe6c Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 17 Jun 2009 15:22:54 -0700 Subject: [PATCH] mds: change readdir wire format again Do not include dentry offsets; they're not useful. --- src/client/Client.cc | 2 -- src/include/ceph_fs.h | 2 +- src/kernel/mds_client.c | 5 +---- src/kernel/mds_client.h | 1 - src/mds/Server.cc | 3 --- 5 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 4cd6ffc7b4c2f..dea62357915ed 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -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); diff --git a/src/include/ceph_fs.h b/src/include/ceph_fs.h index 49a86779538f6..9b96d17e988b3 100644 --- a/src/include/ceph_fs.h +++ b/src/include/ceph_fs.h @@ -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 */ diff --git a/src/kernel/mds_client.c b/src/kernel/mds_client.c index 3d949a288496a..9332578b7eac2 100644 --- a/src/kernel/mds_client.c +++ b/src/kernel/mds_client.c @@ -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; diff --git a/src/kernel/mds_client.h b/src/kernel/mds_client.h index 4b1da7149db2c..039b9e5c713e3 100644 --- a/src/kernel/mds_client.h +++ b/src/kernel/mds_client.h @@ -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 diff --git a/src/mds/Server.cc b/src/mds/Server.cc index fe39108acd429..bad9851e9a228 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -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); -- 2.39.5