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: Sage Weil <sage@newdream.net>
This commit is contained in:
parent
186482560f
commit
3d8eb7a94e
2 changed files with 22 additions and 30 deletions
|
@ -973,7 +973,7 @@ static int dentry_lease_is_valid(struct dentry *dentry)
|
||||||
|
|
||||||
spin_lock(&dentry->d_lock);
|
spin_lock(&dentry->d_lock);
|
||||||
di = ceph_dentry(dentry);
|
di = ceph_dentry(dentry);
|
||||||
if (di && di->lease_session) {
|
if (di->lease_session) {
|
||||||
s = di->lease_session;
|
s = di->lease_session;
|
||||||
spin_lock(&s->s_cap_lock);
|
spin_lock(&s->s_cap_lock);
|
||||||
gen = s->s_cap_gen;
|
gen = s->s_cap_gen;
|
||||||
|
@ -1072,13 +1072,11 @@ static void ceph_d_release(struct dentry *dentry)
|
||||||
struct ceph_dentry_info *di = ceph_dentry(dentry);
|
struct ceph_dentry_info *di = ceph_dentry(dentry);
|
||||||
|
|
||||||
dout("d_release %p\n", dentry);
|
dout("d_release %p\n", dentry);
|
||||||
if (di) {
|
ceph_dentry_lru_del(dentry);
|
||||||
ceph_dentry_lru_del(dentry);
|
if (di->lease_session)
|
||||||
if (di->lease_session)
|
ceph_put_mds_session(di->lease_session);
|
||||||
ceph_put_mds_session(di->lease_session);
|
kmem_cache_free(ceph_dentry_cachep, di);
|
||||||
kmem_cache_free(ceph_dentry_cachep, di);
|
dentry->d_fsdata = NULL;
|
||||||
dentry->d_fsdata = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ceph_snapdir_d_revalidate(struct dentry *dentry,
|
static int ceph_snapdir_d_revalidate(struct dentry *dentry,
|
||||||
|
@ -1259,13 +1257,11 @@ void ceph_dentry_lru_add(struct dentry *dn)
|
||||||
|
|
||||||
dout("dentry_lru_add %p %p '%.*s'\n", di, dn,
|
dout("dentry_lru_add %p %p '%.*s'\n", di, dn,
|
||||||
dn->d_name.len, dn->d_name.name);
|
dn->d_name.len, dn->d_name.name);
|
||||||
if (di) {
|
mdsc = ceph_sb_to_client(dn->d_sb)->mdsc;
|
||||||
mdsc = ceph_sb_to_client(dn->d_sb)->mdsc;
|
spin_lock(&mdsc->dentry_lru_lock);
|
||||||
spin_lock(&mdsc->dentry_lru_lock);
|
list_add_tail(&di->lru, &mdsc->dentry_lru);
|
||||||
list_add_tail(&di->lru, &mdsc->dentry_lru);
|
mdsc->num_dentry++;
|
||||||
mdsc->num_dentry++;
|
spin_unlock(&mdsc->dentry_lru_lock);
|
||||||
spin_unlock(&mdsc->dentry_lru_lock);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ceph_dentry_lru_touch(struct dentry *dn)
|
void ceph_dentry_lru_touch(struct dentry *dn)
|
||||||
|
@ -1275,12 +1271,10 @@ void ceph_dentry_lru_touch(struct dentry *dn)
|
||||||
|
|
||||||
dout("dentry_lru_touch %p %p '%.*s' (offset %lld)\n", di, dn,
|
dout("dentry_lru_touch %p %p '%.*s' (offset %lld)\n", di, dn,
|
||||||
dn->d_name.len, dn->d_name.name, di->offset);
|
dn->d_name.len, dn->d_name.name, di->offset);
|
||||||
if (di) {
|
mdsc = ceph_sb_to_client(dn->d_sb)->mdsc;
|
||||||
mdsc = ceph_sb_to_client(dn->d_sb)->mdsc;
|
spin_lock(&mdsc->dentry_lru_lock);
|
||||||
spin_lock(&mdsc->dentry_lru_lock);
|
list_move_tail(&di->lru, &mdsc->dentry_lru);
|
||||||
list_move_tail(&di->lru, &mdsc->dentry_lru);
|
spin_unlock(&mdsc->dentry_lru_lock);
|
||||||
spin_unlock(&mdsc->dentry_lru_lock);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ceph_dentry_lru_del(struct dentry *dn)
|
void ceph_dentry_lru_del(struct dentry *dn)
|
||||||
|
@ -1290,13 +1284,11 @@ void ceph_dentry_lru_del(struct dentry *dn)
|
||||||
|
|
||||||
dout("dentry_lru_del %p %p '%.*s'\n", di, dn,
|
dout("dentry_lru_del %p %p '%.*s'\n", di, dn,
|
||||||
dn->d_name.len, dn->d_name.name);
|
dn->d_name.len, dn->d_name.name);
|
||||||
if (di) {
|
mdsc = ceph_sb_to_client(dn->d_sb)->mdsc;
|
||||||
mdsc = ceph_sb_to_client(dn->d_sb)->mdsc;
|
spin_lock(&mdsc->dentry_lru_lock);
|
||||||
spin_lock(&mdsc->dentry_lru_lock);
|
list_del_init(&di->lru);
|
||||||
list_del_init(&di->lru);
|
mdsc->num_dentry--;
|
||||||
mdsc->num_dentry--;
|
spin_unlock(&mdsc->dentry_lru_lock);
|
||||||
spin_unlock(&mdsc->dentry_lru_lock);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -2772,7 +2772,7 @@ static void handle_lease(struct ceph_mds_client *mdsc,
|
||||||
di = ceph_dentry(dentry);
|
di = ceph_dentry(dentry);
|
||||||
switch (h->action) {
|
switch (h->action) {
|
||||||
case CEPH_MDS_LEASE_REVOKE:
|
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)
|
if (ceph_seq_cmp(di->lease_seq, seq) > 0)
|
||||||
h->seq = cpu_to_le32(di->lease_seq);
|
h->seq = cpu_to_le32(di->lease_seq);
|
||||||
__ceph_mdsc_drop_dentry_lease(dentry);
|
__ceph_mdsc_drop_dentry_lease(dentry);
|
||||||
|
@ -2781,7 +2781,7 @@ static void handle_lease(struct ceph_mds_client *mdsc,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CEPH_MDS_LEASE_RENEW:
|
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_gen == session->s_cap_gen &&
|
||||||
di->lease_renew_from &&
|
di->lease_renew_from &&
|
||||||
di->lease_renew_after == 0) {
|
di->lease_renew_after == 0) {
|
||||||
|
|
Loading…
Reference in a new issue