diff options
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-throttle.c | 2 | ||||
-rw-r--r-- | block/bsg.c | 8 | ||||
-rw-r--r-- | block/compat_ioctl.c | 1 | ||||
-rw-r--r-- | block/ioctl.c | 1 |
4 files changed, 9 insertions, 3 deletions
diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 56ad453..004be80 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -645,7 +645,7 @@ static int throtl_dispatch_tg(struct throtl_data *td, struct throtl_grp *tg, { unsigned int nr_reads = 0, nr_writes = 0; unsigned int max_nr_reads = throtl_grp_quantum*3/4; - unsigned int max_nr_writes = throtl_grp_quantum - nr_reads; + unsigned int max_nr_writes = throtl_grp_quantum - max_nr_reads; struct bio *bio; /* Try to dispatch 75% READS and 25% WRITES */ diff --git a/block/bsg.c b/block/bsg.c index f20d6a7..0c8b64a 100644 --- a/block/bsg.c +++ b/block/bsg.c @@ -250,6 +250,14 @@ bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr, fmode_t has_write_perm, int ret, rw; unsigned int dxfer_len; void *dxferp = NULL; + struct bsg_class_device *bcd = &q->bsg_dev; + + /* if the LLD has been removed then the bsg_unregister_queue will + * eventually be called and the class_dev was freed, so we can no + * longer use this request_queue. Return no such address. + */ + if (!bcd->class_dev) + return ERR_PTR(-ENXIO); dprintk("map hdr %llx/%u %llx/%u\n", (unsigned long long) hdr->dout_xferp, hdr->dout_xfer_len, (unsigned long long) hdr->din_xferp, diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c index 58c6ee5b..cc3eb78 100644 --- a/block/compat_ioctl.c +++ b/block/compat_ioctl.c @@ -8,7 +8,6 @@ #include <linux/hdreg.h> #include <linux/slab.h> #include <linux/syscalls.h> -#include <linux/smp_lock.h> #include <linux/types.h> #include <linux/uaccess.h> diff --git a/block/ioctl.c b/block/ioctl.c index 3d866d0..a9a302e 100644 --- a/block/ioctl.c +++ b/block/ioctl.c @@ -5,7 +5,6 @@ #include <linux/hdreg.h> #include <linux/backing-dev.h> #include <linux/buffer_head.h> -#include <linux/smp_lock.h> #include <linux/blktrace_api.h> #include <asm/uaccess.h> |