[ClusterLabs] gfs2-utils 3.2.0 released

Andrew Price anprice at redhat.com
Thu May 24 06:53:52 EDT 2018

Hi all,

I am happy to announce the 3.2.0 release of gfs2-utils. This is an 
important release adding support for new on-disk features introduced in 
the 4.16 kernel. In fact it is required when building against 4.16 and 
later kernel headers due to poor assumptions made by earlier gfs2-utils 
relating to structure size changes. Building earlier gfs2-utils against 
4.16 headers will result in test suite failures. (Thanks to Valentin 
Vidic for reporting these issues.)

This release adds basic support for new gfs2 on-disk features:

   * Resource group header CRCs
   * "Next resource group" pointers in resource groups
   * Journal log header block CRCs
   * Journal log header timestamp fields
   * Statfs accounting fields in journal log headers

Future releases will build on this work to take advantage of these new 
features, particularly for improving checking and performance.

Other notable changes:

   * mkfs.gfs2 now scales down the journal size to make better use of 
small devices by default
   * Better detection of bad device topology
   * fsck.gfs2 no longer accepts conflicting -p, -n and -y options
   * Saving of symlinks in gfs2_edit savemeta has been fixed
   * Fixes for issues caught by static analysis and new compiler warnings
   * New test cases in the testsuite
   * Various minor code cleanups and improvements

See below for a complete list of changes.

The source tarball is available from:


Please report bugs against the gfs2-utils component of Fedora rawhide: 


Changes since version 3.1.10:

Andrew Price (66):
       gfs2_grow: Disable rgrp alignment when dev topology is unsuitable
       mkfs.gfs2: Free unnecessary cached pages, disable readahead
       mkfs.gfs2: Fix resource group alignment issue
       libgfs2: Issue one write per rgrp when creating them
       libgfs2: Switch gfs2_dinode_out to use a char buffer
       libgfs2: Switch gfs2_log_header_out to use a char buffer
       gfs2-utils: Change instances of "gfs2_fsck" to "fsck.gfs2"
       gfs2_convert: Fix fgets return value warning
       fsck.gfs2: Fix snprintf truncation warning
       fsck.gfs2: Fix unchecked return value warning
       gfs2_grow: Fix unchecked ftruncate return value warning
       gfs2_grow: Remove unnecessary nesting in fix_rindex()
       gfs2_edit savemeta: Fix up saving of dinodes/symlinks
       gfs2_edit savemeta: Use size_t for saved structure lengths
       fsck.gfs2: Make -p, -n and -y conflicting options
       gfs2_edit: Print offsets of indirect pointers
       gfs2-utils configure: Check for rg_skip
       libgfs2: Add rgrp_skip support
       mkfs.gfs2: Pull place_journals() out of place_rgrps()
       mkfs.gfs2: Set the rg_skip field in new rgrps
       gfs2-utils configure: Check for rg_data0, rg_data and rg_bitbytes
       libgfs2: Add support for rg_data0, rg_data and rg_bitbytes
       mkfs.gfs2: Set the rg_data0, rg_data and rg_bitbytes fields
       libgfs2: Add support for rg_crc
       Add basic support for v2 log headers
       mkfs.gfs2: Scale down journal size for smaller devices
       gfs2-utils: Remove make-tarball.sh
       glocktop: Remove a non-existent flag from the usage string
       fsck.gfs2: Don't check lh_crc for older filesystems
       libgfs2: Remove unused lock* fields from gfs2_sbd
       libgfs2: Remove sb_addr from gfs2_sbd
       libgfs2: Plug an alignment hole in gfs2_sbd
       libgfs2: Plug an alignment hole in gfs2_buffer_head
       libgfs2: Plug an alignment hole in gfs2_inode
       libgfs2: Remove gfs2_meta_header_out_bh()
       libgfs2: Don't pass an extlen to block_map where not required
       libgfs2: Don't use a buffer_head in gfs2_meta_header_in
       libgfs2: Don't use buffer_heads in gfs2_sb_in
       libgfs2: Don't use buffer_heads in gfs2_rgrp_in
       libgfs2: Remove gfs2_rgrp_out_bh
       libgfs2: Don't use buffer_heads in gfs2_dinode_in
       libgfs2: Remove gfs2_dinode_out_bh
       libgfs2: Don't use buffer_heads in gfs2_leaf_{in,out}
       libgfs2: Don't use buffer_heads in gfs2_log_header_in
       libgfs2: Remove gfs2_log_header_out_bh
       libgfs2: Don't use buffer_heads in gfs2_log_descriptor_{in,out}
       libgfs2: Don't use buffer_heads in gfs2_quota_change_{in,out}
       libgfs2: Fix two unused variable warnings
       mkfs.gfs2: Silence an integer overflow warning
       libgfs2: Fix a thinko in write_journal()
       gfs2-utils tests: Add a fsck.gfs2 test for rebuilding journals
       gfs2_edit: Fix null pointer deref in dump_journal()
       libgfs2: Remove dead code from gfs2_rgrp_read()
       fsck.gfs2: Avoid int overflow in find_next_rgrp_dist
       gfs2_edit: Avoid potential int overflow in find_journal_block()
       gfs2_edit: Avoid a potential int overflow in dump_journal
       gfs2-utils: Avoid some more potential in overflows
       libgfs2: Fix a memory leak in lgfs2_build_jindex
       glocktop: Fix memory leak in show_inode
       gfs2l: Remove some dead code from the interpreter loop
       glocktop: Fix new -Wformat-overflow warnings
       mkfs.gfs2: Zero blocks in alignment gaps
       libgfs2: Use sizeof for 'reserved' fields in ondisk.c
       tests: Add rg test scripts to EXTRA_DIST
       gfs2-utils: Use cluster-devel as contact address
       gfs2-utils: Update translation template

Valentin Vidic (5):
       gfs2_trace: update for python3
       gfs2_lockcapture: update for python3
       Fix spelling errors spotted by lintian
       mkfs.gfs2: fix tests call to gfs_max_blocks
       gfs2-utils tests: Fix testsuite cleanup

More information about the Users mailing list