Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 197474
b: refs/heads/master
c: 696fcd5
h: refs/heads/master
v: v3
  • Loading branch information
Paul Clements authored and NeilBrown committed May 18, 2010
1 parent 2c94c79 commit b617788
Show file tree
Hide file tree
Showing 3 changed files with 30 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: ee8b81b03dffa1c0075553d01c557714aedb85a1
refs/heads/master: 696fcd535b5a8cfc0617e9cf1d9d69a13895cc1e
29 changes: 28 additions & 1 deletion trunk/drivers/md/bitmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -1292,9 +1292,14 @@ int bitmap_startwrite(struct bitmap *bitmap, sector_t offset, unsigned long sect
if (!bitmap) return 0;

if (behind) {
int bw;
atomic_inc(&bitmap->behind_writes);
bw = atomic_read(&bitmap->behind_writes);
if (bw > bitmap->behind_writes_used)
bitmap->behind_writes_used = bw;

PRINTK(KERN_DEBUG "inc write-behind count %d/%d\n",
atomic_read(&bitmap->behind_writes), bitmap->max_write_behind);
bw, bitmap->max_write_behind);
}

while (sectors) {
Expand Down Expand Up @@ -2006,13 +2011,35 @@ static ssize_t can_clear_store(mddev_t *mddev, const char *buf, size_t len)
static struct md_sysfs_entry bitmap_can_clear =
__ATTR(can_clear, S_IRUGO|S_IWUSR, can_clear_show, can_clear_store);

static ssize_t
behind_writes_used_show(mddev_t *mddev, char *page)
{
if (mddev->bitmap == NULL)
return sprintf(page, "0\n");
return sprintf(page, "%lu\n",
mddev->bitmap->behind_writes_used);
}

static ssize_t
behind_writes_used_reset(mddev_t *mddev, const char *buf, size_t len)
{
if (mddev->bitmap)
mddev->bitmap->behind_writes_used = 0;
return len;
}

static struct md_sysfs_entry max_backlog_used =
__ATTR(max_backlog_used, S_IRUGO | S_IWUSR,
behind_writes_used_show, behind_writes_used_reset);

static struct attribute *md_bitmap_attrs[] = {
&bitmap_location.attr,
&bitmap_timeout.attr,
&bitmap_backlog.attr,
&bitmap_chunksize.attr,
&bitmap_metadata.attr,
&bitmap_can_clear.attr,
&max_backlog_used.attr,
NULL
};
struct attribute_group md_bitmap_group = {
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/md/bitmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ struct bitmap {
int allclean;

atomic_t behind_writes;
unsigned long behind_writes_used; /* highest actual value at runtime */

/*
* the bitmap daemon - periodically wakes up and sweeps the bitmap
Expand Down

0 comments on commit b617788

Please sign in to comment.