Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 242864
b: refs/heads/master
c: 1b881ef
h: refs/heads/master
v: v3
  • Loading branch information
Andreas Gruenbacher authored and Philipp Reisner committed Mar 10, 2011
1 parent 4c74133 commit b2d90d3
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 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: 24dccabb390412d04435e11cfb535df51def7b2d
refs/heads/master: 1b881ef77537f1077482f9946a6a99b4e2dd54b2
22 changes: 11 additions & 11 deletions trunk/drivers/block/drbd/drbd_int.h
Original file line number Diff line number Diff line change
Expand Up @@ -2284,38 +2284,38 @@ static inline int is_susp(union drbd_state s)
return s.susp || s.susp_nod || s.susp_fen;
}

static inline int __inc_ap_bio_cond(struct drbd_conf *mdev)
static inline bool may_inc_ap_bio(struct drbd_conf *mdev)
{
int mxb = drbd_get_max_buffers(mdev);

if (is_susp(mdev->state))
return 0;
return false;
if (test_bit(SUSPEND_IO, &mdev->flags))
return 0;
return false;

/* to avoid potential deadlock or bitmap corruption,
* in various places, we only allow new application io
* to start during "stable" states. */

/* no new io accepted when attaching or detaching the disk */
if (!drbd_state_is_stable(mdev))
return 0;
return false;

/* since some older kernels don't have atomic_add_unless,
* and we are within the spinlock anyways, we have this workaround. */
if (atomic_read(&mdev->ap_bio_cnt) > mxb)
return 0;
return false;
if (test_bit(BITMAP_IO, &mdev->flags))
return 0;
return 1;
return false;
return true;
}

static inline int _inc_ap_bio_cond(struct drbd_conf *mdev, int count)
static inline bool inc_ap_bio_cond(struct drbd_conf *mdev, int count)
{
int rv = 0;
bool rv = false;

spin_lock_irq(&mdev->req_lock);
rv = __inc_ap_bio_cond(mdev);
rv = may_inc_ap_bio(mdev);
if (rv)
atomic_add(count, &mdev->ap_bio_cnt);
spin_unlock_irq(&mdev->req_lock);
Expand All @@ -2333,7 +2333,7 @@ static inline void inc_ap_bio(struct drbd_conf *mdev, int count)
* to avoid races with the reconnect code,
* we need to atomic_inc within the spinlock. */

wait_event(mdev->misc_wait, _inc_ap_bio_cond(mdev, count));
wait_event(mdev->misc_wait, inc_ap_bio_cond(mdev, count));
}

static inline void dec_ap_bio(struct drbd_conf *mdev)
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/block/drbd/drbd_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -3239,7 +3239,7 @@ static int drbd_congested(void *congested_data, int bdi_bits)
char reason = '-';
int r = 0;

if (!__inc_ap_bio_cond(mdev)) {
if (!may_inc_ap_bio(mdev)) {
/* DRBD has frozen IO */
r = bdi_bits;
reason = 'd';
Expand Down

0 comments on commit b2d90d3

Please sign in to comment.