block-6.4-2023-06-23
-----BEGIN PGP SIGNATURE----- iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmSV6V8QHGF4Ym9lQGtl cm5lbC5kawAKCRD301j7KXHgpvpJD/sFGQR0VxS/caVRLX7+M/dYX7HwIduxIbwG RkgPXuOf2hnNs6QoD076n8fgOxgYfR66NyShTMaqMAloqmEaUE69CzhMBAs8SooD lhyJ7a+hiu60nQQgD8+OHRgTiLuZvmK7taj9CYnSUoMy5wd6bcKu37Tl1FWA3jJW Ni/3KpSWQpuuzeHiDqGdypQ35ZbVDjXeI9KPnCyp8wV23eLDjD+slvJAOyFls/zR YDkGuIo60kXa0kxWTOQJ7YBogCSv3soSTN439/Ad0i8r/FxE68nE07c9WBZPkJiW FMYGnFrglmorvSyWMh7GmpyUlcJO3CIrw6wfrdtu5zoqe6vfw7SLcb+kD/uoJ8cg Zb46cCvN3GtYAc65wj+Cjef5h6MoUIvMQTA7Xlf+62iyQhuOO6mqRQCkhQ+Hhf9m bvg3tdr9wavkZZ/lgNHOcfzBSfxXWoOw8kMFF93e7tnlH2CUrBDGuSU0i6uaczFl 5ZltgI6iiUIi0GKdSsp+9fEw9LJ7Fr0hEPtFpIrqNDgqRfT6iJV3oRop7k2X2M5q QKyq1YBbMCVV9i/+M8j/CiNhKeSqky3t3m3luKHt5YygK9ASZke+dUp4Qppo0hcS vWMfuhYqbp+2KaabAOnze2yeuqgg1+KhYsxoS6cdR+t896c1OlBoEpgJYg7kR7LQ 2WZ6plrCOQ== =/Ecx -----END PGP SIGNATURE----- Merge tag 'block-6.4-2023-06-23' of git://git.kernel.dk/linux Pull block fix from Jens Axboe: "It's apparently the week of 'fixup something from last week', because the same is true for this block pull request. Fix up a lock grab that needs to be IRQ saving, rather than just IRQ disabling, in the block cgroup code" * tag 'block-6.4-2023-06-23' of git://git.kernel.dk/linux: block: make sure local irq is disabled when calling __blkcg_rstat_flush
This commit is contained in:
commit
9cb38381ba
|
@ -970,6 +970,7 @@ static void __blkcg_rstat_flush(struct blkcg *blkcg, int cpu)
|
|||
struct llist_head *lhead = per_cpu_ptr(blkcg->lhead, cpu);
|
||||
struct llist_node *lnode;
|
||||
struct blkg_iostat_set *bisc, *next_bisc;
|
||||
unsigned long flags;
|
||||
|
||||
rcu_read_lock();
|
||||
|
||||
|
@ -983,7 +984,7 @@ static void __blkcg_rstat_flush(struct blkcg *blkcg, int cpu)
|
|||
* When flushing from cgroup, cgroup_rstat_lock is always held, so
|
||||
* this lock won't cause contention most of time.
|
||||
*/
|
||||
raw_spin_lock(&blkg_stat_lock);
|
||||
raw_spin_lock_irqsave(&blkg_stat_lock, flags);
|
||||
|
||||
/*
|
||||
* Iterate only the iostat_cpu's queued in the lockless list.
|
||||
|
@ -1009,7 +1010,7 @@ static void __blkcg_rstat_flush(struct blkcg *blkcg, int cpu)
|
|||
blkcg_iostat_update(parent, &blkg->iostat.cur,
|
||||
&blkg->iostat.last);
|
||||
}
|
||||
raw_spin_unlock(&blkg_stat_lock);
|
||||
raw_spin_unlock_irqrestore(&blkg_stat_lock, flags);
|
||||
out:
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue