Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 345913
b: refs/heads/master
c: b987427
h: refs/heads/master
i:
  345911: 8a64662
v: v3
  • Loading branch information
Andreas Gruenbacher authored and Philipp Reisner committed Nov 8, 2012
1 parent 1cd0b6f commit 956d600
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 73218a3c4c7ae87014b8fc258f8a16a75aad2870
refs/heads/master: b987427b53f4bcddf0a951da573c83ce7eddf70d
24 changes: 15 additions & 9 deletions trunk/drivers/block/drbd/drbd_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1403,13 +1403,19 @@ static void drbd_update_congested(struct drbd_tconn *tconn)
* with page_count == 0 or PageSlab.
*/
static int _drbd_no_send_page(struct drbd_conf *mdev, struct page *page,
int offset, size_t size, unsigned msg_flags)
int offset, size_t size, unsigned msg_flags)
{
int sent = drbd_send(mdev->tconn, mdev->tconn->data.socket, kmap(page) + offset, size, msg_flags);
struct socket *socket;
void *addr;
int err;

socket = mdev->tconn->data.socket;
addr = kmap(page) + offset;
err = drbd_send_all(mdev->tconn, socket, addr, size, msg_flags);
kunmap(page);
if (sent == size)
mdev->send_cnt += size>>9;
return sent == size;
if (!err)
mdev->send_cnt += size >> 9;
return err;
}

static int _drbd_send_page(struct drbd_conf *mdev, struct page *page,
Expand All @@ -1426,7 +1432,7 @@ static int _drbd_send_page(struct drbd_conf *mdev, struct page *page,
* __page_cache_release a page that would actually still be referenced
* by someone, leading to some obscure delayed Oops somewhere else. */
if (disable_sendpage || (page_count(page) < 1) || PageSlab(page))
return _drbd_no_send_page(mdev, page, offset, size, msg_flags);
return !_drbd_no_send_page(mdev, page, offset, size, msg_flags);

msg_flags |= MSG_NOSIGNAL;
drbd_update_congested(mdev->tconn);
Expand Down Expand Up @@ -1465,9 +1471,9 @@ static int _drbd_send_bio(struct drbd_conf *mdev, struct bio *bio)
int i;
/* hint all but last page with MSG_MORE */
__bio_for_each_segment(bvec, bio, i, 0) {
if (!_drbd_no_send_page(mdev, bvec->bv_page,
bvec->bv_offset, bvec->bv_len,
i == bio->bi_vcnt -1 ? 0 : MSG_MORE))
if (_drbd_no_send_page(mdev, bvec->bv_page,
bvec->bv_offset, bvec->bv_len,
i == bio->bi_vcnt -1 ? 0 : MSG_MORE))
return 0;
}
return 1;
Expand Down

0 comments on commit 956d600

Please sign in to comment.