Whamcloud - gitweb
LU-11922 ldiskfs: make dirdata work with metadata_csum 19/34219/4
authorLi Dongyang <dongyangli@ddn.com>
Sat, 9 Feb 2019 05:37:29 +0000 (16:37 +1100)
committerOleg Drokin <green@whamcloud.com>
Fri, 15 Mar 2019 23:45:50 +0000 (23:45 +0000)
commitec7a166a498be607c3882ff11e98b625839e69d0
tree27fc26401a777acdd627ca188e3451b913c7a23c
parent053785b6aea4f608236418a5fa30a99135f6ccf3
LU-11922 ldiskfs: make dirdata work with metadata_csum

Handle ext4_dir_entry_tail correctly, which is a bogus dir entry
contains the checksum at the end of dir leaf block.

Fix how we get to the limit on the dx_root, we can't assume the
rec_len as 12 as . and .. in front of the dx_root have dirdata.

Also includes another fix for large_dir, where we should update
checksum for dx_node calling ext4_handle_dirty_dx_node(). The change
also makes large_dir patch more consistent with the upstream version.

With this we can enable metadata_csum on the targets.

Test-Parameters: fstype=ldiskfs envdefinitions=LDISKFS_MKFS_OPTS="-O metadata_csum"
Signed-off-by: Li Dongyang <dongyangli@ddn.com>
Change-Id: I04df8c30d9d423111e2b4031a7e4b9058101016f
Reviewed-on: https://review.whamcloud.com/34219
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Tested-by: Jenkins
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
23 files changed:
ldiskfs/kernel_patches/patches/rhel7.2/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/rhel7.3/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/rhel7.4/ext4-large-dir.patch
ldiskfs/kernel_patches/patches/rhel7.4/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/rhel7/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/rhel7/ext4-large-dir.patch
ldiskfs/kernel_patches/patches/rhel7/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/sles12/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/sles12/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/sles12sp1/ext4-large-dir.patch
ldiskfs/kernel_patches/patches/sles12sp2/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/sles12sp2/ext4-large-dir.patch
ldiskfs/kernel_patches/patches/sles12sp2/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/sles12sp3/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/sles12sp3/ext4-large-dir.patch
ldiskfs/kernel_patches/patches/sles12sp3/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/ubuntu14+16/ext4-data-in-dirent-001.patch
ldiskfs/kernel_patches/patches/ubuntu14+16/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/ubuntu14+16/ext4-large-dir-001.patch
ldiskfs/kernel_patches/patches/ubuntu14+16/ext4-large-dir.patch
ldiskfs/kernel_patches/patches/ubuntu14+16/ext4-pdirop-001.patch
ldiskfs/kernel_patches/patches/ubuntu14+16/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/ubuntu18/ext4-data-in-dirent.patch