6565void 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,
176182static 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,
198206static 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 );
690706more :
691707 ceph_decode_need (& p , e , sizeof (* ri ), bad );
0 commit comments