Skip to content

Commit

Permalink
ceph: remove recon_gen logic
Browse files Browse the repository at this point in the history
We don't get an explicit affirmative confirmation that our caps reconnect,
nor do we necessarily want to pay that cost.  So, take all this code out
for now.

Signed-off-by: Sage Weil <sage@newdream.net>
  • Loading branch information
Sage Weil committed Nov 11, 2009
1 parent eed0ef2 commit cdac830
Show file tree
Hide file tree
Showing 4 changed files with 2 additions and 28 deletions.
12 changes: 1 addition & 11 deletions fs/ceph/caps.c
Original file line number Diff line number Diff line change
Expand Up @@ -610,7 +610,6 @@ int ceph_add_cap(struct inode *inode,
cap->issue_seq = seq;
cap->mseq = mseq;
cap->cap_gen = session->s_cap_gen;
cap->recon_gen = session->s_recon_gen;

if (fmode >= 0)
__ceph_get_fmode(ci, fmode);
Expand All @@ -627,21 +626,13 @@ int ceph_add_cap(struct inode *inode,
static int __cap_is_valid(struct ceph_cap *cap)
{
unsigned long ttl;
u32 gen, recon_gen;
u32 gen;

spin_lock(&cap->session->s_cap_lock);
gen = cap->session->s_cap_gen;
recon_gen = cap->session->s_recon_gen;
ttl = cap->session->s_cap_ttl;
spin_unlock(&cap->session->s_cap_lock);

if (cap->recon_gen != recon_gen) {
dout("__cap_is_valid %p cap %p issued %s "
"but DEAD (recon_gen %u vs %u)\n", &cap->ci->vfs_inode,
cap, ceph_cap_string(cap->issued), cap->recon_gen,
recon_gen);
return 0;
}
if (cap->cap_gen < gen || time_after_eq(jiffies, ttl)) {
dout("__cap_is_valid %p cap %p issued %s "
"but STALE (gen %u vs %u)\n", &cap->ci->vfs_inode,
Expand Down Expand Up @@ -2213,7 +2204,6 @@ static int handle_cap_grant(struct inode *inode, struct ceph_mds_caps *grant,
issued |= implemented | __ceph_caps_dirty(ci);

cap->cap_gen = session->s_cap_gen;
cap->recon_gen = session->s_recon_gen;

__check_cap_issue(ci, cap, newcaps);

Expand Down
15 changes: 1 addition & 14 deletions fs/ceph/mds_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,6 @@ static struct ceph_mds_session *register_session(struct ceph_mds_client *mdsc,
ceph_con_open(&s->s_con, ceph_mdsmap_get_addr(mdsc->mdsmap, mds));

spin_lock_init(&s->s_cap_lock);
s->s_recon_gen = 0;
s->s_cap_gen = 0;
s->s_cap_ttl = 0;
s->s_renew_requested = 0;
Expand Down Expand Up @@ -736,25 +735,14 @@ static void remove_session_caps(struct ceph_mds_session *session)
static int wake_up_session_cb(struct inode *inode, struct ceph_cap *cap,
void *arg)
{
struct ceph_mds_session *session = arg;

spin_lock(&inode->i_lock);
if (cap->recon_gen != session->s_recon_gen) {
pr_err("failed reconnect %p %llx.%llx cap %p "
"(recon_gen %d < session %d)\n", inode,
ceph_vinop(inode), cap,
cap->recon_gen, session->s_recon_gen);
__ceph_remove_cap(cap, NULL);
}
wake_up(&ceph_inode(inode)->i_cap_wq);
spin_unlock(&inode->i_lock);
return 0;
}

static void wake_up_session_caps(struct ceph_mds_session *session)
{
dout("wake_up_session_caps %p mds%d\n", session, session->s_mds);
iterate_session_caps(session, wake_up_session_cb, session);
iterate_session_caps(session, wake_up_session_cb, NULL);
}

/*
Expand Down Expand Up @@ -2052,7 +2040,6 @@ static void send_mds_reconnect(struct ceph_mds_client *mdsc, int mds)

session->s_state = CEPH_MDS_SESSION_RECONNECTING;
session->s_seq = 0;
session->s_recon_gen++;

ceph_con_open(&session->s_con,
ceph_mdsmap_get_addr(mdsc->mdsmap, mds));
Expand Down
2 changes: 0 additions & 2 deletions fs/ceph/mds_client.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,6 @@ struct ceph_mds_session {
u64 s_seq; /* incoming msg seq # */
struct mutex s_mutex; /* serialize session messages */

int s_recon_gen; /* inc on reconnect to recovered mds */

struct ceph_connection s_con;

/* protected by s_cap_lock */
Expand Down
1 change: 0 additions & 1 deletion fs/ceph/super.h
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,6 @@ struct ceph_cap {
int mds_wanted;
u32 seq, issue_seq, mseq;
u32 cap_gen; /* active/stale cycle */
u32 recon_gen; /* mds restart reconnect cycle */
unsigned long last_used;
struct list_head caps_item;
};
Expand Down

0 comments on commit cdac830

Please sign in to comment.