gfs2-utils contains the tools needed to create, check, modify and inspect gfs2 filesystems along with support scripts needed on every gfs2 cluster node.

The main themes in this release are improved testability and test coverage, with a number of bug fixes and a couple of new features thrown in too.

Some highlights visible to users and packagers:

- mkfs.gfs2 now has a -U option to provide your own UUID (added to support idempotent Ansible playbooks)
- gfs2_jadd now creates journals much faster
- The bzip2 configure check has been fixed to work on distros other than the Fedora family (which ship their own pkg-config file)
- Man pages have been improved

We now have CI testing enabled for gfs2-utils (thanks, Fabio!) which means that pull requests will be automatically tested across multiple distros and architectures. Static analysis will also now be more useful as the results are much less cluttered with false-positives. This all helps to ramp up the quality of the utils over time as we continue to add support for new gfs2 features.

There are also portability improvements included in this release which mean that building gfs2-utils against a non-glibc libc should not require much patching (probably just an rpmatch() replacement).

The full git shortlog is below.

The release tarballs and signed checksums can be found here:

https://releases.pagure.org/gfs2-utils/

Direct link for convenience:

https://releases.pagure.org/gfs2-utils/gfs2-utils-3.5.0.tar.gz

Please report bugs to the cluster-de...@redhat.com mailing list or at:

https://bugzilla.kernel.org/enter_bug.cgi?product=File%20System&component=gfs2

Patches or pull requests can be sent to the same list or submitted on Pagure:

https://pagure.io/gfs2-utils

Thanks,
Andy

gfs2-utils changes since 3.4.1:

Andreas Gruenbacher (7):
fsck.gfs2: Clean up metawalk_check_data and undo_check_data argument passing
      fsck.gfs2: Minor data type cleanups
      fsck.gfs2: More flexible metalist handling in check_metatree
      fsck.gfs2: Move struct error_block into metawalk.c
      fsck.gfs2: Fix some endianness annotations
      fsck.gfs2: Factor out error handling in metawalk_check_data
      fsck.gfs2: Convert enum values to upper-case

Andrew Price (255):
      Update version string for dev
      gfs2_jadd: Use fallocate to preallocate journals
      gfs2_jadd: Don't fsync after each block written
      libgfs2: Move gfs1_ri_update() into gfs2_convert
      gfs2_convert: Remove fd parameter from gfs1_ri_update
      libgfs2: Fold __ri_update into ri_update
      libgfs2: Move ri_update() into fsck.gfs2
      libgfs2: Clean up rindex_read()
      Update some variable names for consistency
      libgfs2: Implement meta.c checks as unit tests
      libgfs2: Move build_rgrps into fsck.gfs2
      libgfs2: Remove fs_geometry.c
      libgfs2: Replace lgfs2_rgrps_root() with lgfs2_attach_rgrps()
      fsck.gfs2: Update an inaccessible web address
      libgfs2: Move block_list.c into fsck.gfs2
      fsck.gfs2: Refactor fetch_rgrps()
      fsck.gfs2: Call rindex_read() outside of ri_update()
      fsck.gfs2: Rename ri_update to read_rgrps
      fsck.gfs2: Fix bounds check in find_next_rgrp_dist()
      fsck.gfs2: Improve rindex consistency check
      configure: Don't define _FORTIFY_SOURCE for gcov builds
      Import linux/gfs2_ondisk.h
      Remove HAS_UUID conditionals
      Remove GFS2_HAS_LEAF_HINTS conditionals
      Remove GFS2_HAS_DE_RAHEAD/COOKIE conditionals
      Remove GFS2_HAS_RG_SKIP conditionals
      Remove GFS2_HAS_RG_RI_FIELDS conditionals
      Remove GFS2_HAS_LH_V2 conditionals
      Use PRI* when printing gfs2 structures
      Remove gfs2/include/linux_endian.h
      libgfs2: Add __force tags to endianness conversion macros
      fsck.gfs2: Fix declaration mismatch for invalidate_*
      Include asm/types.h in our linux/types.h
      libgfs2: Provide macros for printing on-disk fields
      libgfs2: Add a function for printing on-disk meta headers
      libgfs2: Expect big-endian data when printing log descriptors
      libgfs2: Remove gfs2_log_descriptor_{in,out}
      libgfs2: Remove gfs2_quota_change_{in,out}
      libgfs2: Remove gfs2_statfs_change_{in,out}
      libgfs2: Remove gfs2_ea_header_in
      libgfs2: Convert gfs2_leaf_print to accept big-endian data
      libgfs2: Remove gfs2_quota_{in,out}
      Convert rgrp printing functions to expect big-endian data
      libgfs2: Convert gfs2_sb_print to expect big-endian data
      gfs2_edit: Convert superblock printing to expect big-endian
      gfs2_edit: Store big-endian data in the global dinode
