Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 346162
b: refs/heads/master
c: 93f5afe
h: refs/heads/master
v: v3
  • Loading branch information
Philipp Reisner committed Nov 8, 2012
1 parent fa5520c commit 4b80c6a
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 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: 32db80f6f6326617ed40b2d157709226af4f062b
refs/heads/master: 93f5afe9560b80e03a58ba5324ec71124df7655f
4 changes: 3 additions & 1 deletion trunk/drivers/block/drbd/drbd_req.c
Original file line number Diff line number Diff line change
Expand Up @@ -1153,6 +1153,7 @@ void request_timer_fn(unsigned long data)
struct drbd_conf *mdev = (struct drbd_conf *) data;
struct drbd_tconn *tconn = mdev->tconn;
struct drbd_request *req; /* oldest request */
struct block_device *bdev;
struct list_head *le;
struct net_conf *nc;
unsigned long ent = 0, dt = 0, et, nt; /* effective timeout = ko_count * timeout */
Expand All @@ -1163,6 +1164,7 @@ void request_timer_fn(unsigned long data)

if (get_ldev(mdev)) {
dt = rcu_dereference(mdev->ldev->disk_conf)->disk_timeout * HZ / 10;
bdev = mdev->ldev->backing_bdev;
put_ldev(mdev);
}
rcu_read_unlock();
Expand All @@ -1188,7 +1190,7 @@ void request_timer_fn(unsigned long data)
_drbd_set_state(_NS(mdev, conn, C_TIMEOUT), CS_VERBOSE | CS_HARD, NULL);
}
}
if (dt && req->rq_state & RQ_LOCAL_PENDING) {
if (dt && req->rq_state & RQ_LOCAL_PENDING && req->private_bio->bi_bdev == bdev) {
if (time_is_before_eq_jiffies(req->start_time + dt)) {
dev_warn(DEV, "Local backing device failed to meet the disk-timeout\n");
__drbd_chk_io_error(mdev, 1);
Expand Down

0 comments on commit 4b80c6a

Please sign in to comment.