[PATCH v1 0/3] Make erofs-utils more library friendly

Kelvin Zhang zhangkelvin at google.com
Sun Nov 21 16:39:17 AEDT 2021


EROFS-utils contains several usage of global variables, namely

1. int erofs_devfd, stores the file descriptor to open'ed block devices.
This is referened in many places.
2. struct erofs_sb_info sbi; Stores parsed super block.

These global variables make embedding erofs library diffcult. To make
library usage easier, a series of 3 patches are drafted to refactor away
the global variables. Each patch has been built and tested by calling
mkfs.erofs and ensure the same output is generated.

Kelvin Zhang (3):
  Make erofs_devfd a parameter for most functions
  Mark certain callback function pointers as const
  Make super block info struct a paramater instead of globals

 Android.bp                 |  44 +++++++-
 dump/main.c                |  84 ++++++++------
 fsck/main.c                |  90 +++++++++------
 fuse/dir.c                 |   8 +-
 fuse/main.c                |  19 ++--
 include/erofs/blobchunk.h  |   7 +-
 include/erofs/cache.h      |  15 +--
 include/erofs/compress.h   |  10 +-
 include/erofs/config.h     |  15 +--
 include/erofs/decompress.h |   5 +-
 include/erofs/defs.h       |  21 ++++
 include/erofs/inode.h      |   9 +-
 include/erofs/internal.h   |  72 ++++++------
 include/erofs/io.h         |  48 +++++---
 include/erofs/iterate.h    |  35 ++++++
 include/erofs/xattr.h      |   2 +-
 iterate/main.c             |  51 +++++++++
 lib/blobchunk.c            |  11 +-
 lib/cache.c                |  33 +++---
 lib/compress.c             | 104 ++++++++++-------
 lib/compressor.c           |   9 +-
 lib/compressor.h           |  13 ++-
 lib/compressor_liblzma.c   |   4 +-
 lib/compressor_lz4.c       |   8 +-
 lib/compressor_lz4hc.c     |   6 +-
 lib/config.c               |  64 ++++++-----
 lib/data.c                 |  54 +++++----
 lib/decompress.c           |  12 +-
 lib/inode.c                | 129 ++++++++++++---------
 lib/io.c                   |  74 ++++++------
 lib/iterate.c              | 223 +++++++++++++++++++++++++++++++++++++
 lib/namei.c                |  44 +++++---
 lib/super.c                |  28 ++---
 lib/xattr.c                |  10 +-
 lib/zmap.c                 |  92 +++++++++------
 mkfs/main.c                |  92 +++++++--------
 36 files changed, 1069 insertions(+), 476 deletions(-)
 create mode 100644 include/erofs/iterate.h
 create mode 100644 iterate/main.c
 create mode 100644 lib/iterate.c

-- 
2.34.0.rc2.393.gf8c9666880-goog



More information about the Linux-erofs mailing list