aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2025-02-04 22:40:01 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2025-02-04 22:40:23 +0100
commit0933418a1625da62d7ba79d5ee33ee2c256999a5 (patch)
treea568a878d7816e23fd08faed03c4ccefb40e257e
parentdb700b4d6bd100636f1efc0209bebab29ea50bab (diff)
downloadhurd-0933418a1625da62d7ba79d5ee33ee2c256999a5.tar.gz
hurd-0933418a1625da62d7ba79d5ee33ee2c256999a5.tar.bz2
hurd-0933418a1625da62d7ba79d5ee33ee2c256999a5.zip
mach-defpager: comment on improving on lost data
Instead of killing the whole object.
-rw-r--r--mach-defpager/default_pager.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c
index aef700d0..9a477615 100644
--- a/mach-defpager/default_pager.c
+++ b/mach-defpager/default_pager.c
@@ -2470,6 +2470,9 @@ ddprintf ("seqnos_memory_object_data_request <%p>: pager_port_unlock: <%p>[s:%d,
pager_port_unlock(ds);
if (errors) {
+ /* TODO: we could instead add an ERROR along NO_BLOCK
+ to singlify returned errors to the pages actually lost instead
+ of killing the whole object. */
static int warned = 0;
if (!warned) {
printf("(default pager): previous write error for object, killing it\n");
@@ -2588,6 +2591,7 @@ ddprintf ("seqnos_memory_object_data_initialize <%p>: pager_port_unlock: <%p>[s:
printf("(default pager): data_initialize write error, losing data\n");
}
dstruct_lock(ds);
+ /* TODO: mark page as lost instead. */
ds->errors++;
dstruct_unlock(ds);
}
@@ -2675,6 +2679,7 @@ seqnos_memory_object_data_return(default_pager_t ds,
warned = 1;
}
dstruct_lock(ds);
+ /* TODO: mark page as lost instead. */
ds->errors++;
dstruct_unlock(ds);
}