libgfs2: Don't use on-disk structs with cpu-endian data in __init_dinode
      libgfs2: Fix endianness mismatches for struct gfs2_log_header
      gfs2_edit: Clean up display_gfs2()
      libgfs2: Add a cpu-endian log header struct
      libgfs2: Remove gfs2_dinode_print()
      libgfs2: Remove i_di from struct gfs2_inode
      libgfs2: Remove big-endian structs from struct rgrp_tree
      libgfs2: Remove sd_sb from struct gfs2_sbd
      libgfs2: Remove some now-unused functions
      gfs2_edit: Use native-endian types for dirent processing
      libgfs2: Endianness improvements for gfs2_inum and gfs2_dirent
      Remove some users of gfs2_leaf_in()
      libgfs2: Endianness improvements for gfs2_leaf
      libgfs2: Remove gfs2_meta_header_{in,out}
      libgfs2: Fix endianness conversions for superblock padding fields
      libgfs2: Don't parse/write de_cookie
      libgfs2: Broaden use of struct lgfs2_inum
      gfs2l: Sparse fixes
      libgfs2: Fix endianness tagging for gfs2_bit_search
      libgfs2: Remove gfs_jindex_in
      Fix sparse warnings about linkage
      fsck.gfs2: Remove unused invalidate_fxns
      libgfs2: Fix the remaining sparse warnings
      gfs2_convert: Fix the remaining sparse warnings
      gfs2_edit: Fix remaining endianness sparse warnings
      fsck.gfs2: Fix remaining endianness sparse warnings
      libgfs2: Add NULL-checking for ip->i_bh in inode_put()
      gfs2_edit: Fix segfault in hexdump()
      libgfs2: Avoid potential gfs/gfs2 superblock update clash
      Make sure i_bh is set after lgfs2_gfs_inode_get()
      tunegfs2: Use O_EXCL when opening the device rw
      tests: Increase the size of the sparse file used by tests
      libgfs2: Remove new_rgrps from struct gfs2_sbd
      libgfs2: Remove start and length from struct rgrp_tree
      fsck.gfs2: Simplify compute_rgrp_layout()
      fsck.gfs2: Simplify how_many_rgrps()
      libgfs2: Remove rgcalc from struct gfs2_sbd
      fsck.gfs2: Rename rg_repair() to rindex_repair()
      gfs2_edit: Fix NULL check in print_block_type()
      libgfs2: Fix leak of bh in read_sb()
      libgfs2: Remove unnecessary cast from gfs2_lookupi()
      gfs2_edit: Don't free buf in save_leaf_chain()
      libgfs2: Remove sd_max_dirres from struct gfs2_sbd
      libgfs2: Remove unused fields from struct gfs2_sbd
      libgfs2: Rename sdp->time to sdp->sd_time
      gfs2_grow.8: Man page improvements
      docs: Update branch name in README.contributing
tunegfs2: Use PRIu64 instead of casting uint64_t to unsigned long long gfs2_convert: Use PRIu64 instead of casting uint64_t to unsigned long long mkfs.gfs2: Use PRIu64 instead of casting uint64_t to unsigned long long gfs2_grow: Use PRIu64 instead of casting uint64_t to unsigned long long gfs2_edit: Use PRIu64 instead of casting uint64_t to unsigned long long
      libgfs2: Use PRIu64 instead of casting uint64_t to unsigned long long
