These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / fs / jfs / jfs_logmgr.c
index bc462dc..a69bdf2 100644 (file)
@@ -1999,19 +1999,16 @@ static int lbmRead(struct jfs_log * log, int pn, struct lbuf ** bpp)
 
        bio->bi_iter.bi_sector = bp->l_blkno << (log->l2bsize - 9);
        bio->bi_bdev = log->bdev;
-       bio->bi_io_vec[0].bv_page = bp->l_page;
-       bio->bi_io_vec[0].bv_len = LOGPSIZE;
-       bio->bi_io_vec[0].bv_offset = bp->l_offset;
 
-       bio->bi_vcnt = 1;
-       bio->bi_iter.bi_size = LOGPSIZE;
+       bio_add_page(bio, bp->l_page, LOGPSIZE, bp->l_offset);
+       BUG_ON(bio->bi_iter.bi_size != LOGPSIZE);
 
        bio->bi_end_io = lbmIODone;
        bio->bi_private = bp;
        /*check if journaling to disk has been disabled*/
        if (log->no_integrity) {
                bio->bi_iter.bi_size = 0;
-               lbmIODone(bio, 0);
+               lbmIODone(bio);
        } else {
                submit_bio(READ_SYNC, bio);
        }
@@ -2145,12 +2142,9 @@ static void lbmStartIO(struct lbuf * bp)
        bio = bio_alloc(GFP_NOFS, 1);
        bio->bi_iter.bi_sector = bp->l_blkno << (log->l2bsize - 9);
        bio->bi_bdev = log->bdev;
-       bio->bi_io_vec[0].bv_page = bp->l_page;
-       bio->bi_io_vec[0].bv_len = LOGPSIZE;
-       bio->bi_io_vec[0].bv_offset = bp->l_offset;
 
-       bio->bi_vcnt = 1;
-       bio->bi_iter.bi_size = LOGPSIZE;
+       bio_add_page(bio, bp->l_page, LOGPSIZE, bp->l_offset);
+       BUG_ON(bio->bi_iter.bi_size != LOGPSIZE);
 
        bio->bi_end_io = lbmIODone;
        bio->bi_private = bp;
@@ -2158,7 +2152,7 @@ static void lbmStartIO(struct lbuf * bp)
        /* check if journaling to disk has been disabled */
        if (log->no_integrity) {
                bio->bi_iter.bi_size = 0;
-               lbmIODone(bio, 0);
+               lbmIODone(bio);
        } else {
                submit_bio(WRITE_SYNC, bio);
                INCREMENT(lmStat.submitted);
@@ -2196,7 +2190,7 @@ static int lbmIOWait(struct lbuf * bp, int flag)
  *
  * executed at INTIODONE level
  */
-static void lbmIODone(struct bio *bio, int error)
+static void lbmIODone(struct bio *bio)
 {
        struct lbuf *bp = bio->bi_private;
        struct lbuf *nextbp, *tail;
@@ -2212,7 +2206,7 @@ static void lbmIODone(struct bio *bio, int error)
 
        bp->l_flag |= lbmDONE;
 
-       if (!test_bit(BIO_UPTODATE, &bio->bi_flags)) {
+       if (bio->bi_error) {
                bp->l_flag |= lbmERROR;
 
                jfs_err("lbmIODone: I/O error in JFS log");