From: Mike Christie <[email protected]>

This patch has gfs2 use bio->bi_op for REQ_OPs and rq_flag_bits to bio->bi_rw.

Signed-off-by: Mike Christie <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
---
 fs/gfs2/log.c        |  8 ++++----
 fs/gfs2/lops.c       | 12 +++++++-----
 fs/gfs2/lops.h       |  2 +-
 fs/gfs2/meta_io.c    |  8 +++++---
 fs/gfs2/ops_fstype.c |  1 +
 5 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c
index 0ff028c..e58ccef0 100644
--- a/fs/gfs2/log.c
+++ b/fs/gfs2/log.c
@@ -657,7 +657,7 @@ static void log_write_header(struct gfs2_sbd *sdp, u32 
flags)
        struct gfs2_log_header *lh;
        unsigned int tail;
        u32 hash;
-       int rw = WRITE_FLUSH_FUA | REQ_META;
+       int op_flags = WRITE_FLUSH_FUA | REQ_META;
        struct page *page = mempool_alloc(gfs2_page_pool, GFP_NOIO);
        enum gfs2_freeze_state state = atomic_read(&sdp->sd_freeze_state);
        lh = page_address(page);
@@ -682,12 +682,12 @@ static void log_write_header(struct gfs2_sbd *sdp, u32 
flags)
        if (test_bit(SDF_NOBARRIERS, &sdp->sd_flags)) {
                gfs2_ordered_wait(sdp);
                log_flush_wait(sdp);
-               rw = WRITE_SYNC | REQ_META | REQ_PRIO;
+               op_flags = WRITE_SYNC | REQ_META | REQ_PRIO;
        }
 
        sdp->sd_log_idle = (tail == sdp->sd_log_flush_head);
        gfs2_log_write_page(sdp, page);
-       gfs2_log_flush_bio(sdp, rw);
+       gfs2_log_flush_bio(sdp, REQ_OP_WRITE, op_flags);
        log_flush_wait(sdp);
 
        if (sdp->sd_log_tail != tail)
@@ -738,7 +738,7 @@ void gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock 
*gl,
 
        gfs2_ordered_write(sdp);
        lops_before_commit(sdp, tr);
-       gfs2_log_flush_bio(sdp, WRITE);
+       gfs2_log_flush_bio(sdp, REQ_OP_WRITE, 0);
 
        if (sdp->sd_log_head != sdp->sd_log_flush_head) {
                log_flush_wait(sdp);
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c
index ce28242..c1099b4 100644
--- a/fs/gfs2/lops.c
+++ b/fs/gfs2/lops.c
@@ -230,17 +230,19 @@ static void gfs2_end_log_write(struct bio *bio)
 /**
  * gfs2_log_flush_bio - Submit any pending log bio
  * @sdp: The superblock
- * @rw: The rw flags
+ * @op: REQ_OP
+ * @op_flags: rq_flag_bits
  *
  * Submit any pending part-built or full bio to the block device. If
  * there is no pending bio, then this is a no-op.
  */
 
-void gfs2_log_flush_bio(struct gfs2_sbd *sdp, int rw)
+void gfs2_log_flush_bio(struct gfs2_sbd *sdp, int op, int op_flags)
 {
        if (sdp->sd_log_bio) {
                atomic_inc(&sdp->sd_log_in_flight);
-               sdp->sd_log_bio->bi_rw = rw;
+               sdp->sd_log_bio->bi_op = op;
+               sdp->sd_log_bio->bi_rw = op_flags;
                submit_bio(sdp->sd_log_bio);
                sdp->sd_log_bio = NULL;
        }
@@ -300,7 +302,7 @@ static struct bio *gfs2_log_get_bio(struct gfs2_sbd *sdp, 
u64 blkno)
                nblk >>= sdp->sd_fsb2bb_shift;
                if (blkno == nblk)
                        return bio;
-               gfs2_log_flush_bio(sdp, WRITE);
+               gfs2_log_flush_bio(sdp, REQ_OP_WRITE, 0);
        }
 
        return gfs2_log_alloc_bio(sdp, blkno);
@@ -329,7 +331,7 @@ static void gfs2_log_write(struct gfs2_sbd *sdp, struct 
page *page,
        bio = gfs2_log_get_bio(sdp, blkno);
        ret = bio_add_page(bio, page, size, offset);
        if (ret == 0) {
-               gfs2_log_flush_bio(sdp, WRITE);
+               gfs2_log_flush_bio(sdp, REQ_OP_WRITE, 0);
                bio = gfs2_log_alloc_bio(sdp, blkno);
                ret = bio_add_page(bio, page, size, offset);
                WARN_ON(ret == 0);
diff --git a/fs/gfs2/lops.h b/fs/gfs2/lops.h
index a65a7ba..e529f53 100644
--- a/fs/gfs2/lops.h
+++ b/fs/gfs2/lops.h
@@ -27,7 +27,7 @@ extern const struct gfs2_log_operations gfs2_databuf_lops;
 
 extern const struct gfs2_log_operations *gfs2_log_ops[];
 extern void gfs2_log_write_page(struct gfs2_sbd *sdp, struct page *page);
-extern void gfs2_log_flush_bio(struct gfs2_sbd *sdp, int rw);
+extern void gfs2_log_flush_bio(struct gfs2_sbd *sdp, int op, int op_flags);
 extern void gfs2_pin(struct gfs2_sbd *sdp, struct buffer_head *bh);
 
 static inline unsigned int buf_limit(struct gfs2_sbd *sdp)
diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c
index f56f3ca..55ae188 100644
--- a/fs/gfs2/meta_io.c
+++ b/fs/gfs2/meta_io.c
@@ -213,7 +213,8 @@ static void gfs2_meta_read_endio(struct bio *bio)
  * Submit several consecutive buffer head I/O requests as a single bio I/O
  * request.  (See submit_bh_wbc.)
  */
-static void gfs2_submit_bhs(int rw, struct buffer_head *bhs[], int num)
+static void gfs2_submit_bhs(int op, int op_flags, struct buffer_head *bhs[],
+                           int num)
 {
        struct buffer_head *bh = bhs[0];
        struct bio *bio;
@@ -230,7 +231,8 @@ static void gfs2_submit_bhs(int rw, struct buffer_head 
*bhs[], int num)
                bio_add_page(bio, bh->b_page, bh->b_size, bh_offset(bh));
        }
        bio->bi_end_io = gfs2_meta_read_endio;
-       bio->bi_rw = rw;
+       bio->bi_op = op;
+       bio->bi_rw = op_flags;
        submit_bio(bio);
 }
 
@@ -281,7 +283,7 @@ int gfs2_meta_read(struct gfs2_glock *gl, u64 blkno, int 
flags,
                }
        }
 
-       gfs2_submit_bhs(READ_SYNC | REQ_META | REQ_PRIO, bhs, num);
+       gfs2_submit_bhs(REQ_OP_READ, READ_SYNC | REQ_META | REQ_PRIO, bhs, num);
        if (!(flags & DIO_WAIT))
                return 0;
 
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 141b560..fda3e71 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -246,6 +246,7 @@ static int gfs2_read_super(struct gfs2_sbd *sdp, sector_t 
sector, int silent)
 
        bio->bi_end_io = end_bio_io_page;
        bio->bi_private = page;
+       bio->bi_op = REQ_OP_READ;
        bio->bi_rw = READ_SYNC | REQ_META;
        submit_bio(bio);
        wait_on_page_locked(page);
-- 
2.7.2


------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to