From 79badd39c6584ae136b14d919eaf699ee812b666 Mon Sep 17 00:00:00 2001 From: "John L. Hammond" Date: Tue, 31 Jul 2012 16:51:24 -0500 Subject: [PATCH] LU-1693 obdfilter: Set bi_rw before calling bio_add_page() In filter_do_bio() and osd_do_io() set bi_rw before calling bio_add_page() so that the correct bio direction is used in mgrge_bvec_fn(). Signed-off-by: John L. Hammond Change-Id: Ife34d5d89337ea7fea41b5844fd724211b05c670 Reviewed-on: http://review.whamcloud.com/3501 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Fan Yong Reviewed-by: Oleg Drokin --- lustre/obdfilter/filter_io_26.c | 1 + lustre/osd-ldiskfs/osd_io.c | 1 + 2 files changed, 2 insertions(+) diff --git a/lustre/obdfilter/filter_io_26.c b/lustre/obdfilter/filter_io_26.c index 3311afb..853e4f5 100644 --- a/lustre/obdfilter/filter_io_26.c +++ b/lustre/obdfilter/filter_io_26.c @@ -396,6 +396,7 @@ int filter_do_bio(struct obd_export *exp, struct inode *inode, bio->bi_bdev = inode->i_sb->s_bdev; bio->bi_sector = sector; + bio->bi_rw = (rw == OBD_BRW_READ ? READ : WRITE); bio->bi_end_io = dio_complete_routine; bio->bi_private = iobuf; diff --git a/lustre/osd-ldiskfs/osd_io.c b/lustre/osd-ldiskfs/osd_io.c index b7ad5a0..4b50e5a 100644 --- a/lustre/osd-ldiskfs/osd_io.c +++ b/lustre/osd-ldiskfs/osd_io.c @@ -351,6 +351,7 @@ static int osd_do_bio(struct osd_device *osd, struct inode *inode, bio->bi_bdev = inode->i_sb->s_bdev; bio->bi_sector = sector; + bio->bi_rw = (iobuf->dr_rw == 0) ? READ : WRITE; bio->bi_end_io = dio_complete_routine; bio->bi_private = iobuf; -- 1.8.3.1