diff options
Diffstat (limited to 'block')
-rw-r--r-- | block/Kconfig | 6 | ||||
-rw-r--r-- | block/as-iosched.c | 7 | ||||
-rw-r--r-- | block/blktrace.c | 35 | ||||
-rw-r--r-- | block/cfq-iosched.c | 8 | ||||
-rw-r--r-- | block/ll_rw_blk.c | 8 | ||||
-rw-r--r-- | block/scsi_ioctl.c | 2 |
6 files changed, 32 insertions, 34 deletions
diff --git a/block/Kconfig b/block/Kconfig index 83766a6bdee2..a50f48111647 100644 --- a/block/Kconfig +++ b/block/Kconfig | |||
@@ -19,11 +19,9 @@ config BLOCK | |||
19 | 19 | ||
20 | if BLOCK | 20 | if BLOCK |
21 | 21 | ||
22 | #XXX - it makes sense to enable this only for 32-bit subarch's, not for x86_64 | ||
23 | #for instance. | ||
24 | config LBD | 22 | config LBD |
25 | bool "Support for Large Block Devices" | 23 | bool "Support for Large Block Devices" |
26 | depends on X86 || (MIPS && 32BIT) || PPC32 || (S390 && !64BIT) || SUPERH || UML | 24 | depends on !64BIT |
27 | help | 25 | help |
28 | Say Y here if you want to attach large (bigger than 2TB) discs to | 26 | Say Y here if you want to attach large (bigger than 2TB) discs to |
29 | your machine, or if you want to have a raid or loopback device | 27 | your machine, or if you want to have a raid or loopback device |
@@ -44,7 +42,7 @@ config BLK_DEV_IO_TRACE | |||
44 | 42 | ||
45 | config LSF | 43 | config LSF |
46 | bool "Support for Large Single Files" | 44 | bool "Support for Large Single Files" |
47 | depends on X86 || (MIPS && 32BIT) || PPC32 || ARCH_S390_31 || SUPERH || UML | 45 | depends on !64BIT |
48 | help | 46 | help |
49 | Say Y here if you want to be able to handle very large files (bigger | 47 | Say Y here if you want to be able to handle very large files (bigger |
50 | than 2TB), otherwise say N. | 48 | than 2TB), otherwise say N. |
diff --git a/block/as-iosched.c b/block/as-iosched.c index 00242111a457..5934c4bfd52a 100644 --- a/block/as-iosched.c +++ b/block/as-iosched.c | |||
@@ -1274,9 +1274,10 @@ static void as_merged_requests(request_queue_t *q, struct request *req, | |||
1274 | * | 1274 | * |
1275 | * FIXME! dispatch queue is not a queue at all! | 1275 | * FIXME! dispatch queue is not a queue at all! |
1276 | */ | 1276 | */ |
1277 | static void as_work_handler(void *data) | 1277 | static void as_work_handler(struct work_struct *work) |
1278 | { | 1278 | { |
1279 | struct request_queue *q = data; | 1279 | struct as_data *ad = container_of(work, struct as_data, antic_work); |
1280 | struct request_queue *q = ad->q; | ||
1280 | unsigned long flags; | 1281 | unsigned long flags; |
1281 | 1282 | ||
1282 | spin_lock_irqsave(q->queue_lock, flags); | 1283 | spin_lock_irqsave(q->queue_lock, flags); |
@@ -1332,7 +1333,7 @@ static void *as_init_queue(request_queue_t *q) | |||
1332 | ad->antic_timer.function = as_antic_timeout; | 1333 | ad->antic_timer.function = as_antic_timeout; |
1333 | ad->antic_timer.data = (unsigned long)q; | 1334 | ad->antic_timer.data = (unsigned long)q; |
1334 | init_timer(&ad->antic_timer); | 1335 | init_timer(&ad->antic_timer); |
1335 | INIT_WORK(&ad->antic_work, as_work_handler, q); | 1336 | INIT_WORK(&ad->antic_work, as_work_handler); |
1336 | 1337 | ||
1337 | INIT_LIST_HEAD(&ad->fifo_list[REQ_SYNC]); | 1338 | INIT_LIST_HEAD(&ad->fifo_list[REQ_SYNC]); |
1338 | INIT_LIST_HEAD(&ad->fifo_list[REQ_ASYNC]); | 1339 | INIT_LIST_HEAD(&ad->fifo_list[REQ_ASYNC]); |
diff --git a/block/blktrace.c b/block/blktrace.c index 562ca7cbf858..74e02c04b2da 100644 --- a/block/blktrace.c +++ b/block/blktrace.c | |||
@@ -31,26 +31,24 @@ static unsigned int blktrace_seq __read_mostly = 1; | |||
31 | /* | 31 | /* |
32 | * Send out a notify message. | 32 | * Send out a notify message. |
33 | */ | 33 | */ |
34 | static inline unsigned int trace_note(struct blk_trace *bt, | 34 | static void trace_note(struct blk_trace *bt, pid_t pid, int action, |
35 | pid_t pid, int action, | 35 | const void *data, size_t len) |
36 | const void *data, size_t len) | ||
37 | { | 36 | { |
38 | struct blk_io_trace *t; | 37 | struct blk_io_trace *t; |
39 | int cpu = smp_processor_id(); | ||
40 | 38 | ||
41 | t = relay_reserve(bt->rchan, sizeof(*t) + len); | 39 | t = relay_reserve(bt->rchan, sizeof(*t) + len); |
42 | if (t == NULL) | 40 | if (t) { |
43 | return 0; | 41 | const int cpu = smp_processor_id(); |
44 | 42 | ||
45 | t->magic = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION; | 43 | t->magic = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION; |
46 | t->time = sched_clock() - per_cpu(blk_trace_cpu_offset, cpu); | 44 | t->time = sched_clock() - per_cpu(blk_trace_cpu_offset, cpu); |
47 | t->device = bt->dev; | 45 | t->device = bt->dev; |
48 | t->action = action; | 46 | t->action = action; |
49 | t->pid = pid; | 47 | t->pid = pid; |
50 | t->cpu = cpu; | 48 | t->cpu = cpu; |
51 | t->pdu_len = len; | 49 | t->pdu_len = len; |
52 | memcpy((void *) t + sizeof(*t), data, len); | 50 | memcpy((void *) t + sizeof(*t), data, len); |
53 | return blktrace_seq; | 51 | } |
54 | } | 52 | } |
55 | 53 | ||
56 | /* | 54 | /* |
@@ -59,9 +57,8 @@ static inline unsigned int trace_note(struct blk_trace *bt, | |||
59 | */ | 57 | */ |
60 | static void trace_note_tsk(struct blk_trace *bt, struct task_struct *tsk) | 58 | static void trace_note_tsk(struct blk_trace *bt, struct task_struct *tsk) |
61 | { | 59 | { |
62 | tsk->btrace_seq = trace_note(bt, tsk->pid, | 60 | tsk->btrace_seq = blktrace_seq; |
63 | BLK_TN_PROCESS, | 61 | trace_note(bt, tsk->pid, BLK_TN_PROCESS, tsk->comm, sizeof(tsk->comm)); |
64 | tsk->comm, sizeof(tsk->comm)); | ||
65 | } | 62 | } |
66 | 63 | ||
67 | static void trace_note_time(struct blk_trace *bt) | 64 | static void trace_note_time(struct blk_trace *bt) |
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index e9019ed39b73..84e9be073180 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c | |||
@@ -1840,9 +1840,11 @@ queue_fail: | |||
1840 | return 1; | 1840 | return 1; |
1841 | } | 1841 | } |
1842 | 1842 | ||
1843 | static void cfq_kick_queue(void *data) | 1843 | static void cfq_kick_queue(struct work_struct *work) |
1844 | { | 1844 | { |
1845 | request_queue_t *q = data; | 1845 | struct cfq_data *cfqd = |
1846 | container_of(work, struct cfq_data, unplug_work); | ||
1847 | request_queue_t *q = cfqd->queue; | ||
1846 | unsigned long flags; | 1848 | unsigned long flags; |
1847 | 1849 | ||
1848 | spin_lock_irqsave(q->queue_lock, flags); | 1850 | spin_lock_irqsave(q->queue_lock, flags); |
@@ -1986,7 +1988,7 @@ static void *cfq_init_queue(request_queue_t *q) | |||
1986 | cfqd->idle_class_timer.function = cfq_idle_class_timer; | 1988 | cfqd->idle_class_timer.function = cfq_idle_class_timer; |
1987 | cfqd->idle_class_timer.data = (unsigned long) cfqd; | 1989 | cfqd->idle_class_timer.data = (unsigned long) cfqd; |
1988 | 1990 | ||
1989 | INIT_WORK(&cfqd->unplug_work, cfq_kick_queue, q); | 1991 | INIT_WORK(&cfqd->unplug_work, cfq_kick_queue); |
1990 | 1992 | ||
1991 | cfqd->cfq_quantum = cfq_quantum; | 1993 | cfqd->cfq_quantum = cfq_quantum; |
1992 | cfqd->cfq_fifo_expire[0] = cfq_fifo_expire[0]; | 1994 | cfqd->cfq_fifo_expire[0] = cfq_fifo_expire[0]; |
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c index 0f82e12f7b67..cc6e95f8e5d9 100644 --- a/block/ll_rw_blk.c +++ b/block/ll_rw_blk.c | |||
@@ -34,7 +34,7 @@ | |||
34 | */ | 34 | */ |
35 | #include <scsi/scsi_cmnd.h> | 35 | #include <scsi/scsi_cmnd.h> |
36 | 36 | ||
37 | static void blk_unplug_work(void *data); | 37 | static void blk_unplug_work(struct work_struct *work); |
38 | static void blk_unplug_timeout(unsigned long data); | 38 | static void blk_unplug_timeout(unsigned long data); |
39 | static void drive_stat_acct(struct request *rq, int nr_sectors, int new_io); | 39 | static void drive_stat_acct(struct request *rq, int nr_sectors, int new_io); |
40 | static void init_request_from_bio(struct request *req, struct bio *bio); | 40 | static void init_request_from_bio(struct request *req, struct bio *bio); |
@@ -227,7 +227,7 @@ void blk_queue_make_request(request_queue_t * q, make_request_fn * mfn) | |||
227 | if (q->unplug_delay == 0) | 227 | if (q->unplug_delay == 0) |
228 | q->unplug_delay = 1; | 228 | q->unplug_delay = 1; |
229 | 229 | ||
230 | INIT_WORK(&q->unplug_work, blk_unplug_work, q); | 230 | INIT_WORK(&q->unplug_work, blk_unplug_work); |
231 | 231 | ||
232 | q->unplug_timer.function = blk_unplug_timeout; | 232 | q->unplug_timer.function = blk_unplug_timeout; |
233 | q->unplug_timer.data = (unsigned long)q; | 233 | q->unplug_timer.data = (unsigned long)q; |
@@ -1631,9 +1631,9 @@ static void blk_backing_dev_unplug(struct backing_dev_info *bdi, | |||
1631 | } | 1631 | } |
1632 | } | 1632 | } |
1633 | 1633 | ||
1634 | static void blk_unplug_work(void *data) | 1634 | static void blk_unplug_work(struct work_struct *work) |
1635 | { | 1635 | { |
1636 | request_queue_t *q = data; | 1636 | request_queue_t *q = container_of(work, request_queue_t, unplug_work); |
1637 | 1637 | ||
1638 | blk_add_trace_pdu_int(q, BLK_TA_UNPLUG_IO, NULL, | 1638 | blk_add_trace_pdu_int(q, BLK_TA_UNPLUG_IO, NULL, |
1639 | q->rq.count[READ] + q->rq.count[WRITE]); | 1639 | q->rq.count[READ] + q->rq.count[WRITE]); |
diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c index 5493c2fbbab1..b3e210723a71 100644 --- a/block/scsi_ioctl.c +++ b/block/scsi_ioctl.c | |||
@@ -277,7 +277,7 @@ static int sg_io(struct file *file, request_queue_t *q, | |||
277 | if (rq->bio) | 277 | if (rq->bio) |
278 | blk_queue_bounce(q, &rq->bio); | 278 | blk_queue_bounce(q, &rq->bio); |
279 | 279 | ||
280 | rq->timeout = (hdr->timeout * HZ) / 1000; | 280 | rq->timeout = jiffies_to_msecs(hdr->timeout); |
281 | if (!rq->timeout) | 281 | if (!rq->timeout) |
282 | rq->timeout = q->sg_timeout; | 282 | rq->timeout = q->sg_timeout; |
283 | if (!rq->timeout) | 283 | if (!rq->timeout) |