summaryrefslogtreecommitdiffstats
path: root/inc
diff options
context:
space:
mode:
authorSimon Rettberg2023-04-14 17:10:02 +0200
committerSimon Rettberg2024-05-13 18:26:42 +0200
commit9bf6fbce6dfccd16bb54a9801ca287bac6950a09 (patch)
tree2473f67b9d7896f9b297b5e500045b564ac025a4 /inc
parent[FUSE] cow: Cleanup, comments, fixes, minor refactoring (diff)
downloaddnbd3-9bf6fbce6dfccd16bb54a9801ca287bac6950a09.tar.gz
dnbd3-9bf6fbce6dfccd16bb54a9801ca287bac6950a09.tar.xz
dnbd3-9bf6fbce6dfccd16bb54a9801ca287bac6950a09.zip
[FUSE] cow: More fixes and refactoring
Don't allocate a data cluster in data file for empty l2 entries when resizing the image file. Calculating l2 offset in metadata file was broken and overlapping l1. Delete unneeded entries from cow struct. Rename a few more variables. Fix a few possible race conditions. Only upload modified blocks from cluster. Simplify cow_write() function by handling misaligned start/end first. Try to also simplify cow_read() a bit. TODO: Documentation, update the cow merger service.
Diffstat (limited to 'inc')
-rw-r--r--inc/dnbd3/config.h1
-rw-r--r--inc/dnbd3/config/cow.h2
2 files changed, 2 insertions, 1 deletions
diff --git a/inc/dnbd3/config.h b/inc/dnbd3/config.h
index eb4b8b1..482bd29 100644
--- a/inc/dnbd3/config.h
+++ b/inc/dnbd3/config.h
@@ -39,5 +39,6 @@
// +++++ Block Device +++++
#define DNBD3_BLOCK_SIZE ((uint64_t)4096) // NEVER CHANGE THIS OR THE WORLD WILL END!
+#define DNBD3_BLOCK_MASK ((uint64_t)4095) // NEVER CHANGE THIS OR THE WORLD WILL END!
#endif /* CONFIG_H_ */
diff --git a/inc/dnbd3/config/cow.h b/inc/dnbd3/config/cow.h
index 9ed59a0..a7f3615 100644
--- a/inc/dnbd3/config/cow.h
+++ b/inc/dnbd3/config/cow.h
@@ -11,7 +11,7 @@
#define COW_MAX_PARALLEL_BACKGROUND_UPLOADS 2 // maximum number of parallel uploads while the image is still mounted
#define COW_URL_STRING_SIZE 500 // Max string size for an url
#define COW_SHOW_UL_SPEED 1 // enable display of ul speed in cow status file
-#define COW_MAX_IMAGE_SIZE 1000LL * 1000LL * 1000LL * 1000LL; // Maximum size an image can have(tb*gb*mb*kb)
+#define COW_MAX_IMAGE_SIZE (1000LL * 1000LL * 1000LL * 1000LL) // Maximum size an image can have(tb*gb*mb*kb)
// +++++ COW API Endpoints +++++
#define COW_API_CREATE "%s/api/file/create"
#define COW_API_UPDATE "%s/api/file/update?guid=%s&clusterindex=%lu"