Merge branch 'linux-next' of git://git.infradead.org/ubifs-2.6
[pandora-kernel.git] / drivers / block / osdblk.c
index 6cd8b70..2284b4f 100644 (file)
@@ -310,7 +310,8 @@ static void osdblk_rq_fn(struct request_queue *q)
                        break;
 
                /* filter out block requests we don't understand */
-               if (!blk_fs_request(rq) && !blk_barrier_rq(rq)) {
+               if (rq->cmd_type != REQ_TYPE_FS &&
+                   !(rq->cmd_flags & REQ_HARDBARRIER)) {
                        blk_end_request_all(rq, 0);
                        continue;
                }
@@ -322,7 +323,7 @@ static void osdblk_rq_fn(struct request_queue *q)
                 * driver-specific, etc.
                 */
 
-               do_flush = (rq->special == (void *) 0xdeadbeefUL);
+               do_flush = rq->cmd_flags & REQ_FLUSH;
                do_write = (rq_data_dir(rq) == WRITE);
 
                if (!do_flush) { /* osd_flush does not use a bio */
@@ -379,14 +380,6 @@ static void osdblk_rq_fn(struct request_queue *q)
        }
 }
 
-static void osdblk_prepare_flush(struct request_queue *q, struct request *rq)
-{
-       /* add driver-specific marker, to indicate that this request
-        * is a flush command
-        */
-       rq->special = (void *) 0xdeadbeefUL;
-}
-
 static void osdblk_free_disk(struct osdblk_device *osdev)
 {
        struct gendisk *disk = osdev->disk;
@@ -446,7 +439,7 @@ static int osdblk_init_disk(struct osdblk_device *osdev)
        blk_queue_stack_limits(q, osd_request_queue(osdev->osd));
 
        blk_queue_prep_rq(q, blk_queue_start_tag);
-       blk_queue_ordered(q, QUEUE_ORDERED_DRAIN_FLUSH, osdblk_prepare_flush);
+       blk_queue_ordered(q, QUEUE_ORDERED_DRAIN_FLUSH);
 
        disk->queue = q;