summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2016-10-06 05:53:11 -0800
committerKent Overstreet <kent.overstreet@gmail.com>2016-10-06 05:53:11 -0800
commit43da67afe06af961adddd7875740afca3090de90 (patch)
tree7505dabf730cd2430ddb3ddcbb67d15e6e4916d6
parentdcf0e79b418459e5c2a555aab0c54b4d242aa1c5 (diff)
todo list
-rw-r--r--Bcachefs.mdwn41
1 files changed, 36 insertions, 5 deletions
diff --git a/Bcachefs.mdwn b/Bcachefs.mdwn
index 469b98b..ab63971 100644
--- a/Bcachefs.mdwn
+++ b/Bcachefs.mdwn
@@ -157,6 +157,29 @@ possible.
awhile before I can dedicate enough time to finishing them, but I'm very much
looking forward to showing off what it'll be able to do.
+### Known issues/caveats
+
+ - Mount time
+
+ We currently walk all metadata at mount time (multiple times, in fact) - on
+ flash this shouldn't even be noticeable unless your filesystem is very large,
+ but on rotating disk expect mount times to be slow.
+
+ This will be addressed in the future - mount times will likely be the next
+ big push after the next big batch of on disk format changes.
+
+ - Fsck
+
+ There is a fsck - it's just in kernel, done at mount time, not in userspace.
+ We shouldn't be missing any checks - we should be able to detect any
+ filesystem inconsistencies. Repair is only implemented for a few
+ inconsistencies, though.
+
+ By default, fsck is run on every mount - mount with -o nofsck if you don't
+ want to run it. Errors are not fixed by default, because I want to make sure
+ I get bug reports if inconsistencies are found - if you do run into fixable
+ errors, mount with -o fix_errors (and send a bug report!).
+
## FAQ
Please ask questions and ask for them to be added here!
@@ -214,11 +237,6 @@ Please ask questions and ask for them to be added here!
we can distinguish reading valid prio_sets that aren't the one we actually
wanted
- * inode format:
- We're adding optional fields for i_generation (needed for NFS export
- support), but if we're doing breaking on disk format changes it'd make more
- sense for i_dev to be an optional field - (i_dev is for block/char devices).
-
* fallocate + compression - calling fallocate is supposed to ensure that a
future write call won't return -ENOSPC, regardless of what the file range
already contains. We have persistent reservations to support fallocate, but
@@ -226,6 +244,19 @@ Please ask questions and ask for them to be added here!
persistent reservation where we've already got an extent. We need another
type of persistent reservation, that we can add to a normal data extent.
+ * checksumming stuff:
+ * configurable action for nonfatal IO errors & data checksum errors
+ * RO, continue or threshold
+ * absolute threshold, or moving average threshold (error rate)
+ * when we get a read error/data checksum error, flip a bit in the key - "has
+ seen read error" - so we don't blow through the global limit on one bad
+ extent
+ * global and per device options: per device options take precedence if set,
+ but may be unset
+ * how should configuration handle multiple devices? we probably want to just
+ continue by default in single device mode, but in multi device mode kick
+ it RO
+
### Other wishlist items:
* When we're using compression, we end up wasting a fair amount of space on