glocktop: Use PRIu64 instead of casting uint64_t to unsigned long long fsck.gfs2: Use PRIu64 instead of casting uint64_t to unsigned long long
      fsck.gfs2: Rename warm_fuzzy_stuff()
      Update copyright notices
      Update translation template
      configure: Fix check for bzip2
      fsck.gfs2: Clean up set_block_ranges()
      gfs2_jadd: Clean up definitions from linux/fs.h
      libgfs2: Move debugging printf out of build_master()
      libgfs2: Rework lgfs2_build_jindex()
      libgfs2: Move build_jindex() into fsck.gfs2
      libgfs2: Push down build_per_node() into the utils
      libgfs2: Return the inode from build_inum_range()
      libgfs2: Return the inode from build_statfs_change()
      libgfs2: Return the inode from build_quota_change()
      libgfs2: Return the inode from build_inum()
      libgfs2: Return the inode from build_statfs()
      libgfs2: Return the inode from build_rindex()
      libgfs2: Return the inode from build_quota()
      libgfs2: Move debugging printf out of build_root()
      libgfs2: Remove debugging printf from do_init_statfs()
      libgfs2: Move debugging output out of do_init_inum()
      libgfs2: Remove debugging printfs from fix_device_geometry()
      libgfs2: Remove config.[ch]
      libgfs2: Move struct printing functions out of libgfs2
      libgfs2: Remove print_it extern requirement
      gfs2_edit: Clean up some unused macros
      gfs2_edit: Remove the remaining die() calls
      gfs2_edit: Fix usage of getch()
      libgfs2: Namespace improvements - structures.c
      libgfs2: Namespace improvements - buf.c
      libgfs2: Namespace improvements - fs_ops.c
      libgfs2: Namespace improvements - fs_bits.c
      libgfs2: Namespace improvements - gfs1.c
      libgfs2: Namespace improvements - misc.c
      libgfs2: Namespace improvements - rgrp.c
      libgfs2: Namespace improvements - super.c
      libgfs2: Namespace improvements - gfs2_disk_hash.c
      libgfs2: Remove revoke function declarations from libgfs2.h
      libgfs2: Namespace improvements - recovery.c
      libgfs2: Namespace improvements - device_geometry.c
      libgfs2: Namespace improvements - struct gfs2_inode
      libgfs2: Namespace improvements - struct gfs2_buffer_head
      libgfs2: Namespace improvements - struct gfs2_sbd
      libgfs2: Namespace improvements - struct metapath
      libgfs2: Namespace improvements - struct master_dir
      libgfs2: Namespace improvements - struct device
      libgfs2: Namespace improvements - struct gfs2_bitmap
      libgfs2: Namespace improvements - constants
      libgfs2: Namespace improvements - struct rgrp_tree
      fsck.gfs2: Reorganize pass1_fxns
      tests: Regenerate testvol where needed
      tests: Add an option to clean up the testvol file unconditionally
      Excplicitly ignore posix_fadvise() return value
      Add basic unit tests for lgfs2_lookupi()
      Use calloc in test_rgrps_write_final()
      gfs2_jadd.8: Man page improvements
      gfs2l: Remove redundant #include <sys/queue.h>
      Don't use glibc internal symbols
      Add LTLIBINTL to LDADD where needed
      fsck.gfs2: Use atexit() where on_exit() is not available
      mkfs.gfs2: Use realpath() instead of canonicalize_file_name()
      Configure script updates
      mkfs.gfs2: Add -U UUID option
      gfs2_convert: Fix uninitialized usage warning
      fsck.gfs2: Introduce struct fsck_cx
      fsck.gfs2: Pass the fsck_cx into the metawalk_fxns
      fsck.gfs2: Don't define names in the gfs2_ namespace
      fsck.gfs2: Move the global dup_blocks into fsck_cx
      fsck.gfs2: Move the global dirtree into fsck_cx
      fsck.gfs2: Move the global inodetree into fsck_cx
      fsck.gfs2: Move the global preen into fsck_options
      fsck.gfs2: Move the global force_check into fsck_options
      fsck.gfs2: Pass fsck_options into initialize()
      fsck.gfs2: Pass fsck_options into replay_journals()
      fsck.gfs2: Pass fsck_options into recover_journal()
      fsck.gfs2: Pass fsck_options into preen_is_safe()
      fsck.gfs2: Pass fsck_options into destroy()
      fsck.gfs2: Remove unused query field from fsck_options
      fsck.gfs2: Add an options pointer to fsck_cx
      fsck.gfs2: Pass fsck_cx into check_rgrp(s)_integrity()
      fsck.gfs2: Pass fsck_cx into rebuild_master()
      fsck.gfs2: Pass fsck_cx into lookup_per_node()
      fsck.gfs2: Pass fsck_cx into fill_super_block()
      fsck.gfs2: Pass fsck_cx into sb_repair()
      fsck.gfs2: Pass fsck_cx into peruse_metadata()
      fsck.gfs2: Pass fsck_cx into peruse_{system,user}_dinode()
      fsck.gfs2: Pass fsck_cx into reconstruct_journals()
      fsck.gfs2: Pass fsck_cx into correct_journal_seg_size()
      fsck.gfs2: Pass fsck_cx into reset_journal_seg_size()
      fsck.gfs2: Pass fsck_cx into init_rindex()
      fsck.gfs2: Pass fsck_cx into ask_remove_eattr_entry()
      fsck.gfs2: Pass fsck_cx into check_i_goal()
      fsck.gfs2: Pass fsck_cx into handle_inconsist()
      fsck.gfs2: Pass fsck_cx into update_rgrp()
      fsck.gfs2: Pass fsck_cx into check_block_status()
      fsck.gfs2: Pass fsck_cx into rewrite_rg_block()
      fsck.gfs2: Pass fsck_cx into fsck_query()
      fsck.gfs2: Remove the global opts variable
      Remove sd_bsize assignments which have no effect
      mkfs.gfs2: Improve journal write error reporting
      Remove dependency on linux/fs.h
      Remove dependency on linux/limits.h
      README: Remove kernel headers requirement
      configure: Only use AC_PROG_CC_C99 for autoconf < 2.70
      Add configure~ to .gitignore
      Add error checking to lgfs2_build_height()
      Add error checking to lgfs2_block_map()
      Add error checking to lgfs2_gfs1_block_map()
      Don't call exit() in lgfs2_write_journal
      Don't call exit() in lgfs2_build_quota_change
      Remove lgfs2_breadm()
      Add error checking to lgfs2_unstuff_dinode()
      Remove some exit() calls
      Add error checking to lgfs2_dir_split_leaf()
      Add error checking to dir_make_exhash()
      Add error checking to dir_double_exhash()
      libgfs2: Remove the remaining exit() calls
      libgfs2: Add member name prefixes to struct _lgfs2_rgrps
      libgfs2: Make sure block_alloc() fails when out of space
      libgfs2: Add unit tests for lgfs2_dinode_alloc()
      Add "tags" to .gitignore
      Update year in copyright notices
      libgfs2: Add unit test for lgfs2_meta_alloc()
      libgfs2: Remove rgrps count from struct lgfs2_sbd
      libgfs2: Consistently use rt_ prefix in struct lgfs2_rgrp_tree
      mkfs.gfs2: Add a root_inherit_jdata extended option
      libgfs2: Return the inode from lgfs2_lookupi()
      libgfs2: Remove lgfs2_gfs_createi()
      libgfs2: Reorganise lgfs2_createi()
      fsck.gfs2: Remove de variable from dirref_find()
      fsck.gfs2: Fix wrong entry used in dentry comparison
      fsck.gfs2: fix_hashtable: Decrement i_blocks when freeing leaf blocks
      Free per_node in build_per_node error paths
      Silence some coverity false-positives
      libgfs2: Add lgfs2_inode_free()
      libgfs2: Add lgfs2_bfree()
      Fix potential resource leaks spotted by coverity
      mkfs.gfs2: Fix bounds checking in parse_ulong()
      Suppress some copy-and-paste coverity warnings
      Fix up some unused value warnings
      Fix use-after-free warnings from coverity
      mkfs.gfs2: Annotate a TOCTOU false-positive
      Silence some false "weak crypto" warnings
      savemeta: Silence an infinite loop false-positive
      libgfs2: Fix potential NULL deref in lgfs2_lookupi()
      Suppress coverity warning in osi_erase()
      fsck.gfs2: Double check that the sysinode pointer has been set
      gfs2_grow: Don't free rgs when it's NULL
      Annotate coverity false-positive in find_next_rgrp_dist()
      Fix an overflow-before-widening warning in find_print_block_rg()
      Fix overflow-before-widen coverity warnings
      Fix uninitialized memory coverity warnings
      Annotate "overrun" coverity false-positive warnings
      Update translation template
      Prepare for version 3.5.0

Fabio M. Di Nitto (3):
      build: use c99 code build option
      build: clean up test/Makefile.am
      build: allow testvol location to be configurable.

Sergei Trofimovich (1):
      gfs2/edit: always use "%s"-style format for printf()-style functions

_______________________________________________
Manage your subscription:
https://lists.clusterlabs.org/mailman/listinfo/developers

ClusterLabs home: https://www.clusterlabs.org/

Reply via email to