diff options
author | Simon Rettberg | 2023-03-29 12:03:54 +0200 |
---|---|---|
committer | Simon Rettberg | 2024-05-13 18:26:42 +0200 |
commit | ec0b9b5f72607335ac19d4ea00c24919943b7970 (patch) | |
tree | faf735a62dff9d88f22c1073b601e5af913cc3e9 /inc | |
parent | [FUSE] Fixed cow daemon issue (diff) | |
download | dnbd3-ec0b9b5f72607335ac19d4ea00c24919943b7970.tar.gz dnbd3-ec0b9b5f72607335ac19d4ea00c24919943b7970.tar.xz dnbd3-ec0b9b5f72607335ac19d4ea00c24919943b7970.zip |
[FUSE] cow: Cleanup, comments, fixes, minor refactoring
- Use the term "cluster" for a group of dnbd3-blocks instead of also
calling them blocks.
- Use term "table" instead of "array" for the L1 and L2 tables.
- Use term "index" instead of "offset" when addressing those tables
- Fix a few logic bugs, use-after-free
- Add TODOs for parts that need better comments
Diffstat (limited to 'inc')
-rw-r--r-- | inc/dnbd3/config.h | 16 | ||||
-rw-r--r-- | inc/dnbd3/config/cow.h | 20 | ||||
-rw-r--r-- | inc/dnbd3/types.h | 1 |
3 files changed, 21 insertions, 16 deletions
diff --git a/inc/dnbd3/config.h b/inc/dnbd3/config.h index df9d0e0..eb4b8b1 100644 --- a/inc/dnbd3/config.h +++ b/inc/dnbd3/config.h @@ -40,20 +40,4 @@ // +++++ Block Device +++++ #define DNBD3_BLOCK_SIZE ((uint64_t)4096) // NEVER CHANGE THIS OR THE WORLD WILL END! -// +++++ COW +++++ -#define COW_BITFIELD_SIZE 40 // NEVER CHANGE THIS OR THE WORLD WILL ALSO END! -#define COW_FILE_META_MAGIC_VALUE ((uint64_t)0xEBE44D6E72F7825E) // Magic Value to recognize a Cow meta file -#define COW_FILE_DATA_MAGIC_VALUE ((uint64_t)0xEBE44D6E72F7825F) // Magic Value to recognize a Cow data file -#define COW_MIN_UPLOAD_DELAY 60 // in seconds -#define COW_STATS_UPDATE_TIME 5 // time in seconds the cow status files gets updated (while uploading blocks) -#define COW_MAX_PARALLEL_UPLOADS 10 // maximum number of parallel uploads -#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) -// +++++ COW API Endpoints +++++ -#define COW_API_CREATE "%s/api/File/Create" -#define COW_API_UPDATE "%s/api/File/Update?guid=%s&BlockNumber=%lu" -#define COW_API_START_MERGE "%s/api/File/StartMerge" - #endif /* CONFIG_H_ */ diff --git a/inc/dnbd3/config/cow.h b/inc/dnbd3/config/cow.h new file mode 100644 index 0000000..9ed59a0 --- /dev/null +++ b/inc/dnbd3/config/cow.h @@ -0,0 +1,20 @@ +#ifndef _COW_CONFIG_H_ +#define _COW_CONFIG_H_ + +// +++++ COW +++++ +#define COW_BITFIELD_SIZE 40 // NEVER CHANGE THIS OR THE WORLD WILL ALSO END! +#define COW_FILE_META_MAGIC_VALUE ((uint64_t)0xEBE44D6E72F7825E) // Magic Value to recognize a Cow meta file +#define COW_FILE_DATA_MAGIC_VALUE ((uint64_t)0xEBE44D6E72F7825F) // Magic Value to recognize a Cow data file +#define COW_MIN_UPLOAD_DELAY 60 // in seconds +#define COW_STATS_UPDATE_TIME 5 // time in seconds the cow status files gets updated (while uploading blocks) +#define COW_MAX_PARALLEL_UPLOADS 10 // maximum number of parallel uploads +#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) +// +++++ COW API Endpoints +++++ +#define COW_API_CREATE "%s/api/file/create" +#define COW_API_UPDATE "%s/api/file/update?guid=%s&clusterindex=%lu" +#define COW_API_START_MERGE "%s/api/file/merge" + +#endif diff --git a/inc/dnbd3/types.h b/inc/dnbd3/types.h index 699fa68..bd15f4e 100644 --- a/inc/dnbd3/types.h +++ b/inc/dnbd3/types.h @@ -30,6 +30,7 @@ #include <stdbool.h> #include <stddef.h> #include <string.h> +#define container_of( ptr, type, member ) ( (type *)( (char *)( ptr ) - (char *)&( ( (type *)NULL )->member ) ) ) #endif #ifndef MIN |