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

Kelvin Zhang zhangkelvin at google.com
Tue Nov 23 18:39:18 AEDT 2021


Sounds good, now that v1.4 is available on kernel.lorg, shall we start
working on the refactoring commits?

On Sun, Nov 21, 2021 at 2:31 AM Gao Xiang <hsiangkao at linux.alibaba.com>
wrote:

> Hi Kelvin,
>
> On Sat, Nov 20, 2021 at 09:39:17PM -0800, Kelvin Zhang wrote:
> > 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.
>
> Agreed, that is mainly due to fast iterative development. If we consider
> to export liberofs as a real library, these all needs to be resolved in
> advance, and it'd be better to stablize all liberofs APIs as well.
>
> However, let's postpone this work until 1.4 is out, I have to admit I'm
> a bit delay of releasing v1.4 due to my busy work.
> Now I'm working on pre-releasing..
>
> Thanks,
> Gao Xiang
>
> >
> > 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
>


-- 
Sincerely,

Kelvin Zhang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linux-erofs/attachments/20211122/f3c2c1a2/attachment.htm>


More information about the Linux-erofs mailing list