On 8/23/26 7:00 PM, Yu Kuai wrote:
@@ -111,10 +104,15 @@ struct blkcg {
        /*
         * List of updated percpu blkg_iostat_set's since the last flush.
         */
        struct llist_head __percpu      *lhead;
+#ifdef CONFIG_BLK_CGROUP_PUNT_BIO
+       spinlock_t                      async_bio_lock; /* protects async_bios 
*/
+       struct bio_list                 async_bios;
+       struct work_struct              async_bio_work;
+#endif
  #ifdef CONFIG_BLK_CGROUP_FC_APPID
        char                            fc_app_id[FC_APPID_LEN];
  #endif
  #ifdef CONFIG_CGROUP_WRITEBACK
        struct list_head                cgwb_list;

As I mentioned, Clang context annotations are now officially supported
in the block layer. Since you're touching this code, I suggest annotating
async_bios with __guarded_by(&async_bio_lock) as well.

This would allow the Clang thread-safety analyzer to verify that every
access to async_bios is properly protected by async_bio_lock.

Thanks,
--Nilay

Reply via email to