Hi folks, The attached tarball contains the following patches and a series file: xfs_repair: validate on-disk extent count better xfs_logprint: print all AGI unlinked buckets xfs_fsr: file reads should be O_DIRECT xfsprogs: Die dir1 Die! xfsprogs: sync code to current kernel code xfsprogs: update libxfs to 3.9-rc1 + xfsdev xfsprogs: add CRC32c infrastructure xfsprogs: update libxlog to current kernel code The first 3 patches are miscellaneous fixes I have for various issues that I've triaged over the past couple of weeks, and there should be nothing controversial about them. The xfs_fsr fix almost doubled the speed of defragmenting a large sparse VM image with millions of extents (from copy rate of ~100MB/s to ~180MB/s), so while it's a simple change the effect can be quite dramatic. The fourth patch (Die dir1 Die!) removes support for V1 directories from the userspace toolchains as we discussed last week. I put that before the kernel code sync as it removes over 4000 lines of code and various header files that then don't have to be modified and juggled for the dir2 header changes in the kernel sync patches, making them a little simpler and smaller. The next 3 patches pull all the libxfs code up to match the xfs dev tree shortly after the 3.9-rc1 merge. This is roughly the version of the xfs dev tree the kernel CRC patches apply to, and is close enough for the purposes of adding CRC support to the userspace code without needing to greatly modify the kernel patches. The second-to-last patch introduces all the CRC32c infrastructure necessary to allow the libxlog code to be synced to the kernel code as the 3.8 kernel adds CRC32c encapuslation to the log buffers written to disk. This also lays the groundwork for bring the kernel CRC patches across to userspace. The final patch updates the libxlog code to match the kernel code now that all the infrastructure is in place to allow it to be copied across. This update seems to be relatively robust - I'm not seeing any xfstests regressions as a result of making these changes, and while there are a couple of compile warnings in the libxfs code, they need to be fixed in the kernel code first and sync'd across. Hopefully this tarball is now small enough to make it through the list without getting held up. It's still a large amount of change: 114 files changed, 13327 insertions(+), 14808 deletions(-) but thanks to the dirv1 removal it's actually a net reduction by 1500 lines of code. Full diffstat is below. Comments, testing and feedback welcome.... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx $ git diff --stat --summary 30626ef.. db/Makefile | 2 +- db/check.c | 321 +- db/dir.c | 255 -- db/dir.h | 30 - db/dir2.c | 11 +- db/dir2.h | 30 + db/dir2sf.c | 15 +- db/dirshort.c | 132 - db/dirshort.h | 25 - db/field.c | 29 - db/inode.c | 20 +- db/metadump.c | 23 +- db/sb.c | 7 +- db/type.c | 3 - db/type.h | 2 +- estimate/xfs_estimate.c | 4 +- fsr/xfs_fsr.c | 7 +- include/Makefile | 9 +- include/libxfs.h | 155 +- include/libxlog.h | 32 +- include/linux.h | 1 + include/platform_defs.h.in | 5 + include/project.h | 4 - include/swab.h | 38 + include/xfs.h | 1 + include/xfs_ag.h | 29 +- include/xfs_alloc.h | 57 +- include/xfs_alloc_btree.h | 16 +- include/xfs_arch.h | 16 + include/xfs_attr_leaf.h | 27 +- include/xfs_bmap.h | 325 +- include/xfs_bmap_btree.h | 1 + include/xfs_btree.h | 24 +- include/xfs_buf_item.h | 55 +- include/xfs_cksum.h | 63 + include/xfs_da_btree.h | 59 +- include/xfs_dinode.h | 10 +- include/xfs_dir2.h | 83 +- include/xfs_dir2_block.h | 92 - include/xfs_dir2_data.h | 184 - include/xfs_dir2_format.h | 591 +++ include/xfs_dir2_leaf.h | 253 -- include/xfs_dir2_node.h | 100 - include/xfs_dir2_sf.h | 171 - include/xfs_dir_leaf.h | 113 - include/xfs_dir_sf.h | 99 - include/xfs_fs.h | 38 +- include/xfs_ialloc.h | 17 +- include/xfs_ialloc_btree.h | 2 + include/xfs_inode.h | 237 +- include/xfs_inode_item.h | 22 +- include/xfs_inum.h | 16 - include/xfs_log.h | 31 +- include/xfs_log_priv.h | 101 +- include/xfs_mount.h | 47 +- include/xfs_quota.h | 47 +- include/xfs_rtalloc.h | 4 +- include/xfs_sb.h | 10 +- include/xfs_trace.h | 69 +- include/xfs_trans.h | 88 +- include/xfs_types.h | 25 +- libxfs/Makefile | 26 +- libxfs/crc32.c | 1036 ++++++ libxfs/crc32defs.h | 72 + libxfs/gen_crc32table.c | 144 + libxfs/init.c | 32 +- libxfs/logitem.c | 20 +- libxfs/rdwr.c | 409 ++- libxfs/trans.c | 50 +- libxfs/util.c | 202 +- libxfs/xfs.h | 112 +- libxfs/xfs_alloc.c | 592 +-- libxfs/xfs_alloc_btree.c | 105 +- libxfs/xfs_attr.c | 260 +- libxfs/xfs_attr_leaf.c | 501 +-- libxfs/xfs_bmap.c | 8937 ++++++++++++++++++++++++---------------------- libxfs/xfs_bmap_btree.c | 71 +- libxfs/xfs_btree.c | 188 +- libxfs/xfs_da_btree.c | 1278 ++++--- libxfs/xfs_dir2.c | 149 +- libxfs/xfs_dir2_block.c | 709 ++-- libxfs/xfs_dir2_data.c | 506 ++- libxfs/xfs_dir2_leaf.c | 720 ++-- libxfs/xfs_dir2_node.c | 722 ++-- libxfs/xfs_dir2_priv.h | 152 + libxfs/xfs_dir2_sf.c | 320 +- libxfs/xfs_ialloc.c | 582 +-- libxfs/xfs_ialloc_btree.c | 55 +- libxfs/xfs_inode.c | 409 ++- libxfs/xfs_mount.c | 176 +- libxfs/xfs_rtalloc.c | 77 +- libxfs/xfs_trans.c | 9 +- libxlog/xfs_log_recover.c | 301 +- logprint/log_copy.c | 2 +- logprint/log_dump.c | 2 +- logprint/log_misc.c | 31 +- logprint/log_print_all.c | 23 +- logprint/log_print_trans.c | 4 +- logprint/logprint.c | 2 +- logprint/logprint.h | 10 +- mkfs/proto.c | 10 +- repair/Makefile | 4 +- repair/attr_repair.c | 634 +++- repair/dino_chunks.c | 1 - repair/dinode.c | 39 +- repair/dir.c | 2642 -------------- repair/dir.h | 126 - repair/dir2.c | 354 +- repair/dir2.h | 33 +- repair/init.c | 1 - repair/phase2.c | 7 +- repair/phase4.c | 1 - repair/phase6.c | 1001 +----- repair/prefetch.c | 3 +- 114 files changed, 13327 insertions(+), 14808 deletions(-) delete mode 100644 db/dir.c delete mode 100644 db/dir.h delete mode 100644 db/dirshort.c delete mode 100644 db/dirshort.h create mode 100644 include/xfs_cksum.h delete mode 100644 include/xfs_dir2_block.h delete mode 100644 include/xfs_dir2_data.h create mode 100644 include/xfs_dir2_format.h delete mode 100644 include/xfs_dir2_leaf.h delete mode 100644 include/xfs_dir2_node.h delete mode 100644 include/xfs_dir2_sf.h delete mode 100644 include/xfs_dir_leaf.h delete mode 100644 include/xfs_dir_sf.h create mode 100644 libxfs/crc32.c create mode 100644 libxfs/crc32defs.h create mode 100644 libxfs/gen_crc32table.c create mode 100644 libxfs/xfs_dir2_priv.h delete mode 100644 repair/dir.c delete mode 100644 repair/dir.h
Attachment:
xfsprogs-kern-sync-patchset.tar.gz
Description: Binary data
_______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs