Skip to content

Commit 7e65624

Browse files
jtlaytonidryomov
authored andcommitted
ceph: allow ceph_put_mds_session to take NULL or ERR_PTR
...to simplify some error paths. Signed-off-by: Jeff Layton <jlayton@kernel.org> Reviewed-by: Luis Henriques <lhenriques@suse.de> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
1 parent df2c0cb commit 7e65624

4 files changed

Lines changed: 8 additions & 10 deletions

File tree

fs/ceph/dir.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1809,8 +1809,7 @@ static void ceph_d_release(struct dentry *dentry)
18091809
dentry->d_fsdata = NULL;
18101810
spin_unlock(&dentry->d_lock);
18111811

1812-
if (di->lease_session)
1813-
ceph_put_mds_session(di->lease_session);
1812+
ceph_put_mds_session(di->lease_session);
18141813
kmem_cache_free(ceph_dentry_cachep, di);
18151814
}
18161815

fs/ceph/inode.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1154,8 +1154,7 @@ static inline void update_dentry_lease(struct inode *dir, struct dentry *dentry,
11541154
__update_dentry_lease(dir, dentry, lease, session, from_time,
11551155
&old_lease_session);
11561156
spin_unlock(&dentry->d_lock);
1157-
if (old_lease_session)
1158-
ceph_put_mds_session(old_lease_session);
1157+
ceph_put_mds_session(old_lease_session);
11591158
}
11601159

11611160
/*
@@ -1200,8 +1199,7 @@ static void update_dentry_lease_careful(struct dentry *dentry,
12001199
from_time, &old_lease_session);
12011200
out_unlock:
12021201
spin_unlock(&dentry->d_lock);
1203-
if (old_lease_session)
1204-
ceph_put_mds_session(old_lease_session);
1202+
ceph_put_mds_session(old_lease_session);
12051203
}
12061204

12071205
/*

fs/ceph/mds_client.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,9 @@ struct ceph_mds_session *ceph_get_mds_session(struct ceph_mds_session *s)
664664

665665
void ceph_put_mds_session(struct ceph_mds_session *s)
666666
{
667+
if (IS_ERR_OR_NULL(s))
668+
return;
669+
667670
dout("mdsc put_session %p %d -> %d\n", s,
668671
refcount_read(&s->s_ref), refcount_read(&s->s_ref)-1);
669672
if (refcount_dec_and_test(&s->s_ref)) {
@@ -1438,8 +1441,7 @@ static void __open_export_target_sessions(struct ceph_mds_client *mdsc,
14381441

14391442
for (i = 0; i < mi->num_export_targets; i++) {
14401443
ts = __open_export_target_session(mdsc, mi->export_targets[i]);
1441-
if (!IS_ERR(ts))
1442-
ceph_put_mds_session(ts);
1444+
ceph_put_mds_session(ts);
14431445
}
14441446
}
14451447

fs/ceph/metric.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,7 @@ void ceph_metric_destroy(struct ceph_client_metric *m)
311311

312312
cancel_delayed_work_sync(&m->delayed_work);
313313

314-
if (m->session)
315-
ceph_put_mds_session(m->session);
314+
ceph_put_mds_session(m->session);
316315
}
317316

318317
#define METRIC_UPDATE_MIN_MAX(min, max, new) \

0 commit comments

Comments
 (0)