git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
block
/
paride
/
pd.c
diff --git
a/drivers/block/paride/pd.c
b/drivers/block/paride/pd.c
index
62d2464
..
9d9bff2
100644
(file)
--- a/
drivers/block/paride/pd.c
+++ b/
drivers/block/paride/pd.c
@@
-151,6
+151,7
@@
enum {D_PRT, D_PRO, D_UNI, D_MOD, D_GEO, D_SBY, D_DLY, D_SLV};
#include <linux/cdrom.h> /* for the eject ioctl */
#include <linux/blkdev.h>
#include <linux/blkpg.h>
#include <linux/cdrom.h> /* for the eject ioctl */
#include <linux/blkdev.h>
#include <linux/blkpg.h>
+#include <linux/kernel.h>
#include <asm/uaccess.h>
#include <linux/sched.h>
#include <linux/workqueue.h>
#include <asm/uaccess.h>
#include <linux/sched.h>
#include <linux/workqueue.h>
@@
-275,7
+276,7
@@
static void pd_print_error(struct pd_unit *disk, char *msg, int status)
int i;
printk("%s: %s: status = 0x%x =", disk->name, msg, status);
int i;
printk("%s: %s: status = 0x%x =", disk->name, msg, status);
- for (i = 0; i <
18
; i++)
+ for (i = 0; i <
ARRAY_SIZE(pd_errs)
; i++)
if (status & (1 << i))
printk(" %s", pd_errs[i]);
printk("\n");
if (status & (1 << i))
printk(" %s", pd_errs[i]);
printk("\n");
@@
-351,19
+352,19
@@
static enum action (*phase)(void);
static void run_fsm(void);
static void run_fsm(void);
-static void ps_tq_int(
void *data
);
+static void ps_tq_int(
struct work_struct *work
);
-static DECLARE_
WORK(fsm_tq, ps_tq_int, NULL
);
+static DECLARE_
DELAYED_WORK(fsm_tq, ps_tq_int
);
static void schedule_fsm(void)
{
if (!nice)
static void schedule_fsm(void)
{
if (!nice)
- schedule_
work(&fsm_tq
);
+ schedule_
delayed_work(&fsm_tq, 0
);
else
schedule_delayed_work(&fsm_tq, nice-1);
}
else
schedule_delayed_work(&fsm_tq, nice-1);
}
-static void ps_tq_int(
void *data
)
+static void ps_tq_int(
struct work_struct *work
)
{
run_fsm();
}
{
run_fsm();
}
@@
-436,7
+437,7
@@
static char *pd_buf; /* buffer for request in progress */
static enum action do_pd_io_start(void)
{
static enum action do_pd_io_start(void)
{
- if (
pd_req->flags & REQ_SPECIAL
) {
+ if (
blk_special_request(pd_req)
) {
phase = pd_special;
return pd_special();
}
phase = pd_special;
return pd_special();
}
@@
-712,20
+713,18
@@
static void do_pd_request(request_queue_t * q)
static int pd_special_command(struct pd_unit *disk,
enum action (*func)(struct pd_unit *disk))
{
static int pd_special_command(struct pd_unit *disk,
enum action (*func)(struct pd_unit *disk))
{
- DECLARE_COMPLETION(wait);
+ DECLARE_COMPLETION
_ONSTACK
(wait);
struct request rq;
int err = 0;
memset(&rq, 0, sizeof(rq));
rq.errors = 0;
struct request rq;
int err = 0;
memset(&rq, 0, sizeof(rq));
rq.errors = 0;
- rq.rq_status = RQ_ACTIVE;
rq.rq_disk = disk->gd;
rq.ref_count = 1;
rq.rq_disk = disk->gd;
rq.ref_count = 1;
- rq.
waiting
= &wait;
+ rq.
end_io_data
= &wait;
rq.end_io = blk_end_sync_rq;
blk_insert_request(disk->gd->queue, &rq, 0, func);
wait_for_completion(&wait);
rq.end_io = blk_end_sync_rq;
blk_insert_request(disk->gd->queue, &rq, 0, func);
wait_for_completion(&wait);
- rq.waiting = NULL;
if (rq.errors)
err = -EIO;
blk_put_request(&rq);
if (rq.errors)
err = -EIO;
blk_put_request(&rq);