aboutsummaryrefslogtreecommitdiff
path: root/include/sqfs
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2023-03-04 21:28:14 +0100
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2023-04-01 12:25:02 +0200
commit32eb57dd9a19254565a0792ab9b627a3dac319f9 (patch)
treec86314fda1e36f2231f352ec0f372aef7d3d9b0a /include/sqfs
parent6b1020ef3e034cbb6e0fa4cd984b181c0dd414ff (diff)
libsquashfs: remove the default block writer alignment feature
The idea of the block align feature was to allow micro-managing that some files are forcefully aligned to 1k/4k ("device block") boundaries, hoping to improve access time at the cost of data density. The feature was not exposed in the tools for a long time and eventuall added to the sort file. Measurement and experimentation showed, that it in fact worsened the read performance on a test system with an old micro SD card as the bottle neck. The feature is removed, and if needed, can be brought back simply by wrapping/sub-classing the default block writer, if need be.. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include/sqfs')
-rw-r--r--include/sqfs/block.h16
-rw-r--r--include/sqfs/block_writer.h8
2 files changed, 4 insertions, 20 deletions
diff --git a/include/sqfs/block.h b/include/sqfs/block.h
index 30f181c..639fb68 100644
--- a/include/sqfs/block.h
+++ b/include/sqfs/block.h
@@ -72,12 +72,9 @@ typedef enum {
SQFS_BLK_DONT_COMPRESS = 0x0001,
/**
- * @brief Align the block on disk to device block size.
- *
- * If set, the @ref sqfs_block_processor_t will add padding before the
- * first block of the affected file and after the last block.
+ * @brief Don't compute block data checksums.
*/
- SQFS_BLK_ALIGN = 0x0002,
+ SQFS_BLK_DONT_HASH = 0x0002,
/**
* @brief Don't add the tail end of a file to a fragment block.
@@ -105,11 +102,6 @@ typedef enum {
SQFS_BLK_IGNORE_SPARSE = 0x0010,
/**
- * @brief Don't compute block data checksums.
- */
- SQFS_BLK_DONT_HASH = 0x0020,
-
- /**
* @brief Set by the @ref sqfs_block_processor_t if it determines a
* block of a file to be sparse, i.e. only zero bytes.
*/
@@ -148,9 +140,9 @@ typedef enum {
/**
* @brief The combination of all flags that are user settable.
*/
- SQFS_BLK_USER_SETTABLE_FLAGS = 0x003F,
+ SQFS_BLK_USER_SETTABLE_FLAGS = 0x001F,
- SQFS_BLK_FLAGS_ALL = 0xFC3F,
+ SQFS_BLK_FLAGS_ALL = 0xFC1F,
} SQFS_BLK_FLAGS;
#endif /* SQFS_BLOCK_H */
diff --git a/include/sqfs/block_writer.h b/include/sqfs/block_writer.h
index 6376d2e..84e6973 100644
--- a/include/sqfs/block_writer.h
+++ b/include/sqfs/block_writer.h
@@ -52,11 +52,6 @@ struct sqfs_block_writer_t {
* @ref SQFS_BLK_LAST_BLOCK flag is set, it uses those stored locations
* to do block deduplication.
*
- * If the flag @ref SQFS_BLK_ALIGN is set in combination with the
- * @ref SQFS_BLK_FIRST_BLOCK, the file size is padded to a multiple of
- * the device block size before writing. If it is set together with the
- * @ref SQFS_BLK_LAST_BLOCK flag, the padding is added afterwards.
- *
* @param wr A pointer to a block writer.
* @param user An optional user data pointer.
* The @ref sqfs_block_processor_t can be told to pass this
@@ -126,15 +121,12 @@ extern "C" {
* @memberof sqfs_block_writer_t
*
* @param file A pointer to a file object that data should be appended to.
- * @param devblksz The underlying device block size if output data
- * should be aligned.
* @param flags A combination of @ref SQFS_BLOCK_WRITER_FLAGS values. If an
* unknown flag is set, creation will fail.
*
* @return A pointer to a new block writer on success, NULL on failure.
*/
SQFS_API sqfs_block_writer_t *sqfs_block_writer_create(sqfs_file_t *file,
- size_t devblksz,
sqfs_u32 flags);
#ifdef __cplusplus