Commit 9aa8a5b1 authored by Linus Torvalds's avatar Linus Torvalds

Merge master.kernel.org:/home/davem/BK/net-2.5

into home.transmeta.com:/home/torvalds/v2.5/linux
parents d3e54fc0 d0d87c2c
......@@ -2295,16 +2295,15 @@ static inline void end_request(struct request *req, int uptodate)
{
kdev_t dev = req->rq_dev;
if (end_that_request_first(req, uptodate, req->hard_cur_sectors))
if (end_that_request_first(req, uptodate, current_count_sectors))
return;
add_blkdev_randomness(major(dev));
floppy_off(DEVICE_NR(dev));
blkdev_dequeue_request(req);
end_that_request_last(req);
/* Get the next request */
req = elv_next_request(QUEUE);
CURRENT = req;
/* We're done with the request */
CURRENT = NULL;
}
......@@ -2335,27 +2334,8 @@ static void request_done(int uptodate)
/* unlock chained buffers */
spin_lock_irqsave(q->queue_lock, flags);
while (current_count_sectors && CURRENT &&
current_count_sectors >= req->current_nr_sectors){
current_count_sectors -= req->current_nr_sectors;
req->nr_sectors -= req->current_nr_sectors;
req->sector += req->current_nr_sectors;
end_request(req, 1);
}
end_request(req, 1);
spin_unlock_irqrestore(q->queue_lock, flags);
if (current_count_sectors && CURRENT) {
/* "unlock" last subsector */
req->buffer += current_count_sectors <<9;
req->current_nr_sectors -= current_count_sectors;
req->nr_sectors -= current_count_sectors;
req->sector += current_count_sectors;
return;
}
if (current_count_sectors && !CURRENT)
DPRINT("request list destroyed in floppy request done\n");
} else {
if (rq_data_dir(req) == WRITE) {
/* record write error information */
......
......@@ -1992,11 +1992,11 @@ int end_that_request_first(struct request *req, int uptodate, int nr_sectors)
* not a complete bvec done
*/
if (unlikely(nsect > nr_sectors)) {
int residual = (nsect - nr_sectors) << 9;
int partial = nr_sectors << 9;
bio->bi_size -= residual;
bio_iovec(bio)->bv_offset += residual;
bio_iovec(bio)->bv_len -= residual;
bio->bi_size -= partial;
bio_iovec(bio)->bv_offset += partial;
bio_iovec(bio)->bv_len -= partial;
blk_recalc_rq_sectors(req, nr_sectors);
blk_recalc_rq_segments(req);
return 1;
......
......@@ -258,7 +258,7 @@ struct sonypi_device {
while (--n && (command)) \
udelay(1); \
if (!n && (verbose || !quiet)) \
printk(KERN_WARNING "sonypi command failed at " __FILE__ " : " __FUNCTION__ "(line %d)\n", __LINE__); \
printk(KERN_WARNING "sonypi command failed at %s : %s(line %d)\n", __FILE__, __FUNCTION__, __LINE__); \
}
#endif /* __KERNEL__ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment