Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3d8eb7a9 authored by Sage Weil's avatar Sage Weil
Browse files

ceph: remove unnecessary d_fsdata conditional checks



We now set d_fsdata unconditionally on all dentries prior to setting up
the d_ops, so all of these checks are unnecessary.

Signed-off-by: default avatarSage Weil <sage@newdream.net>
parent 18648256
Loading
Loading
Loading
Loading
+20 −28
Original line number Diff line number Diff line
@@ -973,7 +973,7 @@ static int dentry_lease_is_valid(struct dentry *dentry)

	spin_lock(&dentry->d_lock);
	di = ceph_dentry(dentry);
	if (di && di->lease_session) {
	if (di->lease_session) {
		s = di->lease_session;
		spin_lock(&s->s_cap_lock);
		gen = s->s_cap_gen;
@@ -1072,14 +1072,12 @@ static void ceph_d_release(struct dentry *dentry)
	struct ceph_dentry_info *di = ceph_dentry(dentry);

	dout("d_release %p\n", dentry);
	if (di) {
	ceph_dentry_lru_del(dentry);
	if (di->lease_session)
		ceph_put_mds_session(di->lease_session);
	kmem_cache_free(ceph_dentry_cachep, di);
	dentry->d_fsdata = NULL;
}
}

static int ceph_snapdir_d_revalidate(struct dentry *dentry,
					  struct nameidata *nd)
@@ -1259,14 +1257,12 @@ void ceph_dentry_lru_add(struct dentry *dn)

	dout("dentry_lru_add %p %p '%.*s'\n", di, dn,
	     dn->d_name.len, dn->d_name.name);
	if (di) {
	mdsc = ceph_sb_to_client(dn->d_sb)->mdsc;
	spin_lock(&mdsc->dentry_lru_lock);
	list_add_tail(&di->lru, &mdsc->dentry_lru);
	mdsc->num_dentry++;
	spin_unlock(&mdsc->dentry_lru_lock);
}
}

void ceph_dentry_lru_touch(struct dentry *dn)
{
@@ -1275,13 +1271,11 @@ void ceph_dentry_lru_touch(struct dentry *dn)

	dout("dentry_lru_touch %p %p '%.*s' (offset %lld)\n", di, dn,
	     dn->d_name.len, dn->d_name.name, di->offset);
	if (di) {
	mdsc = ceph_sb_to_client(dn->d_sb)->mdsc;
	spin_lock(&mdsc->dentry_lru_lock);
	list_move_tail(&di->lru, &mdsc->dentry_lru);
	spin_unlock(&mdsc->dentry_lru_lock);
}
}

void ceph_dentry_lru_del(struct dentry *dn)
{
@@ -1290,14 +1284,12 @@ void ceph_dentry_lru_del(struct dentry *dn)

	dout("dentry_lru_del %p %p '%.*s'\n", di, dn,
	     dn->d_name.len, dn->d_name.name);
	if (di) {
	mdsc = ceph_sb_to_client(dn->d_sb)->mdsc;
	spin_lock(&mdsc->dentry_lru_lock);
	list_del_init(&di->lru);
	mdsc->num_dentry--;
	spin_unlock(&mdsc->dentry_lru_lock);
}
}

/*
 * Return name hash for a given dentry.  This is dependent on
+2 −2
Original line number Diff line number Diff line
@@ -2772,7 +2772,7 @@ static void handle_lease(struct ceph_mds_client *mdsc,
	di = ceph_dentry(dentry);
	switch (h->action) {
	case CEPH_MDS_LEASE_REVOKE:
		if (di && di->lease_session == session) {
		if (di->lease_session == session) {
			if (ceph_seq_cmp(di->lease_seq, seq) > 0)
				h->seq = cpu_to_le32(di->lease_seq);
			__ceph_mdsc_drop_dentry_lease(dentry);
@@ -2781,7 +2781,7 @@ static void handle_lease(struct ceph_mds_client *mdsc,
		break;

	case CEPH_MDS_LEASE_RENEW:
		if (di && di->lease_session == session &&
		if (di->lease_session == session &&
		    di->lease_gen == session->s_cap_gen &&
		    di->lease_renew_from &&
		    di->lease_renew_after == 0) {