mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
Merge branch 'barrier' into for-linus
This commit is contained in:
commit
a39d113936
23 changed files with 240 additions and 456 deletions
|
|
@ -1133,16 +1133,21 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt)
|
|||
* Schedule reads for missing parts of the packet.
|
||||
*/
|
||||
for (f = 0; f < pkt->frames; f++) {
|
||||
struct bio_vec *vec;
|
||||
|
||||
int p, offset;
|
||||
if (written[f])
|
||||
continue;
|
||||
bio = pkt->r_bios[f];
|
||||
vec = bio->bi_io_vec;
|
||||
bio_init(bio);
|
||||
bio->bi_max_vecs = 1;
|
||||
bio->bi_sector = pkt->sector + f * (CD_FRAMESIZE >> 9);
|
||||
bio->bi_bdev = pd->bdev;
|
||||
bio->bi_end_io = pkt_end_io_read;
|
||||
bio->bi_private = pkt;
|
||||
bio->bi_io_vec = vec;
|
||||
bio->bi_destructor = pkt_bio_destructor;
|
||||
|
||||
p = (f * CD_FRAMESIZE) / PAGE_SIZE;
|
||||
offset = (f * CD_FRAMESIZE) % PAGE_SIZE;
|
||||
|
|
@ -1439,6 +1444,8 @@ static void pkt_start_write(struct pktcdvd_device *pd, struct packet_data *pkt)
|
|||
pkt->w_bio->bi_bdev = pd->bdev;
|
||||
pkt->w_bio->bi_end_io = pkt_end_io_packet_write;
|
||||
pkt->w_bio->bi_private = pkt;
|
||||
pkt->w_bio->bi_io_vec = bvec;
|
||||
pkt->w_bio->bi_destructor = pkt_bio_destructor;
|
||||
for (f = 0; f < pkt->frames; f++)
|
||||
if (!bio_add_page(pkt->w_bio, bvec[f].bv_page, CD_FRAMESIZE, bvec[f].bv_offset))
|
||||
BUG();
|
||||
|
|
|
|||
|
|
@ -414,26 +414,6 @@ static void ps3disk_prepare_flush(struct request_queue *q, struct request *req)
|
|||
req->cmd_type = REQ_TYPE_FLUSH;
|
||||
}
|
||||
|
||||
static int ps3disk_issue_flush(struct request_queue *q, struct gendisk *gendisk,
|
||||
sector_t *sector)
|
||||
{
|
||||
struct ps3_storage_device *dev = q->queuedata;
|
||||
struct request *req;
|
||||
int res;
|
||||
|
||||
dev_dbg(&dev->sbd.core, "%s:%u\n", __func__, __LINE__);
|
||||
|
||||
req = blk_get_request(q, WRITE, __GFP_WAIT);
|
||||
ps3disk_prepare_flush(q, req);
|
||||
res = blk_execute_rq(q, gendisk, req, 0);
|
||||
if (res)
|
||||
dev_err(&dev->sbd.core, "%s:%u: flush request failed %d\n",
|
||||
__func__, __LINE__, res);
|
||||
blk_put_request(req);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
static unsigned long ps3disk_mask;
|
||||
|
||||
static DEFINE_MUTEX(ps3disk_mask_mutex);
|
||||
|
|
@ -506,7 +486,6 @@ static int __devinit ps3disk_probe(struct ps3_system_bus_device *_dev)
|
|||
blk_queue_dma_alignment(queue, dev->blk_size-1);
|
||||
blk_queue_hardsect_size(queue, dev->blk_size);
|
||||
|
||||
blk_queue_issue_flush_fn(queue, ps3disk_issue_flush);
|
||||
blk_queue_ordered(queue, QUEUE_ORDERED_DRAIN_FLUSH,
|
||||
ps3disk_prepare_flush);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue