Skip to content

Commit b0efc93

Browse files
jtlaytongregkh
authored andcommitted
ceph: add some lockdep assertions around snaprealm handling
commit a6862e6 upstream. Turn some comments into lockdep asserts. Signed-off-by: Jeff Layton <jlayton@kernel.org> Reviewed-by: Ilya Dryomov <idryomov@gmail.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent dcdb587 commit b0efc93

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

fs/ceph/snap.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@
6565
void ceph_get_snap_realm(struct ceph_mds_client *mdsc,
6666
struct ceph_snap_realm *realm)
6767
{
68+
lockdep_assert_held_write(&mdsc->snap_rwsem);
69+
6870
dout("get_realm %p %d -> %d\n", realm,
6971
atomic_read(&realm->nref), atomic_read(&realm->nref)+1);
7072
/*
@@ -113,6 +115,8 @@ static struct ceph_snap_realm *ceph_create_snap_realm(
113115
{
114116
struct ceph_snap_realm *realm;
115117

118+
lockdep_assert_held_write(&mdsc->snap_rwsem);
119+
116120
realm = kzalloc(sizeof(*realm), GFP_NOFS);
117121
if (!realm)
118122
return ERR_PTR(-ENOMEM);
@@ -143,6 +147,8 @@ static struct ceph_snap_realm *__lookup_snap_realm(struct ceph_mds_client *mdsc,
143147
struct rb_node *n = mdsc->snap_realms.rb_node;
144148
struct ceph_snap_realm *r;
145149

150+
lockdep_assert_held_write(&mdsc->snap_rwsem);
151+
146152
while (n) {
147153
r = rb_entry(n, struct ceph_snap_realm, node);
148154
if (ino < r->ino)
@@ -176,6 +182,8 @@ static void __put_snap_realm(struct ceph_mds_client *mdsc,
176182
static void __destroy_snap_realm(struct ceph_mds_client *mdsc,
177183
struct ceph_snap_realm *realm)
178184
{
185+
lockdep_assert_held_write(&mdsc->snap_rwsem);
186+
179187
dout("__destroy_snap_realm %p %llx\n", realm, realm->ino);
180188

181189
rb_erase(&realm->node, &mdsc->snap_realms);
@@ -198,6 +206,8 @@ static void __destroy_snap_realm(struct ceph_mds_client *mdsc,
198206
static void __put_snap_realm(struct ceph_mds_client *mdsc,
199207
struct ceph_snap_realm *realm)
200208
{
209+
lockdep_assert_held_write(&mdsc->snap_rwsem);
210+
201211
dout("__put_snap_realm %llx %p %d -> %d\n", realm->ino, realm,
202212
atomic_read(&realm->nref), atomic_read(&realm->nref)-1);
203213
if (atomic_dec_and_test(&realm->nref))
@@ -236,6 +246,8 @@ static void __cleanup_empty_realms(struct ceph_mds_client *mdsc)
236246
{
237247
struct ceph_snap_realm *realm;
238248

249+
lockdep_assert_held_write(&mdsc->snap_rwsem);
250+
239251
spin_lock(&mdsc->snap_empty_lock);
240252
while (!list_empty(&mdsc->snap_empty)) {
241253
realm = list_first_entry(&mdsc->snap_empty,
@@ -269,6 +281,8 @@ static int adjust_snap_realm_parent(struct ceph_mds_client *mdsc,
269281
{
270282
struct ceph_snap_realm *parent;
271283

284+
lockdep_assert_held_write(&mdsc->snap_rwsem);
285+
272286
if (realm->parent_ino == parentino)
273287
return 0;
274288

@@ -686,6 +700,8 @@ int ceph_update_snap_trace(struct ceph_mds_client *mdsc,
686700
int err = -ENOMEM;
687701
LIST_HEAD(dirty_realms);
688702

703+
lockdep_assert_held_write(&mdsc->snap_rwsem);
704+
689705
dout("update_snap_trace deletion=%d\n", deletion);
690706
more:
691707
ceph_decode_need(&p, e, sizeof(*ri), bad);

0 commit comments

Comments
 (0)