mirror of https://gitee.com/openkylin/linux.git
block-5.6-2020-03-07
-----BEGIN PGP SIGNATURE----- iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAl5j8hwQHGF4Ym9lQGtl cm5lbC5kawAKCRD301j7KXHgpnjID/4/XVrqtVNUzVoVOtkOyxyesBrJVMHEQEpJ PZssv835IStw0ENhxQJfGjPaIFc9Ff6PMkeN5KRAlMoEc+NkrJShF3owGf+6Bps7 rxpblPxaw+CJFa31YBDZVjMCvbVkDm40G5SsJh+xzdIjlWz7MppkkMPdrErPwY8V 0vnrIc+mKBKfBMZTwVkycYtp17LVgfXguledoWzxM1y47IW5UasKh8jdzhbu8Hvt zztdQrigUdb+9XnLGCZIY0JQOyrhJ5zQpZ40FzbvxdYrQZXOoYT8L7iFu/z0Wi7K p3a+G+B4WowtLYW78me4Uut5RrHq2XOehSypfujanQlpgXPGjS3TdHT3an2T8XPQ NyGsZsn/eLm3btNbhGUd8vqpQy5EmWhqmwvYk9tFAoSFLiLcvCC624b/TCYPL+gk 3ZiI7mXBMjHnUZ0J/RF6kZWTAZDvr/tE7UZt1f8r1eEr8VDzCNp5Pst+HCVIguYD g9eWF8oH6wYoj39UKf1k+vW2GjXGFsnfivObaxhyz03sAPXK2wQlzAe/4jZ24XNr TRtOXh97c3CbLAwdUHehlzzdR3U7h0n2KsmrTC5AGmLABmR79s7BJ0+pexuZituO LwU8+gpf7AugHTrLg1eNXAmBHW44I1ticXYiWcT4iSPn99kNIhlW+Jb1iTGoiu7n nXyS3b5SCw== =xwKl -----END PGP SIGNATURE----- Merge tag 'block-5.6-2020-03-07' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: "Here are a few fixes that should go into this release. This contains: - Revert of a bad bcache patch from this merge window - Removed unused function (Daniel) - Fixup for the blktrace fix from Jan from this release (Cengiz) - Fix of deeper level bfqq overwrite in BFQ (Carlo)" * tag 'block-5.6-2020-03-07' of git://git.kernel.dk/linux-block: block, bfq: fix overwrite of bfq_group pointer in bfq_find_set_group() blktrace: fix dereference after null check Revert "bcache: ignore pending signals when creating gc and allocator thread" block: Remove used kblockd_schedule_work_on()
This commit is contained in:
commit
5dfcc13902
|
@ -610,12 +610,13 @@ struct bfq_group *bfq_find_set_group(struct bfq_data *bfqd,
|
|||
*/
|
||||
entity = &bfqg->entity;
|
||||
for_each_entity(entity) {
|
||||
bfqg = container_of(entity, struct bfq_group, entity);
|
||||
if (bfqg != bfqd->root_group) {
|
||||
parent = bfqg_parent(bfqg);
|
||||
struct bfq_group *curr_bfqg = container_of(entity,
|
||||
struct bfq_group, entity);
|
||||
if (curr_bfqg != bfqd->root_group) {
|
||||
parent = bfqg_parent(curr_bfqg);
|
||||
if (!parent)
|
||||
parent = bfqd->root_group;
|
||||
bfq_group_set_parent(bfqg, parent);
|
||||
bfq_group_set_parent(curr_bfqg, parent);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1663,12 +1663,6 @@ int kblockd_schedule_work(struct work_struct *work)
|
|||
}
|
||||
EXPORT_SYMBOL(kblockd_schedule_work);
|
||||
|
||||
int kblockd_schedule_work_on(int cpu, struct work_struct *work)
|
||||
{
|
||||
return queue_work_on(cpu, kblockd_workqueue, work);
|
||||
}
|
||||
EXPORT_SYMBOL(kblockd_schedule_work_on);
|
||||
|
||||
int kblockd_mod_delayed_work_on(int cpu, struct delayed_work *dwork,
|
||||
unsigned long delay)
|
||||
{
|
||||
|
|
|
@ -67,7 +67,6 @@
|
|||
#include <linux/blkdev.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/random.h>
|
||||
#include <linux/sched/signal.h>
|
||||
#include <trace/events/bcache.h>
|
||||
|
||||
#define MAX_OPEN_BUCKETS 128
|
||||
|
@ -734,21 +733,8 @@ int bch_open_buckets_alloc(struct cache_set *c)
|
|||
|
||||
int bch_cache_allocator_start(struct cache *ca)
|
||||
{
|
||||
struct task_struct *k;
|
||||
|
||||
/*
|
||||
* In case previous btree check operation occupies too many
|
||||
* system memory for bcache btree node cache, and the
|
||||
* registering process is selected by OOM killer. Here just
|
||||
* ignore the SIGKILL sent by OOM killer if there is, to
|
||||
* avoid kthread_run() being failed by pending signals. The
|
||||
* bcache registering process will exit after the registration
|
||||
* done.
|
||||
*/
|
||||
if (signal_pending(current))
|
||||
flush_signals(current);
|
||||
|
||||
k = kthread_run(bch_allocator_thread, ca, "bcache_allocator");
|
||||
struct task_struct *k = kthread_run(bch_allocator_thread,
|
||||
ca, "bcache_allocator");
|
||||
if (IS_ERR(k))
|
||||
return PTR_ERR(k);
|
||||
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
#include <linux/random.h>
|
||||
#include <linux/rcupdate.h>
|
||||
#include <linux/sched/clock.h>
|
||||
#include <linux/sched/signal.h>
|
||||
#include <linux/rculist.h>
|
||||
#include <linux/delay.h>
|
||||
#include <trace/events/bcache.h>
|
||||
|
@ -1914,18 +1913,6 @@ static int bch_gc_thread(void *arg)
|
|||
|
||||
int bch_gc_thread_start(struct cache_set *c)
|
||||
{
|
||||
/*
|
||||
* In case previous btree check operation occupies too many
|
||||
* system memory for bcache btree node cache, and the
|
||||
* registering process is selected by OOM killer. Here just
|
||||
* ignore the SIGKILL sent by OOM killer if there is, to
|
||||
* avoid kthread_run() being failed by pending signals. The
|
||||
* bcache registering process will exit after the registration
|
||||
* done.
|
||||
*/
|
||||
if (signal_pending(current))
|
||||
flush_signals(current);
|
||||
|
||||
c->gc_thread = kthread_run(bch_gc_thread, c, "bcache_gc");
|
||||
return PTR_ERR_OR_ZERO(c->gc_thread);
|
||||
}
|
||||
|
|
|
@ -1494,7 +1494,6 @@ static inline void put_dev_sector(Sector p)
|
|||
}
|
||||
|
||||
int kblockd_schedule_work(struct work_struct *work);
|
||||
int kblockd_schedule_work_on(int cpu, struct work_struct *work);
|
||||
int kblockd_mod_delayed_work_on(int cpu, struct delayed_work *dwork, unsigned long delay);
|
||||
|
||||
#define MODULE_ALIAS_BLOCKDEV(major,minor) \
|
||||
|
|
|
@ -1896,8 +1896,11 @@ static ssize_t sysfs_blk_trace_attr_store(struct device *dev,
|
|||
}
|
||||
|
||||
ret = 0;
|
||||
if (bt == NULL)
|
||||
if (bt == NULL) {
|
||||
ret = blk_trace_setup_queue(q, bdev);
|
||||
bt = rcu_dereference_protected(q->blk_trace,
|
||||
lockdep_is_held(&q->blk_trace_mutex));
|
||||
}
|
||||
|
||||
if (ret == 0) {
|
||||
if (attr == &dev_attr_act_mask)
|
||||
|
|
Loading…
Reference in New Issue