aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
Diffstat (limited to 'block')
-rw-r--r--block/Kconfig6
-rw-r--r--block/as-iosched.c7
-rw-r--r--block/blktrace.c35
-rw-r--r--block/cfq-iosched.c8
-rw-r--r--block/ll_rw_blk.c8
-rw-r--r--block/scsi_ioctl.c2
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
20if BLOCK 20if BLOCK
21 21
22#XXX - it makes sense to enable this only for 32-bit subarch's, not for x86_64
23#for instance.
24config LBD 22config 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
45config LSF 43config 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 */
1277static void as_work_handler(void *data) 1277static 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 */
34static inline unsigned int trace_note(struct blk_trace *bt, 34static 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 */
60static void trace_note_tsk(struct blk_trace *bt, struct task_struct *tsk) 58static 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
67static void trace_note_time(struct blk_trace *bt) 64static 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
1843static void cfq_kick_queue(void *data) 1843static 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
37static void blk_unplug_work(void *data); 37static void blk_unplug_work(struct work_struct *work);
38static void blk_unplug_timeout(unsigned long data); 38static void blk_unplug_timeout(unsigned long data);
39static void drive_stat_acct(struct request *rq, int nr_sectors, int new_io); 39static void drive_stat_acct(struct request *rq, int nr_sectors, int new_io);
40static void init_request_from_bio(struct request *req, struct bio *bio); 40static 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
1634static void blk_unplug_work(void *data) 1634static 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)