ref: c6ffd2afb2caae418021acfeb7b2737822a76897
parent: a4db81436916151e5a820b5848e420b5ac6f1295
author: ngkaho1234 <ngkaho1234@gmail.com>
date: Sun Nov 8 05:18:23 EST 2015
Add comments on the introduction of up-to-date flag
--- a/lwext4/ext4_bcache.c
+++ b/lwext4/ext4_bcache.c
@@ -115,6 +115,8 @@
/*Set valid cache data and id*/
b->data = bc->data + i * bc->itemsize;
b->cache_id = i;
+
+ /* If data in the caxhe is up-to-date */
b->uptodate = ext4_bcache_test_flag(bc, i, BC_UPTODATE);
return EOK;
@@ -155,6 +157,8 @@
/*Set valid cache data and id*/
b->data = bc->data + cache_id * bc->itemsize;
b->cache_id = cache_id;
+
+ /* Data in the cache is not up-to-date anymore. */
ext4_bcache_clear_flag(bc, cache_id, BC_UPTODATE);
b->uptodate = false;
--- a/lwext4/ext4_blockdev.c
+++ b/lwext4/ext4_blockdev.c
@@ -163,7 +163,8 @@
return r;
if (b->uptodate) {
- /*Block is in cache. Read from physical device is not required*/
+ /* Data in the cache is up-to-date.
+ * Reading from physical device is not required */
return EOK;
}
@@ -178,6 +179,8 @@
return r;
}
+ /* Mark buffer up-to-date, since
+ * fresh data is read from physical device just now. */
ext4_bcache_set_flag(bdev->bc, b->cache_id, BC_UPTODATE);
b->uptodate = true;
bdev->bread_ctr++;
@@ -205,6 +208,7 @@
ext4_bcache_free(bdev->bc, b, 0);
return EOK;
}
+ /* Data is valid, so mark buffer up-to-date. */
ext4_bcache_set_flag(bdev->bc, b->cache_id, BC_UPTODATE);
/*Free cache delay mode*/