Hi, Recently, our use-case ran into 2 bugs in case doing xfs_remove when the disk space is in-pressure, which may cause xfs shutdown and kernel crash in the xfs log recovery procedure. Here are 2 patches to fix the problem, and a patch adding a helper to optimize the code structure. The 1st patch fixes an uninitialized variable issue. The 2nd patch ensures the blkno in the xfs_buf is updated when doing xfs_da3_swap_lastblock(). The 3rd patch adds a xfs_buf copy helper to optimize the code structure. Changes of v2: - directly set the *logflagsp value to make the code more robust in the 1st commit, - check xfs's crc-feature rather than magic in the 2nd commit, and - fixed code style and rebased onto the master branch. Changes of v3: - fix code style, and - add a new patch which does xfs_buf memcpy in a helper. Changes of v4: - optimize comments. Thanks, Jiachen Jiachen Zhang (1): xfs: ensure logflagsp is initialized in xfs_bmap_del_extent_real Zhang Tianci (2): xfs: update dir3 leaf block metadata after swap xfs: extract xfs_da_buf_copy() helper function fs/xfs/libxfs/xfs_attr_leaf.c | 12 ++---- fs/xfs/libxfs/xfs_bmap.c | 73 +++++++++++++++-------------------- fs/xfs/libxfs/xfs_da_btree.c | 69 +++++++++++++++------------------ fs/xfs/libxfs/xfs_da_btree.h | 2 + 4 files changed, 68 insertions(+), 88 deletions(-) -- 2.20.1