|
@@ -71,12 +71,10 @@ static int _drbd_md_sync_page_io(struct drbd_conf *mdev,
|
|
|
int rw, int size)
|
|
|
{
|
|
|
struct bio *bio;
|
|
|
- struct drbd_md_io md_io;
|
|
|
int ok;
|
|
|
|
|
|
- md_io.mdev = mdev;
|
|
|
- init_completion(&md_io.event);
|
|
|
- md_io.error = 0;
|
|
|
+ init_completion(&mdev->md_io.event);
|
|
|
+ mdev->md_io.error = 0;
|
|
|
|
|
|
if ((rw & WRITE) && !test_bit(MD_NO_FUA, &mdev->flags))
|
|
|
rw |= REQ_FUA | REQ_FLUSH;
|
|
@@ -88,7 +86,7 @@ static int _drbd_md_sync_page_io(struct drbd_conf *mdev,
|
|
|
ok = (bio_add_page(bio, page, size, 0) == size);
|
|
|
if (!ok)
|
|
|
goto out;
|
|
|
- bio->bi_private = &md_io;
|
|
|
+ bio->bi_private = &mdev->md_io;
|
|
|
bio->bi_end_io = drbd_md_io_complete;
|
|
|
bio->bi_rw = rw;
|
|
|
|
|
@@ -96,8 +94,8 @@ static int _drbd_md_sync_page_io(struct drbd_conf *mdev,
|
|
|
bio_endio(bio, -EIO);
|
|
|
else
|
|
|
submit_bio(rw, bio);
|
|
|
- wait_for_completion(&md_io.event);
|
|
|
- ok = bio_flagged(bio, BIO_UPTODATE) && md_io.error == 0;
|
|
|
+ wait_for_completion(&mdev->md_io.event);
|
|
|
+ ok = bio_flagged(bio, BIO_UPTODATE) && mdev->md_io.error == 0;
|
|
|
|
|
|
out:
|
|
|
bio_put(bio);
|