aboutsummaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorKevin Hilman <khilman@linaro.org>2015-08-14 09:31:17 -0700
committerKevin Hilman <khilman@linaro.org>2015-08-14 09:31:17 -0700
commitb7be2a1de3f5c0827a4f8ccb6a18342d9d4dc446 (patch)
tree7761d178103d5b37a2784dd13cb402474a573cfe /block
parent6285098f212ef8d8f05a69f0e3a7d4f421dd0ed7 (diff)
parent352cb8677f83a6cf2139151578c8c79785d2d4bf (diff)
Merge tag 'v4.1.5' into linux-linaro-lsk-v4.1lsk-v4.1-15.08
This is the 4.1.5 stable release * tag 'v4.1.5': (124 commits) Linux 4.1.5 perf symbols: Store if there is a filter in place xfs: remote attributes need to be considered data xfs: remote attribute headers contain an invalid LSN drm/nouveau/drm/nv04-nv40/instmem: protect access to priv->heap by mutex drm/nouveau: hold mutex when calling nouveau_abi16_fini() drm/nouveau/kms/nv50-: guard against enabling cursor on disabled heads drm/nouveau/fbcon/nv11-: correctly account for ring space usage qla2xxx: kill sessions/log out initiator on RSCN and port down events qla2xxx: fix command initialization in target mode. qla2xxx: Remove msleep in qlt_send_term_exchange qla2xxx: release request queue reservation. qla2xxx: Fix hardware lock/unlock issue causing kernel panic. intel_pstate: Add get_scaling cpu_defaults param to Knights Landing iscsi-target: Fix iser explicit logout TX kthread leak iscsi-target: Fix iscsit_start_kthreads failure OOPs iscsi-target: Fix use-after-free during TPG session shutdown IB/ipoib: Fix CONFIG_INFINIBAND_IPOIB_CM NFS: Fix a memory leak in nfs_do_recoalesce NFSv4: We must set NFS_OPEN_STATE flag in nfs_resync_open_stateid_locked ...
Diffstat (limited to 'block')
-rw-r--r--block/bio-integrity.c4
-rw-r--r--block/blk-cgroup.c6
-rw-r--r--block/blk-mq.c2
3 files changed, 8 insertions, 4 deletions
diff --git a/block/bio-integrity.c b/block/bio-integrity.c
index 5cbd5d9ea61d..39ce74d10e2b 100644
--- a/block/bio-integrity.c
+++ b/block/bio-integrity.c
@@ -51,7 +51,7 @@ struct bio_integrity_payload *bio_integrity_alloc(struct bio *bio,
unsigned long idx = BIO_POOL_NONE;
unsigned inline_vecs;
- if (!bs) {
+ if (!bs || !bs->bio_integrity_pool) {
bip = kmalloc(sizeof(struct bio_integrity_payload) +
sizeof(struct bio_vec) * nr_vecs, gfp_mask);
inline_vecs = nr_vecs;
@@ -104,7 +104,7 @@ void bio_integrity_free(struct bio *bio)
kfree(page_address(bip->bip_vec->bv_page) +
bip->bip_vec->bv_offset);
- if (bs) {
+ if (bs && bs->bio_integrity_pool) {
if (bip->bip_slab != BIO_POOL_NONE)
bvec_free(bs->bvec_integrity_pool, bip->bip_vec,
bip->bip_slab);
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 0ac817b750db..6817e28960b7 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -716,8 +716,12 @@ int blkg_conf_prep(struct blkcg *blkcg, const struct blkcg_policy *pol,
return -EINVAL;
disk = get_gendisk(MKDEV(major, minor), &part);
- if (!disk || part)
+ if (!disk)
return -EINVAL;
+ if (part) {
+ put_disk(disk);
+ return -EINVAL;
+ }
rcu_read_lock();
spin_lock_irq(disk->queue->queue_lock);
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 594eea04266e..2dc1fd6c5bdb 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -1968,7 +1968,7 @@ struct request_queue *blk_mq_init_allocated_queue(struct blk_mq_tag_set *set,
goto err_hctxs;
setup_timer(&q->timeout, blk_mq_rq_timer, (unsigned long) q);
- blk_queue_rq_timeout(q, set->timeout ? set->timeout : 30000);
+ blk_queue_rq_timeout(q, set->timeout ? set->timeout : 30 * HZ);
q->nr_queues = nr_cpu_ids;
q->nr_hw_queues = set->nr_hw_queues;