diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2012-09-05 08:32:53 -0400 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2012-09-28 01:35:14 -0400 |
commit | f22cf8eb485260ac6e32a614121d44998d83a69a (patch) | |
tree | 9dd48f6f12bff4615f4c1a8eff8cdb13b2175ee6 /drivers/block/virtio_blk.c | |
parent | c85a1f91b393a6c0c2ad382ba59d7618b29ab758 (diff) |
virtio-blk: fix NULL checking in virtblk_alloc_req()
Smatch complains about the inconsistent NULL checking here. Fix it to
return NULL on failure.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (fixed accidental deletion)
Diffstat (limited to 'drivers/block/virtio_blk.c')
-rw-r--r-- | drivers/block/virtio_blk.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c index 2edfb5cef4f2..53b81d59059b 100644 --- a/drivers/block/virtio_blk.c +++ b/drivers/block/virtio_blk.c | |||
@@ -90,10 +90,12 @@ static inline struct virtblk_req *virtblk_alloc_req(struct virtio_blk *vblk, | |||
90 | struct virtblk_req *vbr; | 90 | struct virtblk_req *vbr; |
91 | 91 | ||
92 | vbr = mempool_alloc(vblk->pool, gfp_mask); | 92 | vbr = mempool_alloc(vblk->pool, gfp_mask); |
93 | if (vbr && use_bio) | 93 | if (!vbr) |
94 | sg_init_table(vbr->sg, vblk->sg_elems); | 94 | return NULL; |
95 | 95 | ||
96 | vbr->vblk = vblk; | 96 | vbr->vblk = vblk; |
97 | if (use_bio) | ||
98 | sg_init_table(vbr->sg, vblk->sg_elems); | ||
97 | 99 | ||
98 | return vbr; | 100 | return vbr; |
99 | } | 101 | } |