From: Sage Weil Date: Thu, 7 Aug 2008 23:43:26 +0000 (-0700) Subject: rename MClientFileCaps MClientCaps X-Git-Tag: v0.4~294 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7cc9015ee471328f936b009167870485ed7a0c0c;p=ceph.git rename MClientFileCaps MClientCaps --- diff --git a/src/Makefile.am b/src/Makefile.am index 17c9f7e52415..8398ba981f6b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -402,7 +402,7 @@ noinst_HEADERS = \ messages/MOSDIn.h\ messages/MMDSBoot.h\ messages/MClientMount.h\ - messages/MClientFileCaps.h\ + messages/MClientCaps.h\ messages/MClientLease.h\ messages/MOSDMap.h\ messages/MOSDOp.h\ diff --git a/src/TODO b/src/TODO index db838a2b44af..3313d6118aeb 100644 --- a/src/TODO +++ b/src/TODO @@ -1,5 +1,3 @@ -v0.3 - v0.4 - ENOSPC - finish client failure recovery (reconnect after long eviction; and slow delayed reconnect) diff --git a/src/client/Client.cc b/src/client/Client.cc index 9cf3813d642d..7598ceb97301 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -45,7 +45,7 @@ using namespace std; #include "messages/MClientRequest.h" #include "messages/MClientRequestForward.h" #include "messages/MClientReply.h" -#include "messages/MClientFileCaps.h" +#include "messages/MClientCaps.h" #include "messages/MClientLease.h" #include "messages/MClientSnap.h" @@ -1113,8 +1113,8 @@ void Client::dispatch(Message *m) case CEPH_MSG_CLIENT_SNAP: handle_snap((MClientSnap*)m); break; - case CEPH_MSG_CLIENT_FILECAPS: - handle_file_caps((MClientFileCaps*)m); + case CEPH_MSG_CLIENT_CAPS: + handle_caps((MClientCaps*)m); break; case CEPH_MSG_CLIENT_LEASE: handle_lease((MClientLease*)m); @@ -1472,13 +1472,13 @@ void Client::check_caps(Inode *in, bool is_delayed, bool flush_snap) op = CEPH_CAP_OP_FLUSHSNAP; else if (wanted == 0) op = CEPH_CAP_OP_RELEASE; - MClientFileCaps *m = new MClientFileCaps(op, - in->inode, - 0, - cap->seq, - cap->issued, - wanted, - cap->mseq); + MClientCaps *m = new MClientCaps(op, + in->inode, + 0, + cap->seq, + cap->issued, + wanted, + cap->mseq); in->reported_size = in->inode.size; m->set_max_size(in->wanted_max_size); in->requested_max_size = in->wanted_max_size; @@ -1853,7 +1853,7 @@ void Client::handle_snap(MClientSnap *m) delete m; } -void Client::handle_file_caps(MClientFileCaps *m) +void Client::handle_caps(MClientCaps *m) { int mds = m->get_source().num(); diff --git a/src/client/Client.h b/src/client/Client.h index db06849b99d5..4a53ab2951a6 100644 --- a/src/client/Client.h +++ b/src/client/Client.h @@ -840,7 +840,7 @@ protected: vector& snaps); void handle_snap(class MClientSnap *m); - void handle_file_caps(class MClientFileCaps *m); + void handle_caps(class MClientCaps *m); void cap_delay_requeue(Inode *in); void check_caps(Inode *in, bool is_delayed, bool flush_snap=false); void put_cap_ref(Inode *in, int cap); diff --git a/src/include/ceph_fs.h b/src/include/ceph_fs.h index 68cf16c27716..339935a9e452 100644 --- a/src/include/ceph_fs.h +++ b/src/include/ceph_fs.h @@ -419,7 +419,7 @@ struct ceph_msg_footer { #define CEPH_MSG_CLIENT_REQUEST 24 #define CEPH_MSG_CLIENT_REQUEST_FORWARD 25 #define CEPH_MSG_CLIENT_REPLY 26 -#define CEPH_MSG_CLIENT_FILECAPS 0x310 +#define CEPH_MSG_CLIENT_CAPS 0x310 #define CEPH_MSG_CLIENT_LEASE 0x311 #define CEPH_MSG_CLIENT_SNAP 0x312 @@ -805,7 +805,7 @@ inline static const char* ceph_cap_op_name(int op) { } } -struct ceph_mds_file_caps { +struct ceph_mds_caps { __le32 op; __le64 ino; __le32 seq; diff --git a/src/include/types.h b/src/include/types.h index 07da7e009055..3194677d4040 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -182,7 +182,7 @@ struct ltstr WRITE_RAW_ENCODER(ceph_fsid) WRITE_RAW_ENCODER(ceph_file_layout) WRITE_RAW_ENCODER(ceph_mds_request_head) -WRITE_RAW_ENCODER(ceph_mds_file_caps) +WRITE_RAW_ENCODER(ceph_mds_caps) WRITE_RAW_ENCODER(ceph_mds_lease) WRITE_RAW_ENCODER(ceph_mds_reply_head) WRITE_RAW_ENCODER(ceph_mds_reply_inode) diff --git a/src/kernel/inode.c b/src/kernel/inode.c index f69e1ef0d7db..7e49d949016b 100644 --- a/src/kernel/inode.c +++ b/src/kernel/inode.c @@ -1385,7 +1385,7 @@ void ceph_put_fmode(struct ceph_inode_info *ci, int fmode) * 0 - ok * 1 - send the msg back to mds */ -int ceph_handle_cap_grant(struct inode *inode, struct ceph_mds_file_caps *grant, +int ceph_handle_cap_grant(struct inode *inode, struct ceph_mds_caps *grant, struct ceph_mds_session *session) { struct ceph_inode_cap *cap; @@ -1569,7 +1569,7 @@ void __ceph_do_pending_vmtruncate(struct inode *inode) } void ceph_handle_cap_trunc(struct inode *inode, - struct ceph_mds_file_caps *trunc, + struct ceph_mds_caps *trunc, struct ceph_mds_session *session) { struct ceph_inode_info *ci = ceph_inode(inode); @@ -1612,7 +1612,7 @@ void ceph_handle_cap_trunc(struct inode *inode, &ci->i_vmtruncate_work); } -void ceph_handle_cap_export(struct inode *inode, struct ceph_mds_file_caps *ex, +void ceph_handle_cap_export(struct inode *inode, struct ceph_mds_caps *ex, struct ceph_mds_session *session) { struct ceph_inode_info *ci = ceph_inode(inode); @@ -1650,7 +1650,7 @@ out: spin_unlock(&inode->i_lock); } -void ceph_handle_cap_import(struct inode *inode, struct ceph_mds_file_caps *im, +void ceph_handle_cap_import(struct inode *inode, struct ceph_mds_caps *im, struct ceph_mds_session *session) { struct ceph_inode_info *ci = ceph_inode(inode); diff --git a/src/kernel/mds_client.c b/src/kernel/mds_client.c index 7af143d05347..2dd05f3e9ffe 100644 --- a/src/kernel/mds_client.c +++ b/src/kernel/mds_client.c @@ -1460,13 +1460,13 @@ static void send_cap_ack(struct ceph_mds_client *mdsc, __u64 ino, int caps, struct timespec *mtime, struct timespec *atime, u64 time_warp_seq, int mds) { - struct ceph_mds_file_caps *fc; + struct ceph_mds_caps *fc; struct ceph_msg *msg; dout(10, "send_cap_ack ino %llx caps %d wanted %d seq %u size %llu\n", ino, caps, wanted, (unsigned)seq, size); - msg = ceph_msg_new(CEPH_MSG_CLIENT_FILECAPS, sizeof(*fc), 0, 0, 0); + msg = ceph_msg_new(CEPH_MSG_CLIENT_CAPS, sizeof(*fc), 0, 0, 0); if (IS_ERR(msg)) return; @@ -1490,21 +1490,21 @@ static void send_cap_ack(struct ceph_mds_client *mdsc, __u64 ino, int caps, send_msg_mds(mdsc, msg, mds); } -void ceph_mdsc_handle_filecaps(struct ceph_mds_client *mdsc, - struct ceph_msg *msg) +void ceph_mdsc_handle_caps(struct ceph_mds_client *mdsc, + struct ceph_msg *msg) { struct super_block *sb = mdsc->client->sb; struct ceph_client *client = ceph_sb_to_client(sb); struct ceph_mds_session *session; struct inode *inode; - struct ceph_mds_file_caps *h; + struct ceph_mds_caps *h; int mds = le32_to_cpu(msg->hdr.src.name.num); int op; u32 seq; u64 ino, size, max_size; ino_t inot; - dout(10, "handle_filecaps from mds%d\n", mds); + dout(10, "handle_caps from mds%d\n", mds); /* decode */ if (msg->front.iov_len != sizeof(*h)) @@ -1521,7 +1521,7 @@ void ceph_mdsc_handle_filecaps(struct ceph_mds_client *mdsc, session = __get_session(&client->mdsc, mds); spin_unlock(&mdsc->lock); if (!session) { - dout(10, "WTF, got filecap but no session for mds%d\n", mds); + dout(10, "WTF, got cap but no session for mds%d\n", mds); return; } @@ -1573,7 +1573,7 @@ no_inode: return; bad: - dout(10, "corrupt filecaps message\n"); + dout(10, "corrupt caps message\n"); return; } diff --git a/src/kernel/mds_client.h b/src/kernel/mds_client.h index 70ab2509bf65..82cbdceac9d7 100644 --- a/src/kernel/mds_client.h +++ b/src/kernel/mds_client.h @@ -144,8 +144,8 @@ extern void ceph_mdsc_handle_reply(struct ceph_mds_client *mdsc, extern void ceph_mdsc_handle_forward(struct ceph_mds_client *mdsc, struct ceph_msg *msg); -extern void ceph_mdsc_handle_filecaps(struct ceph_mds_client *mdsc, - struct ceph_msg *msg); +extern void ceph_mdsc_handle_caps(struct ceph_mds_client *mdsc, + struct ceph_msg *msg); extern void ceph_mdsc_handle_lease(struct ceph_mds_client *mdsc, struct ceph_msg *msg); diff --git a/src/kernel/osd_client.c b/src/kernel/osd_client.c index 5e21a8c788c4..776a01f89e8f 100644 --- a/src/kernel/osd_client.c +++ b/src/kernel/osd_client.c @@ -558,7 +558,7 @@ static __u64 calc_layout(struct ceph_osd_client *osdc, __u64 toff = off, tlen = len; reqhead->oid.ino = ino; - reqhead->oid.rev = 0; + reqhead->oid.snap = 0; calc_file_object_mapping(layout, &toff, &tlen, &reqhead->oid, &off, &len); diff --git a/src/kernel/super.c b/src/kernel/super.c index e5c47ae3d0a8..4280c31901a6 100644 --- a/src/kernel/super.c +++ b/src/kernel/super.c @@ -304,7 +304,7 @@ const char *ceph_msg_type_name(int type) case CEPH_MSG_CLIENT_REQUEST: return "client_request"; case CEPH_MSG_CLIENT_REQUEST_FORWARD: return "client_request_forward"; case CEPH_MSG_CLIENT_REPLY: return "client_reply"; - case CEPH_MSG_CLIENT_FILECAPS: return "client_filecaps"; + case CEPH_MSG_CLIENT_CAPS: return "client_caps"; case CEPH_MSG_CLIENT_LEASE: return "client_lease"; case CEPH_MSG_OSD_GETMAP: return "osd_getmap"; case CEPH_MSG_OSD_MAP: return "osd_map"; @@ -792,8 +792,8 @@ void ceph_dispatch(void *p, struct ceph_msg *msg) case CEPH_MSG_CLIENT_REQUEST_FORWARD: ceph_mdsc_handle_forward(&client->mdsc, msg); break; - case CEPH_MSG_CLIENT_FILECAPS: - ceph_mdsc_handle_filecaps(&client->mdsc, msg); + case CEPH_MSG_CLIENT_CAPS: + ceph_mdsc_handle_caps(&client->mdsc, msg); break; case CEPH_MSG_CLIENT_LEASE: ceph_mdsc_handle_lease(&client->mdsc, msg); diff --git a/src/kernel/super.h b/src/kernel/super.h index 476515a56a0a..30b62c5e6260 100644 --- a/src/kernel/super.h +++ b/src/kernel/super.h @@ -459,16 +459,16 @@ extern void ceph_remove_cap(struct ceph_inode_cap *cap); extern void ceph_remove_all_caps(struct ceph_inode_info *ci); extern int ceph_get_cap_mds(struct inode *inode); extern int ceph_handle_cap_grant(struct inode *inode, - struct ceph_mds_file_caps *grant, + struct ceph_mds_caps *grant, struct ceph_mds_session *session); extern void ceph_handle_cap_trunc(struct inode *inode, - struct ceph_mds_file_caps *trunc, + struct ceph_mds_caps *trunc, struct ceph_mds_session *session); extern void ceph_handle_cap_export(struct inode *inode, - struct ceph_mds_file_caps *ex, + struct ceph_mds_caps *ex, struct ceph_mds_session *session); extern void ceph_handle_cap_import(struct inode *inode, - struct ceph_mds_file_caps *im, + struct ceph_mds_caps *im, struct ceph_mds_session *session); extern int ceph_get_cap_refs(struct ceph_inode_info *ci, int need, int want, int *got, loff_t offset); extern void ceph_take_cap_refs(struct ceph_inode_info *ci, int got); diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index 869be4d47731..bb69f0301a82 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -45,7 +45,7 @@ #include "messages/MClientRequest.h" #include "messages/MClientReply.h" -#include "messages/MClientFileCaps.h" +#include "messages/MClientCaps.h" #include "messages/MMDSSlaveRequest.h" @@ -73,8 +73,8 @@ void Locker::dispatch(Message *m) break; // client sync - case CEPH_MSG_CLIENT_FILECAPS: - handle_client_file_caps((MClientFileCaps*)m); + case CEPH_MSG_CLIENT_CAPS: + handle_client_caps((MClientCaps*)m); break; case CEPH_MSG_CLIENT_LEASE: handle_client_lease((MClientLease*)m); @@ -617,11 +617,11 @@ bool Locker::issue_caps(CInode *in) if (seq > 0 && !cap->is_suppress()) { - dout(7) << " sending MClientFileCaps to client" << it->first + dout(7) << " sending MClientCaps to client" << it->first << " seq " << cap->get_last_seq() << " new pending " << cap_string(cap->pending()) << " was " << cap_string(before) << dendl; - mds->send_message_client(new MClientFileCaps(CEPH_CAP_OP_GRANT, + mds->send_message_client(new MClientCaps(CEPH_CAP_OP_GRANT, in->inode, in->find_snaprealm()->inode->ino(), cap->get_last_seq(), @@ -644,7 +644,7 @@ void Locker::issue_truncate(CInode *in) it != in->client_caps.end(); it++) { Capability *cap = it->second; - mds->send_message_client(new MClientFileCaps(CEPH_CAP_OP_TRUNC, + mds->send_message_client(new MClientCaps(CEPH_CAP_OP_TRUNC, in->inode, in->find_snaprealm()->inode->ino(), cap->get_last_seq(), @@ -904,7 +904,7 @@ void Locker::share_inode_max_size(CInode *in) Capability *cap = it->second; if (cap->pending() & CEPH_CAP_WR) { dout(10) << "share_inode_max_size with client" << client << dendl; - mds->send_message_client(new MClientFileCaps(CEPH_CAP_OP_GRANT, + mds->send_message_client(new MClientCaps(CEPH_CAP_OP_GRANT, in->inode, in->find_snaprealm()->inode->ino(), cap->get_last_seq(), @@ -922,18 +922,18 @@ void Locker::share_inode_max_size(CInode *in) * - we are calling back previously issued caps (fewer than the client previously had) * - or if the client releases (any of) its caps on its own */ -void Locker::handle_client_file_caps(MClientFileCaps *m) +void Locker::handle_client_caps(MClientCaps *m) { int client = m->get_source().num(); snapid_t follows = m->get_snap_follows(); - dout(7) << "handle_client_file_caps on " << m->get_ino() + dout(7) << "handle_client_caps on " << m->get_ino() << " follows " << follows << " op " << ceph_cap_op_name(m->get_op()) << dendl; CInode *head_in = mdcache->get_inode(m->get_ino()); if (!head_in) { - dout(7) << "handle_client_file_caps on unknown ino " << m->get_ino() << ", dropping" << dendl; + dout(7) << "handle_client_caps on unknown ino " << m->get_ino() << ", dropping" << dendl; delete m; return; } @@ -950,7 +950,7 @@ void Locker::handle_client_file_caps(MClientFileCaps *m) if (in) cap = in->get_client_cap(client); if (!cap) { - dout(7) << "handle_client_file_caps no cap for client" << client << " on " << *in << dendl; + dout(7) << "handle_client_caps no cap for client" << client << " on " << *in << dendl; delete m; return; } @@ -958,12 +958,12 @@ void Locker::handle_client_file_caps(MClientFileCaps *m) // freezing|frozen? if (in->is_freezing() || in->is_frozen()) { - dout(7) << "handle_client_file_caps freezing|frozen on " << *in << dendl; + dout(7) << "handle_client_caps freezing|frozen on " << *in << dendl; in->add_waiter(CInode::WAIT_UNFREEZE, new C_MDS_RetryMessage(mds, m)); return; } if (m->get_mseq() < cap->get_mseq()) { - dout(7) << "handle_client_file_caps mseq " << m->get_mseq() << " < " << cap->get_mseq() + dout(7) << "handle_client_caps mseq " << m->get_mseq() << " < " << cap->get_mseq() << ", dropping" << dendl; delete m; return; @@ -1038,7 +1038,7 @@ void Locker::handle_client_file_caps(MClientFileCaps *m) } -void Locker::_do_cap_update(CInode *in, int had, int all_wanted, snapid_t follows, MClientFileCaps *m) +void Locker::_do_cap_update(CInode *in, int had, int all_wanted, snapid_t follows, MClientCaps *m) { dout(10) << "_do_cap_update had " << cap_string(had) << " on " << *in << dendl; diff --git a/src/mds/Locker.h b/src/mds/Locker.h index 6b13800a168a..fb4173d6d2b0 100644 --- a/src/mds/Locker.h +++ b/src/mds/Locker.h @@ -203,8 +203,8 @@ protected: void remove_stale_leases(Session *session); protected: - void handle_client_file_caps(class MClientFileCaps *m); - void _do_cap_update(CInode *in, int had, int wanted, snapid_t follows, MClientFileCaps *m); + void handle_client_caps(class MClientCaps *m); + void _do_cap_update(CInode *in, int had, int wanted, snapid_t follows, MClientCaps *m); void request_inode_file_caps(CInode *in); diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 855516785f49..18b8eb3d732b 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -67,7 +67,7 @@ #include "messages/MDentryUnlink.h" #include "messages/MClientRequest.h" -#include "messages/MClientFileCaps.h" +#include "messages/MClientCaps.h" #include "messages/MClientSnap.h" #include "messages/MMDSSlaveRequest.h" @@ -3610,7 +3610,7 @@ void MDCache::do_cap_import(Session *session, CInode *in, Capability *cap) SnapRealm *realm = in->find_snaprealm(); if (realm->have_past_parents_open()) { dout(10) << "do_cap_import " << session->inst.name << " mseq " << cap->get_mseq() << " on " << *in << dendl; - MClientFileCaps *reap = new MClientFileCaps(CEPH_CAP_OP_IMPORT, + MClientCaps *reap = new MClientCaps(CEPH_CAP_OP_IMPORT, in->inode, realm->inode->ino(), cap->get_last_seq(), diff --git a/src/mds/Migrator.cc b/src/mds/Migrator.cc index a9e6d19b4e35..640ca59a7439 100644 --- a/src/mds/Migrator.cc +++ b/src/mds/Migrator.cc @@ -36,7 +36,7 @@ #include "msg/Messenger.h" -#include "messages/MClientFileCaps.h" +#include "messages/MClientCaps.h" #include "messages/MExportDirDiscover.h" #include "messages/MExportDirDiscoverAck.h" @@ -895,7 +895,7 @@ void Migrator::finish_export_inode_caps(CInode *in) Capability *cap = it->second; dout(7) << "finish_export_inode telling client" << it->first << " exported caps on " << *in << dendl; - MClientFileCaps *m = new MClientFileCaps(CEPH_CAP_OP_EXPORT, + MClientCaps *m = new MClientCaps(CEPH_CAP_OP_EXPORT, in->inode, in->find_snaprealm()->inode->ino(), cap->get_last_seq(), diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 83e9d9e59d65..7413e3b77eb6 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -29,7 +29,7 @@ #include "messages/MClientRequest.h" #include "messages/MClientReply.h" #include "messages/MClientReconnect.h" -#include "messages/MClientFileCaps.h" +#include "messages/MClientCaps.h" #include "messages/MClientSnap.h" #include "messages/MMDSSlaveRequest.h" @@ -422,7 +422,7 @@ void Server::handle_client_reconnect(MClientReconnect *m) inode_t fake_inode; memset(&fake_inode, 0, sizeof(fake_inode)); fake_inode.ino = p->first; - MClientFileCaps *stale = new MClientFileCaps(CEPH_CAP_OP_EXPORT, + MClientCaps *stale = new MClientCaps(CEPH_CAP_OP_EXPORT, fake_inode, 0, 0, diff --git a/src/messages/MClientCaps.h b/src/messages/MClientCaps.h new file mode 100644 index 000000000000..773d04e01279 --- /dev/null +++ b/src/messages/MClientCaps.h @@ -0,0 +1,109 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab +/* + * Ceph - scalable distributed file system + * + * Copyright (C) 2004-2006 Sage Weil + * + * This is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software + * Foundation. See file COPYING. + * + */ + +#ifndef __MCLIENTCAPS_H +#define __MCLIENTCAPS_H + +#include "msg/Message.h" + + +class MClientCaps : public Message { + private: + struct ceph_mds_caps h; + public: + bufferlist snapbl; + + int get_caps() { return h.caps; } + int get_wanted() { return h.wanted; } + capseq_t get_seq() { return h.seq; } + capseq_t get_mseq() { return h.migrate_seq; } + + inodeno_t get_ino() { return inodeno_t(h.ino); } + + __u64 get_size() { return h.size; } + __u64 get_max_size() { return h.max_size; } + utime_t get_ctime() { return utime_t(h.ctime); } + utime_t get_mtime() { return utime_t(h.mtime); } + utime_t get_atime() { return utime_t(h.atime); } + __u64 get_time_warp_seq() { return h.time_warp_seq; } + + int get_migrate_seq() { return h.migrate_seq; } + int get_op() { return h.op; } + + snapid_t get_snap_follows() { return snapid_t(h.snap_follows); } + void set_snap_follows(snapid_t s) { h.snap_follows = s; } + + void set_caps(int c) { h.caps = c; } + void set_wanted(int w) { h.wanted = w; } + + void set_max_size(__u64 ms) { h.max_size = ms; } + + void set_migrate_seq(unsigned m) { h.migrate_seq = m; } + void set_op(int o) { h.op = o; } + + void set_size(loff_t s) { h.size = s; } + void set_mtime(const utime_t &t) { t.encode_timeval(&h.mtime); } + void set_atime(const utime_t &t) { t.encode_timeval(&h.atime); } + + MClientCaps() {} + MClientCaps(int op, + inode_t& inode, + inodeno_t realm, + long seq, + int caps, + int wanted, + int mseq) : + Message(CEPH_MSG_CLIENT_CAPS) { + h.op = op; + h.ino = inode.ino; + h.seq = seq; + h.caps = caps; + h.wanted = wanted; + h.size = inode.size; + h.max_size = inode.max_size; + h.migrate_seq = mseq; + inode.mtime.encode_timeval(&h.mtime); + inode.atime.encode_timeval(&h.atime); + inode.ctime.encode_timeval(&h.ctime); + h.time_warp_seq = inode.time_warp_seq; + } + + const char *get_type_name() { return "Cfcap";} + void print(ostream& out) { + out << "client_caps(" << ceph_cap_op_name(h.op) + << " ino " << inodeno_t(h.ino) + << " seq " << h.seq + << " caps " << cap_string(h.caps) + << " wanted" << cap_string(h.wanted) + << " size " << h.size << "/" << h.max_size + << " mtime " << utime_t(h.mtime) + << " tws " << h.time_warp_seq + << " follows " << snapid_t(h.snap_follows); + if (h.migrate_seq) + out << " mseq " << h.migrate_seq; + out << ")"; + } + + void decode_payload() { + bufferlist::iterator p = payload.begin(); + ::decode(h, p); + ::decode(snapbl, p); + } + void encode_payload() { + ::encode(h, payload); + ::encode(snapbl, payload); + } +}; + +#endif diff --git a/src/messages/MClientFileCaps.h b/src/messages/MClientFileCaps.h deleted file mode 100644 index 8340b3ac4b17..000000000000 --- a/src/messages/MClientFileCaps.h +++ /dev/null @@ -1,109 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2004-2006 Sage Weil - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#ifndef __MCLIENTFILECAPS_H -#define __MCLIENTFILECAPS_H - -#include "msg/Message.h" - - -class MClientFileCaps : public Message { - private: - struct ceph_mds_file_caps h; - public: - bufferlist snapbl; - - int get_caps() { return h.caps; } - int get_wanted() { return h.wanted; } - capseq_t get_seq() { return h.seq; } - capseq_t get_mseq() { return h.migrate_seq; } - - inodeno_t get_ino() { return inodeno_t(h.ino); } - - __u64 get_size() { return h.size; } - __u64 get_max_size() { return h.max_size; } - utime_t get_ctime() { return utime_t(h.ctime); } - utime_t get_mtime() { return utime_t(h.mtime); } - utime_t get_atime() { return utime_t(h.atime); } - __u64 get_time_warp_seq() { return h.time_warp_seq; } - - int get_migrate_seq() { return h.migrate_seq; } - int get_op() { return h.op; } - - snapid_t get_snap_follows() { return snapid_t(h.snap_follows); } - void set_snap_follows(snapid_t s) { h.snap_follows = s; } - - void set_caps(int c) { h.caps = c; } - void set_wanted(int w) { h.wanted = w; } - - void set_max_size(__u64 ms) { h.max_size = ms; } - - void set_migrate_seq(unsigned m) { h.migrate_seq = m; } - void set_op(int o) { h.op = o; } - - void set_size(loff_t s) { h.size = s; } - void set_mtime(const utime_t &t) { t.encode_timeval(&h.mtime); } - void set_atime(const utime_t &t) { t.encode_timeval(&h.atime); } - - MClientFileCaps() {} - MClientFileCaps(int op, - inode_t& inode, - inodeno_t realm, - long seq, - int caps, - int wanted, - int mseq) : - Message(CEPH_MSG_CLIENT_FILECAPS) { - h.op = op; - h.ino = inode.ino; - h.seq = seq; - h.caps = caps; - h.wanted = wanted; - h.size = inode.size; - h.max_size = inode.max_size; - h.migrate_seq = mseq; - inode.mtime.encode_timeval(&h.mtime); - inode.atime.encode_timeval(&h.atime); - inode.ctime.encode_timeval(&h.ctime); - h.time_warp_seq = inode.time_warp_seq; - } - - const char *get_type_name() { return "Cfcap";} - void print(ostream& out) { - out << "client_file_caps(" << ceph_cap_op_name(h.op) - << " ino " << inodeno_t(h.ino) - << " seq " << h.seq - << " caps " << cap_string(h.caps) - << " wanted" << cap_string(h.wanted) - << " size " << h.size << "/" << h.max_size - << " mtime " << utime_t(h.mtime) - << " tws " << h.time_warp_seq - << " follows " << snapid_t(h.snap_follows); - if (h.migrate_seq) - out << " mseq " << h.migrate_seq; - out << ")"; - } - - void decode_payload() { - bufferlist::iterator p = payload.begin(); - ::decode(h, p); - ::decode(snapbl, p); - } - void encode_payload() { - ::encode(h, payload); - ::encode(snapbl, payload); - } -}; - -#endif diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index a9ade5969ac8..bf8072f380e4 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -619,7 +619,7 @@ bool OSDMonitor::prepare_remove_snaps(MRemoveSnaps *m) } if (max > osdmap.max_snap && - (__s64)max > pending_inc.new_max_snap) { + max > pending_inc.new_max_snap) { dout(10) << " new_max_snap " << max << dendl; pending_inc.new_max_snap = max; } else { diff --git a/src/msg/Message.cc b/src/msg/Message.cc index 549ea63455d2..9cc04d3410b3 100644 --- a/src/msg/Message.cc +++ b/src/msg/Message.cc @@ -58,7 +58,7 @@ using namespace std; #include "messages/MClientRequest.h" #include "messages/MClientRequestForward.h" #include "messages/MClientReply.h" -#include "messages/MClientFileCaps.h" +#include "messages/MClientCaps.h" #include "messages/MClientLease.h" #include "messages/MClientSnap.h" @@ -253,8 +253,8 @@ decode_message(ceph_msg_header& env, bufferlist& front, bufferlist& data) case CEPH_MSG_CLIENT_REPLY: m = new MClientReply; break; - case CEPH_MSG_CLIENT_FILECAPS: - m = new MClientFileCaps; + case CEPH_MSG_CLIENT_CAPS: + m = new MClientCaps; break; case CEPH_MSG_CLIENT_LEASE: m = new MClientLease;