Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 176520
b: refs/heads/master
c: 076010e
h: refs/heads/master
v: v3
  • Loading branch information
Mikulas Patocka authored and Alasdair G Kergon committed Dec 10, 2009
1 parent 96d38da commit df4a631
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 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: 87a8f240e9bcf025ba45e4563c842b0d59c5e8ef
refs/heads/master: 076010e2e6ea5b66dfd1f81a6133fb014c9b291d
17 changes: 15 additions & 2 deletions trunk/drivers/md/dm-log.c
Original file line number Diff line number Diff line change
Expand Up @@ -677,13 +677,26 @@ static int core_flush(struct dm_dirty_log *log)

static int disk_flush(struct dm_dirty_log *log)
{
int r;
struct log_c *lc = (struct log_c *) log->context;
int r, i;
struct log_c *lc = log->context;

/* only write if the log has changed */
if (!lc->touched_cleaned && !lc->touched_dirtied)
return 0;

if (lc->touched_cleaned && log->flush_callback_fn &&
log->flush_callback_fn(lc->ti)) {
/*
* At this point it is impossible to determine which
* regions are clean and which are dirty (without
* re-reading the log off disk). So mark all of them
* dirty.
*/
lc->flush_failed = 1;
for (i = 0; i < lc->region_count; i++)
log_clear_bit(lc, lc->clean_bits, i);
}

r = rw_header(lc, WRITE);
if (r)
fail_log_device(lc);
Expand Down

0 comments on commit df4a631

Please sign in to comment.