├── .gitignore ├── .mailmap ├── COPYING ├── ChangeLog ├── Documentation ├── clio.txt ├── dlc.txt ├── ladvise_lockahead.txt ├── lfsck.txt ├── lock-ordering ├── osd-api.txt └── versioning.txt ├── LUSTRE-VERSION-GEN ├── MAINTAINERS ├── Makefile.in ├── README ├── autoMakefile.am ├── autogen.sh ├── build ├── .gitignore ├── Makefile ├── Rules.in ├── autoMakefile.am ├── commit-msg ├── doxyfile.api ├── doxyfile.ref ├── doxygen-footer.html ├── doxygen-header.html ├── doxygen-stylesheet.css ├── prepare-commit-msg └── publish_doxygen ├── config ├── .gitignore ├── Makefile.am ├── lustre-build-ldiskfs.m4 ├── lustre-build-linux.m4 ├── lustre-build-zfs.m4 ├── lustre-build.m4 └── lustre-version.m4 ├── configure.ac ├── contrib ├── README ├── git-hooks │ ├── commit-msg │ ├── prepare-commit-msg │ └── tests │ │ ├── commit.badcid │ │ ├── commit.bademail │ │ ├── commit.badname │ │ ├── commit.badsign │ │ ├── commit.dupcid │ │ ├── commit.mdsfst │ │ ├── commit.nobody │ │ ├── commit.nocmp │ │ ├── commit.nojira │ │ ├── commit.nosign │ │ ├── commit.nosum │ │ ├── commit.ok_bugid │ │ ├── commit.ok_chmod │ │ ├── commit.ok_cid │ │ ├── commit.ok_comment │ │ ├── commit.ok_deleted │ │ ├── commit.ok_diff │ │ ├── commit.ok_diffinside │ │ ├── commit.ok_dupsign │ │ ├── commit.ok_innocuous │ │ ├── commit.ok_nocid │ │ ├── commit.ok_params │ │ ├── commit.ok_signoff │ │ └── test-commit-msg.sh ├── lbuild │ ├── exit_traps.sh │ ├── find_linux_rpms │ ├── funcs.sh │ ├── lbuild │ ├── lbuild-fc │ ├── lbuild-fc11 │ ├── lbuild-fc12 │ ├── lbuild-fc15 │ ├── lbuild-fc18 │ ├── lbuild-oel5 │ ├── lbuild-rhel │ ├── lbuild-rhel5 │ ├── lbuild-rhel6 │ ├── lbuild-rhel7 │ ├── lbuild-rhel8 │ ├── lbuild-sles │ ├── lbuild-sles10 │ ├── lbuild-sles11 │ ├── lbuild-sles12 │ ├── rhel7 │ │ ├── .gitignore │ │ ├── kmodtool.patch │ │ └── rpmmacros.template │ └── rhel8 │ │ ├── .gitignore │ │ ├── kmodtool.patch │ │ └── rpmmacros.template ├── nn-final-symbol-list.txt ├── patches │ └── mptlinux.spec.patch ├── quiltrc ├── rdac_spec └── scripts │ ├── checkpatch.pl │ ├── checkstack.pl │ ├── clearpatches.sh │ ├── confirmpatches.sh │ ├── const_structs.checkpatch │ ├── gerrit_checkpatch.py │ ├── get_maintainer.pl │ ├── libcfs_cleanup.sed │ ├── lioprof │ ├── README │ ├── launcher.sh │ └── parser.sh │ ├── spelling.txt │ ├── update_oldconfig │ └── updatecw.sh ├── debian ├── .gitignore ├── README.Debian ├── changelog ├── compat ├── control ├── control.main ├── control.modules.in ├── copyright ├── dkms.conf.in ├── lustre-client-modules-dkms.postinst ├── lustre-client-modules-dkms.prerm ├── lustre-client-modules.install ├── lustre-client-utils.docs ├── lustre-client-utils.examples ├── lustre-client-utils.install.in ├── lustre-client-utils.manpages ├── lustre-dev.dirs ├── lustre-dev.install ├── lustre-iokit.docs ├── lustre-iokit.install ├── lustre-resource-agents.dirs ├── lustre-resource-agents.install ├── lustre-server-modules.install ├── lustre-server-utils.docs ├── lustre-server-utils.examples ├── lustre-server-utils.install.in ├── lustre-server-utils.manpages ├── lustre-source.dirs ├── lustre-source.docs ├── lustre-tests.install ├── postinst ├── postrm ├── rules └── source │ └── format ├── ldiskfs ├── .gitignore ├── Makefile.in ├── README ├── autoMakefile.am └── kernel_patches │ ├── patches │ ├── base │ │ └── ext4-no-max-dir-size-limit-for-iam-objects.patch │ ├── rhel6.3 │ │ ├── export-ext4-2.6.patch │ │ ├── ext4-add-missing-kfree-on-error-return-path-in-add_new_gdb.patch │ │ ├── ext4-add-more-error-checks-to-ext4_mkdir.patch │ │ ├── ext4-back-dquot-to.patch │ │ ├── ext4-data-in-dirent.patch │ │ ├── ext4-disable-mb-cache.patch │ │ ├── ext4-dont-check-before-replay.patch │ │ ├── ext4-dont-check-in-ro.patch │ │ ├── ext4-drop-inode-from-orphan-list-if-ext4_delete_inode-fails.patch │ │ ├── ext4-export-64bit-name-hash.patch │ │ ├── ext4-fix-ext4_mb_add_n_trim.patch │ │ ├── ext4-fix-mbgroups-access.patch │ │ ├── ext4-hash-indexed-dir-dotdot-update.patch │ │ ├── ext4-inode-version.patch │ │ ├── ext4-inode_info_reorganize.patch │ │ ├── ext4-introduce-ext4_kvmalloc-ext4_kzalloc-and-ext4_kvfree.patch │ │ ├── ext4-journal-callback.patch │ │ ├── ext4-journal-path-opt.patch │ │ ├── ext4-kill-dx_root.patch │ │ ├── ext4-large-dir.patch │ │ ├── ext4-large-eas.patch │ │ ├── ext4-lookup-dotdot.patch │ │ ├── ext4-map_inode_page-2.6.18.patch │ │ ├── ext4-max-dir-size-options.patch │ │ ├── ext4-max-dir-size.patch │ │ ├── ext4-mballoc-extra-checks.patch │ │ ├── ext4-mballoc-pa_free-mismatch.patch │ │ ├── ext4-misc.patch │ │ ├── ext4-mmp-dont-mark-bh-dirty.patch │ │ ├── ext4-mmp.patch │ │ ├── ext4-nlink-2.6.patch │ │ ├── ext4-nocmtime-2.6.patch │ │ ├── ext4-not-discard-preallocation-umount.patch │ │ ├── ext4-notalloc_under_idatasem.patch │ │ ├── ext4-osd-iam-exports.patch │ │ ├── ext4-osd-iop-common.patch │ │ ├── ext4-pdir-fix.patch │ │ ├── ext4-pdirop.patch │ │ ├── ext4-prealloc.patch │ │ ├── ext4-print-inum-in-htree-warning.patch │ │ ├── ext4-quota-dont-update-cmtime.patch │ │ ├── ext4-quota-first-class.patch │ │ ├── ext4-quota-force-block-alloc-quotaoff.patch │ │ ├── ext4-recalc-percpu-counters-after-journal.patch │ │ ├── ext4-remove-cond_resched-calls.patch │ │ ├── ext4-store-tree-generation-at-find.patch │ │ ├── ext4-use-correct-inode.patch │ │ ├── ext4-use-ext4_kvzalloc-ext4_kvmalloc-for-s_group_desc-and-s_group_info.patch │ │ └── ext4-use-vzalloc-in-ext4_fill_flex_info.patch │ ├── rhel6.4 │ │ ├── ext4-back-dquot-to.patch │ │ ├── ext4-extra-isize.patch │ │ ├── ext4-fix-mbgroups-access.patch │ │ ├── ext4-max-dir-size-options.patch │ │ ├── ext4-mballoc-pa_free-mismatch.patch │ │ ├── ext4-misc.patch │ │ ├── ext4-mmp.patch │ │ ├── ext4-prealloc.patch │ │ └── ext4-vmalloc.patch │ ├── rhel6.5 │ │ ├── ext4-add-new-abstraction-ext4_map_blocks.patch │ │ ├── ext4-brackets-in-ext4-remove-blocks.patch │ │ ├── ext4-fix-journal-quota.patch │ │ ├── ext4-give-warning-with-dir-htree-growing.patch │ │ └── ext4-quota-first-class.patch │ ├── rhel6.6 │ │ ├── ext4-add-new-abstraction-ext4_map_blocks.patch │ │ ├── ext4-corrupted-inode-block-bitmaps-handling-patches.patch │ │ ├── ext4-inode_info_reorganize.patch │ │ ├── ext4-mmp-dont-mark-bh-dirty.patch │ │ ├── ext4-remove-truncate-warning.patch │ │ └── ext4_s_max_ext_tree_depth.patch │ ├── rhel6.8 │ │ ├── ext4-journal-callback.patch │ │ └── ext4-pdirop.patch │ ├── rhel6.9 │ │ ├── ext4-journal-callback.patch │ │ ├── ext4-pdirop.patch │ │ └── ext4-prealloc.patch │ ├── rhel7.2 │ │ ├── ext4-dont-check-before-replay.patch │ │ ├── ext4-dont-check-in-ro.patch │ │ ├── ext4-export-mb-stream-allocator-variables.patch │ │ ├── ext4-large-eas.patch │ │ ├── ext4-pdirop.patch │ │ ├── ext4-preread-gd.patch │ │ ├── ext4-release-bh-in-makeinxdir.patch │ │ ├── ext4-remove-i_data_sem-from-xattr.patch │ │ └── ext4-simple-blockalloc.patch │ ├── rhel7.3 │ │ ├── ext4-corrupted-inode-block-bitmaps-handling-patches.patch │ │ ├── ext4-data-in-dirent.patch │ │ └── ext4-disable-mb-cache.patch │ ├── rhel7.4 │ │ ├── ext4-attach-jinode-in-writepages.patch │ │ ├── ext4-dont-check-before-replay.patch │ │ ├── ext4-fix-xattr-shifting-when-expanding-inodes.patch │ │ ├── ext4-large-dir.patch │ │ ├── ext4-pdirop.patch │ │ ├── ext4-prealloc.patch │ │ └── ext4-remove-i_data_sem-from-xattr.patch │ ├── rhel7.5 │ │ └── ext4-projid-xfs-ioctls.patch │ ├── rhel7.6 │ │ ├── ext4-corrupted-inode-block-bitmaps-handling-patches.patch │ │ ├── ext4-dont-check-before-replay.patch │ │ ├── ext4-large-eas.patch │ │ └── ext4-osd-iop-common.patch │ ├── rhel7.7 │ │ ├── ext4-fix-project-with-unpatched-kernel.patch │ │ ├── ext4-fix-xattr-shifting-when-expanding-inodes.patch │ │ ├── ext4-large-dir.patch │ │ ├── ext4-large-eas.patch │ │ ├── ext4-misc.patch │ │ ├── ext4-pdirop.patch │ │ └── ext4-projid-ignore-maxquotas.patch │ ├── rhel7.9 │ │ └── ext4-pdirop.patch │ ├── rhel7 │ │ ├── ext4-cleanup-goto-next-group.patch │ │ ├── ext4-corrupted-inode-block-bitmaps-handling-patches.patch │ │ ├── ext4-data-in-dirent.patch │ │ ├── ext4-disable-mb-cache.patch │ │ ├── ext4-export-orphan-add.patch │ │ ├── ext4-fix-xattr-shifting-when-expanding-inodes.patch │ │ ├── ext4-give-warning-with-dir-htree-growing.patch │ │ ├── ext4-hash-indexed-dir-dotdot-update.patch │ │ ├── ext4-include-terminating-u32-in-size-of-xattr-entries-when-expanding-inodes.patch │ │ ├── ext4-inode-version.patch │ │ ├── ext4-jcb-optimization.patch │ │ ├── ext4-kill-dx-root.patch │ │ ├── ext4-large-dir.patch │ │ ├── ext4-large-eas.patch │ │ ├── ext4-lookup-dotdot.patch │ │ ├── ext4-max-dir-size.patch │ │ ├── ext4-mballoc-extra-checks.patch │ │ ├── ext4-mballoc-pa-free-mismatch.patch │ │ ├── ext4-mballoc-skip-uninit-groups-cr0.patch │ │ ├── ext4-misc.patch │ │ ├── ext4-mmp-brelse.patch │ │ ├── ext4-mmp-dont-mark-bh-dirty.patch │ │ ├── ext4-nocmtime.patch │ │ ├── ext4-optimize-ext4_find_delalloc_range-in-nodelalloc.patch │ │ ├── ext4-osd-iop-common.patch │ │ ├── ext4-pdirop.patch │ │ ├── ext4-prealloc.patch │ │ ├── ext4-projid-feature-support.patch │ │ ├── ext4-projid-ignore-maxquotas.patch │ │ ├── ext4-projid-quotas.patch │ │ ├── ext4-projid-xfs-ioctls.patch │ │ ├── ext4-reduce-lock-contention-in-__ext4_new_inode.patch │ │ ├── ext4-remove-i_data_sem-from-xattr.patch │ │ ├── ext4-remove-truncate-warning.patch │ │ ├── ext4-use-GFP_NOFS-in-ext4_inode_attach_jinode.patch │ │ └── ext4_s_max_ext_tree_depth.patch │ ├── rhel8 │ │ └── ext4-mballoc-skip-uninit-groups-cr0.patch │ ├── sles11sp1 │ │ ├── ext4-ext_generation.patch │ │ ├── ext4-max-dir-size-options.patch │ │ ├── ext4-notalloc_under_idatasem.patch │ │ └── ext4-update-sles11-rhel6.patch │ ├── sles11sp2 │ │ ├── export-ext4-3.0.patch │ │ ├── ext4-corrupted-inode-block-bitmaps-handling-patches.patch │ │ ├── ext4-data-in-dirent.patch │ │ ├── ext4-disable-mb-cache.patch │ │ ├── ext4-ext_generation.patch │ │ ├── ext4-handle-cleanup-after-quota-failure.patch │ │ ├── ext4-introduce-ext4_kvmalloc-ext4_kzalloc-and-ext4_kvfree.patch │ │ ├── ext4-journal-callback.patch │ │ ├── ext4-kill-dx_root.patch │ │ ├── ext4-large-dir.patch │ │ ├── ext4-large-eas.patch │ │ ├── ext4-lookup-dotdot.patch │ │ ├── ext4-make-quota-as-first-class-supported-feature.patch │ │ ├── ext4-map_inode_page-3.0.patch │ │ ├── ext4-max-dir-size-options.patch │ │ ├── ext4-mballoc-extra-checks.patch │ │ ├── ext4-mballoc-pa_free-mismatch.patch │ │ ├── ext4-misc.patch │ │ ├── ext4-mmp-dont-mark-bh-dirty.patch │ │ ├── ext4-osd-iop-common.patch │ │ ├── ext4-prealloc.patch │ │ ├── ext4-speed-up-fitrim-by-recording-flags-in-ext4_group_info.patch │ │ ├── ext4-store-tree-generation-at-find.patch │ │ ├── ext4-use-ext4_kvzalloc-ext4_kvmalloc-for-s_group_desc-and-s_group_info.patch │ │ ├── ext4-use-ext4_msg-instead-of-printk-in-mballoc.patch │ │ ├── restore-path-in-walk_extent_callback.patch │ │ └── revert-ext4-avoid-uninitialized-memory-references-in-ext3_htree_next_block.patch │ ├── sles11sp3 │ │ ├── ext4-dont-check-before-replay.patch │ │ ├── ext4-mmp-brelse.patch │ │ └── ext4_s_max_ext_tree_depth.patch │ ├── sles11sp4 │ │ └── ext4-large-dir.patch │ ├── sles12 │ │ ├── ext4-corrupted-inode-block-bitmaps-handling-patches.patch │ │ ├── ext4-data-in-dirent.patch │ │ ├── ext4-inode-version.patch │ │ ├── ext4-large-eas.patch │ │ ├── ext4-misc.patch │ │ ├── ext4-pdirop.patch │ │ ├── ext4-prealloc.patch │ │ └── ext4-remove-truncate-warning.patch │ ├── sles12sp1 │ │ ├── ext4-attach-jinode-in-writepages.patch │ │ ├── ext4-large-dir.patch │ │ └── ext4-lookup-dotdot.patch │ ├── sles12sp2 │ │ ├── ext4-attach-jinode-in-writepages.patch │ │ ├── ext4-corrupted-inode-block-bitmaps-handling-patches.patch │ │ ├── ext4-data-in-dirent.patch │ │ ├── ext4-disable-mb-cache.patch │ │ ├── ext4-dont-check-before-replay.patch │ │ ├── ext4-export-mb-stream-allocator-variables.patch │ │ ├── ext4-fix-xattr-shifting-when-expanding-inodes.patch │ │ ├── ext4-give-warning-with-dir-htree-growing.patch │ │ ├── ext4-hash-indexed-dir-dotdot-update.patch │ │ ├── ext4-inode-version.patch │ │ ├── ext4-kill-dx-root.patch │ │ ├── ext4-large-dir.patch │ │ ├── ext4-large-eas.patch │ │ ├── ext4-lookup-dotdot.patch │ │ ├── ext4-max-dir-size.patch │ │ ├── ext4-mballoc-extra-checks.patch │ │ ├── ext4-misc.patch │ │ ├── ext4-mmp-brelse.patch │ │ ├── ext4-osd-iop-common.patch │ │ ├── ext4-pdirop.patch │ │ ├── ext4-prealloc.patch │ │ ├── ext4-print-inum-in-htree-warning.patch │ │ └── ext4_s_max_ext_tree_depth.patch │ ├── sles12sp3 │ │ ├── ext4-corrupted-inode-block-bitmaps-handling-patches.patch │ │ ├── ext4-data-in-dirent.patch │ │ ├── ext4-disable-mb-cache.patch │ │ ├── ext4-dont-check-before-replay.patch │ │ ├── ext4-large-dir.patch │ │ ├── ext4-large-eas.patch │ │ ├── ext4-max-dir-size.patch │ │ ├── ext4-mballoc-extra-checks.patch │ │ └── ext4-pdirop.patch │ ├── ubuntu14+16 │ │ ├── ext4-data-in-dirent-001.patch │ │ ├── ext4-data-in-dirent.patch │ │ ├── ext4-disable-mb-cache-001.patch │ │ ├── ext4-disable-mb-cache.patch │ │ ├── ext4-large-dir-001.patch │ │ ├── ext4-large-dir.patch │ │ ├── ext4-large-eas.patch │ │ ├── ext4-misc.patch │ │ ├── ext4-pdirop-001.patch │ │ └── ext4-pdirop.patch │ └── ubuntu18 │ │ ├── ext4-attach-jinode-in-writepages.patch │ │ ├── ext4-corrupted-inode-block-bitmaps-handling-patches-001.patch │ │ ├── ext4-corrupted-inode-block-bitmaps-handling-patches.patch │ │ ├── ext4-data-in-dirent.patch │ │ ├── ext4-dont-check-before-replay.patch │ │ ├── ext4-give-warning-with-dir-htree-growing.patch │ │ ├── ext4-hash-indexed-dir-dotdot-update.patch │ │ ├── ext4-include-terminating-u32-in-size-of-xattr-entries-when-expanding-inodes.patch │ │ ├── ext4-jcb-optimization.patch │ │ ├── ext4-kill-dx-root.patch │ │ ├── ext4-mballoc-extra-checks.patch │ │ ├── ext4-misc.patch │ │ ├── ext4-nocmtime.patch │ │ ├── ext4-osd-iop-common.patch │ │ ├── ext4-pdirop.patch │ │ └── ext4-remove-truncate-warning.patch │ └── series │ ├── ldiskfs-2.6-rhel6.4.series │ ├── ldiskfs-2.6-rhel6.5.series │ ├── ldiskfs-2.6-rhel6.6.series │ ├── ldiskfs-2.6-rhel6.7.series │ ├── ldiskfs-2.6-rhel6.8.series │ ├── ldiskfs-2.6-rhel6.9.series │ ├── ldiskfs-2.6-rhel6.series │ ├── ldiskfs-2.6-sles11.series │ ├── ldiskfs-3.0-sles11.series │ ├── ldiskfs-3.0-sles11sp3.series │ ├── ldiskfs-3.0-sles11sp4.series │ ├── ldiskfs-3.10-rhel7.2.series │ ├── ldiskfs-3.10-rhel7.3.series │ ├── ldiskfs-3.10-rhel7.4.series │ ├── ldiskfs-3.10-rhel7.5.series │ ├── ldiskfs-3.10-rhel7.6.series │ ├── ldiskfs-3.10-rhel7.7.series │ ├── ldiskfs-3.10-rhel7.8.series │ ├── ldiskfs-3.10-rhel7.9.series │ ├── ldiskfs-3.10-rhel7.series │ ├── ldiskfs-3.12-sles12.series │ ├── ldiskfs-3.12-sles12sp1.series │ ├── ldiskfs-4.15.0-20-ubuntu18.series │ ├── ldiskfs-4.15.0-24-ubuntu18.series │ ├── ldiskfs-4.4-sles12sp2.series │ ├── ldiskfs-4.4-sles12sp3.series │ ├── ldiskfs-4.4.0-45-ubuntu14+16.series │ ├── ldiskfs-4.4.0-49-ubuntu14+16.series │ ├── ldiskfs-4.4.0-62-ubuntu14+16.series │ └── ldiskfs-4.4.0-73-ubuntu14+16.series ├── libcfs ├── .empty ├── .gitignore ├── ChangeLog ├── Makefile.in ├── autoMakefile.am ├── autoconf │ ├── .empty │ │ └── .empty │ ├── .gitignore │ ├── Makefile.am │ └── lustre-libcfs.m4 ├── include │ ├── .gitignore │ ├── Makefile.am │ └── libcfs │ │ ├── .gitignore │ │ ├── Makefile.am │ │ ├── bitmap.h │ │ ├── curproc.h │ │ ├── libcfs.h │ │ ├── libcfs_cpu.h │ │ ├── libcfs_crypto.h │ │ ├── libcfs_debug.h │ │ ├── libcfs_fail.h │ │ ├── libcfs_hash.h │ │ ├── libcfs_heap.h │ │ ├── libcfs_prim.h │ │ ├── libcfs_private.h │ │ ├── libcfs_string.h │ │ ├── libcfs_workitem.h │ │ ├── linux │ │ ├── .gitignore │ │ ├── Makefile.am │ │ ├── linux-cpu.h │ │ ├── linux-crypto.h │ │ ├── linux-fs.h │ │ ├── linux-hash.h │ │ ├── linux-list.h │ │ ├── linux-mem.h │ │ ├── linux-misc.h │ │ ├── linux-time.h │ │ └── linux-wait.h │ │ └── util │ │ ├── .gitignore │ │ ├── Makefile.am │ │ ├── hash.h │ │ ├── ioctl.h │ │ ├── list.h │ │ ├── param.h │ │ ├── parser.h │ │ └── string.h └── libcfs │ ├── .gitignore │ ├── Makefile.in │ ├── autoMakefile.am │ ├── debug.c │ ├── fail.c │ ├── hash.c │ ├── heap.c │ ├── libcfs_cpu.c │ ├── libcfs_lock.c │ ├── libcfs_mem.c │ ├── libcfs_string.c │ ├── linux │ ├── .gitignore │ ├── Makefile.am │ ├── crc32-pclmul_asm.S │ ├── crc32c-pcl-intel-asm_64.S │ ├── inst.h │ ├── linux-crypto-adler.c │ ├── linux-crypto-crc32.c │ ├── linux-crypto-crc32c-pclmul.c │ ├── linux-crypto-crc32pclmul.c │ ├── linux-crypto.c │ ├── linux-curproc.c │ ├── linux-debug.c │ ├── linux-hash.c │ ├── linux-module.c │ ├── linux-prim.c │ ├── linux-tracefile.c │ └── linux-wait.c │ ├── module.c │ ├── prng.c │ ├── tracefile.c │ ├── tracefile.h │ ├── util │ ├── .gitignore │ ├── Makefile.am │ ├── l_ioctl.c │ ├── nidstrings.c │ ├── param.c │ ├── parser.c │ └── string.c │ ├── watchdog.c │ └── workitem.c ├── lnet ├── .gitignore ├── ChangeLog ├── LICENSE ├── Makefile.in ├── autoMakefile.am ├── autoconf │ ├── .gitignore │ ├── Makefile.am │ └── lustre-lnet.m4 ├── doc │ ├── .gitignore │ ├── Data-structures │ ├── Makefile.am │ ├── Message-life-cycle │ ├── NAL-HOWTO │ ├── file.fig │ ├── flow_new.fig │ ├── get.fig │ ├── ieee.bst │ ├── mpi.fig │ ├── portals.fig │ ├── portals3.bib │ ├── portals3.lyx │ └── put.fig ├── include │ ├── .gitignore │ ├── Makefile.am │ ├── cyaml.h │ ├── lnet │ │ ├── .gitignore │ │ ├── Makefile.am │ │ ├── api.h │ │ ├── lib-lnet.h │ │ ├── lib-types.h │ │ └── socklnd.h │ └── uapi │ │ └── linux │ │ └── lnet │ │ ├── .gitignore │ │ ├── Makefile.am │ │ ├── libcfs_debug.h │ │ ├── libcfs_ioctl.h │ │ ├── lnet-dlc.h │ │ ├── lnet-types.h │ │ ├── lnetctl.h │ │ ├── lnetst.h │ │ ├── nidstr.h │ │ └── socklnd.h ├── klnds │ ├── Makefile.in │ ├── autoMakefile.am │ ├── gnilnd │ │ ├── Makefile.in │ │ ├── autoMakefile.am │ │ ├── gni_pub.h │ │ ├── gnilnd.c │ │ ├── gnilnd.h │ │ ├── gnilnd_api_wrap.h │ │ ├── gnilnd_aries.h │ │ ├── gnilnd_cb.c │ │ ├── gnilnd_conn.c │ │ ├── gnilnd_debug.c │ │ ├── gnilnd_gemini.h │ │ ├── gnilnd_hss_ops.h │ │ ├── gnilnd_modparams.c │ │ ├── gnilnd_proc.c │ │ ├── gnilnd_stack.c │ │ └── gnilnd_sysctl.c │ ├── o2iblnd │ │ ├── .gitignore │ │ ├── Makefile.in │ │ ├── autoMakefile.am │ │ ├── o2iblnd.c │ │ ├── o2iblnd.h │ │ ├── o2iblnd_cb.c │ │ └── o2iblnd_modparams.c │ └── socklnd │ │ ├── Makefile.in │ │ ├── autoMakefile.am │ │ ├── socklnd.c │ │ ├── socklnd.h │ │ ├── socklnd_cb.c │ │ ├── socklnd_lib.c │ │ ├── socklnd_modparams.c │ │ └── socklnd_proto.c ├── lnet │ ├── Makefile.in │ ├── acceptor.c │ ├── api-ni.c │ ├── autoMakefile.am │ ├── config.c │ ├── lib-eq.c │ ├── lib-md.c │ ├── lib-me.c │ ├── lib-move.c │ ├── lib-msg.c │ ├── lib-ptl.c │ ├── lib-socket.c │ ├── lo.c │ ├── module.c │ ├── net_fault.c │ ├── nidstrings.c │ ├── peer.c │ ├── router.c │ └── router_proc.c ├── selftest │ ├── Makefile.in │ ├── autoMakefile.am │ ├── brw_test.c │ ├── conctl.c │ ├── conrpc.c │ ├── conrpc.h │ ├── console.c │ ├── console.h │ ├── framework.c │ ├── module.c │ ├── ping_test.c │ ├── rpc.c │ ├── rpc.h │ ├── selftest.h │ ├── timer.c │ └── timer.h └── utils │ ├── .gitignore │ ├── Makefile.am │ ├── lbstats │ ├── lnetconfig │ ├── .gitignore │ ├── Makefile.am │ ├── cyaml.c │ ├── liblnd.h │ ├── liblnetconfig.c │ ├── liblnetconfig.h │ └── liblnetconfig_lnd.c │ ├── lnetctl.c │ ├── lnetunload │ ├── lst.c │ ├── routerstat.c │ └── wirecheck.c ├── lustre-dkms.spec.in ├── lustre-dkms_post-build.sh ├── lustre-dkms_pre-build.sh ├── lustre-iokit ├── .gitignore ├── AUTHORS ├── ChangeLog ├── Makefile.am ├── NEWS ├── README ├── ior-survey │ ├── .gitignore │ ├── Makefile.am │ ├── README.ior-survey │ ├── iokit-parse-ior │ └── ior-survey ├── mds-survey │ ├── .gitignore │ ├── Makefile.am │ ├── README.mds-survey │ └── mds-survey ├── obdfilter-survey │ ├── .gitignore │ ├── Makefile.am │ ├── README.obdfilter-survey │ ├── iokit-libecho │ ├── iokit-plot-obdfilter │ └── obdfilter-survey ├── ost-survey │ ├── .gitignore │ ├── Makefile.am │ ├── README.ost-survey │ ├── iokit-plot-ost │ └── ost-survey ├── sgpdd-survey │ ├── .gitignore │ ├── Makefile.am │ ├── README.sgpdd-survey │ ├── iokit-plot-sgpdd │ └── sgpdd-survey └── stats-collect │ ├── .gitignore │ ├── Makefile.am │ ├── README.iokit-lstats │ ├── iokit-config │ ├── iokit-gather-stats │ └── iokit-lstats ├── lustre.spec.in ├── lustre ├── .gitignore ├── BUGS ├── BUILDING ├── ChangeLog ├── LICENSE ├── Makefile.in ├── autoMakefile.am ├── autoconf │ ├── .gitignore │ ├── Makefile.am │ ├── kerberos5.m4 │ └── lustre-core.m4 ├── conf │ ├── .gitignore │ ├── 99-lustre-server.rules │ ├── 99-lustre.rules │ ├── Makefile.am │ ├── ko2iblnd.conf │ ├── ldev.conf │ ├── lgssc.conf │ ├── lnet.conf │ ├── lnet_routes.conf │ ├── lsvcgss │ ├── lustre │ ├── lustre.dtd │ ├── lustre2ldif.xsl │ ├── modules.conf │ ├── resource │ │ ├── Lustre │ │ ├── Makefile.am │ │ ├── healthLNET │ │ └── healthLUSTRE │ └── top.ldif ├── contrib │ ├── .gitignore │ ├── Makefile.am │ └── lustre_server.sh ├── doc │ ├── .gitignore │ ├── Makefile.am │ ├── l_getidentity.8 │ ├── l_getsepol.8 │ ├── lctl-barrier.8 │ ├── lctl-lcfg.8 │ ├── lctl-lfsck-query.8 │ ├── lctl-lfsck-start.8 │ ├── lctl-lfsck-stop.8 │ ├── lctl-llog_catlist.8 │ ├── lctl-llog_info.8 │ ├── lctl-llog_print.8 │ ├── lctl-network.8 │ ├── lctl-nodemap-activate.8 │ ├── lctl-nodemap-add-idmap.8 │ ├── lctl-nodemap-add-range.8 │ ├── lctl-nodemap-add.8 │ ├── lctl-nodemap-del-idmap.8 │ ├── lctl-nodemap-del-range.8 │ ├── lctl-nodemap-del.8 │ ├── lctl-nodemap-modify.8 │ ├── lctl-nodemap-set-fileset.8 │ ├── lctl-nodemap-set-sepol.8 │ ├── lctl-snapshot-create.8 │ ├── lctl-snapshot-destroy.8 │ ├── lctl-snapshot-list.8 │ ├── lctl-snapshot-modify.8 │ ├── lctl-snapshot-mount.8 │ ├── lctl-snapshot-umount.8 │ ├── lctl.8 │ ├── ldev.8 │ ├── ldev.conf.5 │ ├── lfs-df.1 │ ├── lfs-find.1 │ ├── lfs-getdirstripe.1 │ ├── lfs-getsom.1 │ ├── lfs-getstripe.1 │ ├── lfs-hsm.1 │ ├── lfs-ladvise.1 │ ├── lfs-migrate.1 │ ├── lfs-mirror-copy.1 │ ├── lfs-mirror-create.1 │ ├── lfs-mirror-extend.1 │ ├── lfs-mirror-read.1 │ ├── lfs-mirror-resync.1 │ ├── lfs-mirror-split.1 │ ├── lfs-mirror-verify.1 │ ├── lfs-mirror-write.1 │ ├── lfs-mkdir.1 │ ├── lfs-project.1 │ ├── lfs-rmfid.1 │ ├── lfs-setdirstripe.1 │ ├── lfs-setquota.1 │ ├── lfs-setstripe.1 │ ├── lfs.1 │ ├── lfs_migrate.1 │ ├── lgss_sk.8 │ ├── lhbadm.8 │ ├── ll_decode_filter_fid.8 │ ├── ll_decode_linkea.8 │ ├── llapi_create_volatile_param.3 │ ├── llapi_fd2parent.3 │ ├── llapi_file_create.3 │ ├── llapi_file_get_stripe.3 │ ├── llapi_file_open.3 │ ├── llapi_get_lum_dir.3 │ ├── llapi_get_lum_dir_fd.3 │ ├── llapi_get_lum_file.3 │ ├── llapi_get_lum_file_fd.3 │ ├── llapi_group_lock.3 │ ├── llapi_group_unlock.3 │ ├── llapi_hsm_action_begin.3 │ ├── llapi_hsm_action_end.3 │ ├── llapi_hsm_action_get_dfid.3 │ ├── llapi_hsm_action_get_fd.3 │ ├── llapi_hsm_action_progress.3 │ ├── llapi_hsm_copytool_get_fd.3 │ ├── llapi_hsm_copytool_recv.3 │ ├── llapi_hsm_copytool_register.3 │ ├── llapi_hsm_copytool_unregister.3 │ ├── llapi_hsm_state_get.3 │ ├── llapi_hsm_state_set.3 │ ├── llapi_ladvise.3 │ ├── llapi_layout.7 │ ├── llapi_layout_alloc.3 │ ├── llapi_layout_comp_add.3 │ ├── llapi_layout_comp_del.3 │ ├── llapi_layout_comp_extent_get.3 │ ├── llapi_layout_comp_extent_set.3 │ ├── llapi_layout_comp_flags_clear.3 │ ├── llapi_layout_comp_flags_get.3 │ ├── llapi_layout_comp_flags_set.3 │ ├── llapi_layout_comp_id_get.3 │ ├── llapi_layout_comp_use.3 │ ├── llapi_layout_comp_use_id.3 │ ├── llapi_layout_file_comp_add.3 │ ├── llapi_layout_file_comp_del.3 │ ├── llapi_layout_file_create.3 │ ├── llapi_layout_file_open.3 │ ├── llapi_layout_free.3 │ ├── llapi_layout_get_by_fd.3 │ ├── llapi_layout_get_by_fid.3 │ ├── llapi_layout_get_by_path.3 │ ├── llapi_layout_get_by_xattr.3 │ ├── llapi_layout_ost_index_get.3 │ ├── llapi_layout_ost_index_set.3 │ ├── llapi_layout_pattern_get.3 │ ├── llapi_layout_pattern_set.3 │ ├── llapi_layout_pool_name_get.3 │ ├── llapi_layout_pool_name_set.3 │ ├── llapi_layout_stripe_count_get.3 │ ├── llapi_layout_stripe_count_set.3 │ ├── llapi_layout_stripe_size_get.3 │ ├── llapi_layout_stripe_size_set.3 │ ├── llapi_param_get_paths.3 │ ├── llapi_param_get_value.3 │ ├── llapi_path2fid.3 │ ├── llapi_path2parent.3 │ ├── llapi_quotactl.3 │ ├── llapi_rmfid.3 │ ├── llobdstat.8 │ ├── llog_reader.8 │ ├── llsom_sync.8 │ ├── llstat.8 │ ├── llverdev.8 │ ├── llverfs.txt │ ├── lnetctl.8 │ ├── lshowmount.8 │ ├── lst.8 │ ├── lustre.7 │ ├── lustre_routes_config.8 │ ├── lustre_routes_conversion.8 │ ├── lustre_rsync.8 │ ├── lustreapi.7 │ ├── mkfs.lustre.8 │ ├── mount.lustre.8 │ ├── nids.5 │ ├── plot-llstat.8 │ ├── routerstat.8 │ └── tunefs.lustre.8 ├── fid │ ├── Makefile.in │ ├── autoMakefile.am │ ├── fid_handler.c │ ├── fid_internal.h │ ├── fid_lib.c │ ├── fid_request.c │ ├── fid_store.c │ └── lproc_fid.c ├── fld │ ├── Makefile.in │ ├── autoMakefile.am │ ├── fld_cache.c │ ├── fld_handler.c │ ├── fld_index.c │ ├── fld_internal.h │ ├── fld_request.c │ └── lproc_fld.c ├── include │ ├── .gitignore │ ├── Makefile.am │ ├── cl_object.h │ ├── dt_object.h │ ├── interval_tree.h │ ├── llog_swab.h │ ├── lprocfs_status.h │ ├── lu_object.h │ ├── lu_ref.h │ ├── lu_target.h │ ├── lustre │ │ ├── .gitignore │ │ ├── Makefile.am │ │ ├── libiam.h │ │ ├── liblustreapi.h │ │ ├── ll_fiemap.h │ │ ├── lustre_barrier_user.h │ │ ├── lustre_lfsck_user.h │ │ ├── lustre_user.h │ │ └── lustreapi.h │ ├── lustre_acl.h │ ├── lustre_barrier.h │ ├── lustre_compat.h │ ├── lustre_debug.h │ ├── lustre_disk.h │ ├── lustre_dlm.h │ ├── lustre_dlm_flags.h │ ├── lustre_eacl.h │ ├── lustre_errno.h │ ├── lustre_export.h │ ├── lustre_fid.h │ ├── lustre_fld.h │ ├── lustre_ha.h │ ├── lustre_handles.h │ ├── lustre_idmap.h │ ├── lustre_import.h │ ├── lustre_intent.h │ ├── lustre_kernelcomm.h │ ├── lustre_lfsck.h │ ├── lustre_lib.h │ ├── lustre_linkea.h │ ├── lustre_lmv.h │ ├── lustre_log.h │ ├── lustre_mdc.h │ ├── lustre_mds.h │ ├── lustre_net.h │ ├── lustre_nodemap.h │ ├── lustre_nrs.h │ ├── lustre_nrs_crr.h │ ├── lustre_nrs_delay.h │ ├── lustre_nrs_fifo.h │ ├── lustre_nrs_orr.h │ ├── lustre_nrs_tbf.h │ ├── lustre_obdo.h │ ├── lustre_osc.h │ ├── lustre_patchless_compat.h │ ├── lustre_quota.h │ ├── lustre_req_layout.h │ ├── lustre_scrub.h │ ├── lustre_sec.h │ ├── lustre_swab.h │ ├── lustre_update.h │ ├── lvfs.h │ ├── md_object.h │ ├── obd.h │ ├── obd_cache.h │ ├── obd_cksum.h │ ├── obd_class.h │ ├── obd_support.h │ ├── obd_target.h │ ├── obj_update.h │ ├── seq_range.h │ ├── uapi │ │ └── linux │ │ │ └── lustre │ │ │ ├── .gitignore │ │ │ ├── Makefile.am │ │ │ ├── lustre_barrier_user.h │ │ │ ├── lustre_cfg.h │ │ │ ├── lustre_disk.h │ │ │ ├── lustre_fid.h │ │ │ ├── lustre_fiemap.h │ │ │ ├── lustre_idl.h │ │ │ ├── lustre_ioctl.h │ │ │ ├── lustre_kernelcomm.h │ │ │ ├── lustre_lfsck_user.h │ │ │ ├── lustre_log_user.h │ │ │ ├── lustre_ostid.h │ │ │ ├── lustre_param.h │ │ │ ├── lustre_user.h │ │ │ └── lustre_ver.h │ └── upcall_cache.h ├── kernel_patches │ ├── LICENSE │ ├── README │ ├── kernel_configs │ │ ├── kernel-2.6.32-2.6-rhel6-i686.config │ │ ├── kernel-2.6.32-2.6-rhel6-x86_64.config │ │ ├── kernel-2.6.32-2.6-rhel6.6-i686.config │ │ ├── kernel-2.6.32-2.6-rhel6.6-x86_64.config │ │ ├── kernel-2.6.32-2.6-rhel6.7-x86_64.config │ │ ├── kernel-2.6.32-2.6-rhel6.8-x86_64.config │ │ ├── kernel-2.6.32-2.6-rhel6.9-x86_64.config │ │ ├── kernel-3.0-3.0-sles11-x86_64.config │ │ ├── kernel-3.0-3.0-sles11sp3-x86_64.config │ │ ├── kernel-3.0-3.0-sles11sp4-x86_64.config │ │ ├── kernel-3.10.0-3.10-rhel7.5-x86_64.config │ │ ├── kernel-3.10.0-3.10-rhel7.6-x86_64.config │ │ ├── kernel-3.10.0-3.10-rhel7.7-x86_64.config │ │ ├── kernel-3.10.0-3.10-rhel7.8-x86_64.config │ │ ├── kernel-3.10.0-3.10-rhel7.9-x86_64.config │ │ ├── kernel-3.12-3.12-sles12-x86_64.config │ │ ├── kernel-4.4-4.4-sles12-x86_64.config │ │ └── kernel-4.4-4.4-sles12sp3-x86_64.config │ ├── patches │ │ ├── bh_lru_size_increase.patch │ │ ├── blkdev_tunables-2.6-rhel6.patch │ │ ├── blkdev_tunables-3.0-sles11.patch │ │ ├── blkdev_tunables-3.0-sles11sp3.patch │ │ ├── blkdev_tunables-3.7.patch │ │ ├── blkdev_tunables-3.8-sles12.patch │ │ ├── blkdev_tunables-3.8.patch │ │ ├── blkdev_tunables-3.9-sles12sp3.patch │ │ ├── blkdev_tunables-3.9.patch │ │ ├── block-integrity-allow-optional-integrity-functions-rhel7.patch │ │ ├── block-pass-bio-into-integrity_processing_fn-rhel7.patch │ │ ├── dev_read_only-2.6.32-rhel6.patch │ │ ├── dev_read_only-2.6.32-sles11.patch │ │ ├── dev_read_only-3.7.patch │ │ ├── dev_read_only-3.8.patch │ │ ├── dev_read_only-3.9.patch │ │ ├── dm-fix-handle-BLK_MQ_RQ_QUEUE_DEV_BUSY-rhel7.6.patch │ │ ├── fix-integrity-verify-rhel7.patch │ │ ├── fix-sd-dif-complete-rhel7.patch │ │ ├── jbd2-fix-j_list_lock-unlock-3.10-rhel7.patch │ │ ├── jbd2-log_wait_for_space-2.6-rhel6.patch │ │ ├── kallsyms-rhel6.patch │ │ ├── module-load-deadlock-rhel6.patch │ │ ├── mpt-fusion-max-sge-rhel6.patch │ │ ├── quota-avoid-dqget-calls-sles11sp2.patch │ │ ├── quota-avoid-dqget-calls.patch │ │ ├── quota-replace-dqptr-sem-el6.8.patch │ │ ├── quota-replace-dqptr-sem-sles11.patch │ │ ├── quota-replace-dqptr-sem-sles11sp2.patch │ │ ├── quota-replace-dqptr-sem.patch │ │ ├── raid5-mmp-unplug-dev-3.7.patch │ │ ├── raid5-mmp-unplug-dev-3.8.patch │ │ ├── raid5-mmp-unplug-dev-3.9.patch │ │ ├── raid5-mmp-unplug-dev-rhel6.patch │ │ ├── raid5-mmp-unplug-dev-rhel7.6.patch │ │ ├── raid5-mmp-unplug-dev-sles11sp1.patch │ │ ├── raid5-mmp-unplug-dev-sles11sp2.patch │ │ ├── raid5-mmp-unplug-dev-sles12.patch │ │ ├── raid5-mmp-unplug-dev-sles12sp2.patch │ │ ├── raid5-mmp-unplug-dev-sles12sp3.patch │ │ └── vfs-project-quotas-rhel7.patch │ ├── prepare_tree.sh │ ├── series │ │ ├── 2.6-rhel6.8.series │ │ ├── 2.6-rhel6.series │ │ ├── 2.6-sles11.series │ │ ├── 3.0-sles11.series │ │ ├── 3.0-sles11sp3.series │ │ ├── 3.10-rhel7.5.series │ │ ├── 3.10-rhel7.6.series │ │ ├── 3.10-rhel7.7.series │ │ ├── 3.10-rhel7.8.series │ │ ├── 3.10-rhel7.9.series │ │ ├── 3.12-sles12.series │ │ ├── 3.x-fc18.series │ │ ├── 4.14-rhel7.5.series │ │ ├── 4.14-rhel7.6.series │ │ ├── 4.4-sles12.series │ │ ├── 4.4-sles12sp3.series │ │ └── 4.4-ubuntu14+16.series │ ├── targets │ │ ├── .gitignore │ │ ├── 2.6-fc11.target.in │ │ ├── 2.6-fc12.target.in │ │ ├── 2.6-fc15.target.in │ │ ├── 2.6-rhel5.target.in │ │ ├── 2.6-rhel6.6.target.in │ │ ├── 2.6-rhel6.7.target.in │ │ ├── 2.6-rhel6.8.target.in │ │ ├── 2.6-rhel6.9.target.in │ │ ├── 2.6-rhel6.target.in │ │ ├── 2.6-sles11.target.in │ │ ├── 3.0-sles11.target.in │ │ ├── 3.0-sles11sp3.target.in │ │ ├── 3.0-sles11sp4.target.in │ │ ├── 3.10-rhel7.5.target.in │ │ ├── 3.10-rhel7.6.target.in │ │ ├── 3.10-rhel7.7.target.in │ │ ├── 3.10-rhel7.8.target.in │ │ ├── 3.10-rhel7.9.target.in │ │ ├── 3.12-sles12.target.in │ │ ├── 3.x-fc18.target.in │ │ ├── 4.12-sles12sp4.target.in │ │ ├── 4.12-sles12sp5.target.in │ │ ├── 4.14-rhel7.5.target.in │ │ ├── 4.14-rhel7.6.target.in │ │ ├── 4.18-rhel8.1.target.in │ │ ├── 4.18-rhel8.2.target.in │ │ ├── 4.18-rhel8.3.target.in │ │ ├── 4.18-rhel8.4.target.in │ │ ├── 4.18-rhel8.target.in │ │ ├── 4.4-sles12.target.in │ │ └── 4.4-sles12sp3.target.in │ ├── txt │ │ ├── dev_read_only.txt │ │ ├── exports.txt │ │ ├── exports_hp.txt │ │ ├── ext3-2.4.20-fixes.txt │ │ ├── ext3-map_inode_page.txt │ │ ├── ext3-map_inode_page_2.4.18.txt │ │ ├── invalidate_show.txt │ │ ├── kmem_cache_validate.txt │ │ ├── lustre_version.txt │ │ ├── uml_check_get_page.txt │ │ └── uml_no_panic.txt │ └── which_patch ├── ldlm │ ├── .gitignore │ ├── Makefile.am │ ├── interval_tree.c │ ├── l_lock.c │ ├── ldlm_extent.c │ ├── ldlm_flock.c │ ├── ldlm_inodebits.c │ ├── ldlm_internal.h │ ├── ldlm_lib.c │ ├── ldlm_lock.c │ ├── ldlm_lockd.c │ ├── ldlm_plain.c │ ├── ldlm_pool.c │ ├── ldlm_reclaim.c │ ├── ldlm_request.c │ └── ldlm_resource.c ├── lfsck │ ├── Makefile.in │ ├── autoMakefile.am │ ├── lfsck_bookmark.c │ ├── lfsck_engine.c │ ├── lfsck_internal.h │ ├── lfsck_layout.c │ ├── lfsck_lib.c │ ├── lfsck_namespace.c │ └── lfsck_striped_dir.c ├── llite │ ├── Makefile.in │ ├── autoMakefile.am │ ├── dcache.c │ ├── dir.c │ ├── file.c │ ├── glimpse.c │ ├── lcommon_cl.c │ ├── lcommon_misc.c │ ├── llite_internal.h │ ├── llite_lib.c │ ├── llite_mmap.c │ ├── llite_nfs.c │ ├── lproc_llite.c │ ├── namei.c │ ├── range_lock.c │ ├── range_lock.h │ ├── rw.c │ ├── rw26.c │ ├── statahead.c │ ├── super25.c │ ├── symlink.c │ ├── vvp_dev.c │ ├── vvp_internal.h │ ├── vvp_io.c │ ├── vvp_object.c │ ├── vvp_page.c │ ├── xattr.c │ ├── xattr26.c │ ├── xattr_cache.c │ └── xattr_security.c ├── lmv │ ├── Makefile.in │ ├── autoMakefile.am │ ├── lmv_fld.c │ ├── lmv_intent.c │ ├── lmv_internal.h │ ├── lmv_obd.c │ └── lproc_lmv.c ├── lod │ ├── Makefile.in │ ├── autoMakefile.am │ ├── lod_dev.c │ ├── lod_internal.h │ ├── lod_lov.c │ ├── lod_object.c │ ├── lod_pool.c │ ├── lod_qos.c │ ├── lod_sub_object.c │ └── lproc_lod.c ├── lov │ ├── Makefile.in │ ├── autoMakefile.am │ ├── lov_cl_internal.h │ ├── lov_dev.c │ ├── lov_ea.c │ ├── lov_internal.h │ ├── lov_io.c │ ├── lov_lock.c │ ├── lov_merge.c │ ├── lov_obd.c │ ├── lov_object.c │ ├── lov_offset.c │ ├── lov_pack.c │ ├── lov_page.c │ ├── lov_pool.c │ ├── lov_request.c │ ├── lovsub_dev.c │ ├── lovsub_object.c │ └── lproc_lov.c ├── mdc │ ├── Makefile.in │ ├── autoMakefile.am │ ├── lproc_mdc.c │ ├── mdc_changelog.c │ ├── mdc_dev.c │ ├── mdc_internal.h │ ├── mdc_lib.c │ ├── mdc_locks.c │ ├── mdc_reint.c │ └── mdc_request.c ├── mdd │ ├── Makefile.in │ ├── autoMakefile.am │ ├── mdd_device.c │ ├── mdd_dir.c │ ├── mdd_internal.h │ ├── mdd_lock.c │ ├── mdd_lproc.c │ ├── mdd_object.c │ ├── mdd_orphans.c │ ├── mdd_permission.c │ └── mdd_trans.c ├── mdt │ ├── Makefile.in │ ├── autoMakefile.am │ ├── mdt_coordinator.c │ ├── mdt_fs.c │ ├── mdt_handler.c │ ├── mdt_hsm.c │ ├── mdt_hsm_cdt_actions.c │ ├── mdt_hsm_cdt_agent.c │ ├── mdt_hsm_cdt_client.c │ ├── mdt_hsm_cdt_requests.c │ ├── mdt_identity.c │ ├── mdt_internal.h │ ├── mdt_io.c │ ├── mdt_lib.c │ ├── mdt_lproc.c │ ├── mdt_lvb.c │ ├── mdt_mds.c │ ├── mdt_open.c │ ├── mdt_recovery.c │ ├── mdt_reint.c │ ├── mdt_som.c │ └── mdt_xattr.c ├── mgc │ ├── Makefile.in │ ├── autoMakefile.am │ ├── lproc_mgc.c │ ├── mgc_internal.h │ └── mgc_request.c ├── mgs │ ├── Makefile.in │ ├── autoMakefile.am │ ├── lproc_mgs.c │ ├── mgs_barrier.c │ ├── mgs_fs.c │ ├── mgs_handler.c │ ├── mgs_internal.h │ ├── mgs_llog.c │ └── mgs_nids.c ├── nodist ├── obdclass │ ├── Makefile.in │ ├── acl.c │ ├── autoMakefile.am │ ├── cl_internal.h │ ├── cl_io.c │ ├── cl_lock.c │ ├── cl_object.c │ ├── cl_page.c │ ├── class_obd.c │ ├── debug.c │ ├── dt_object.c │ ├── genops.c │ ├── idmap.c │ ├── integrity.c │ ├── jobid.c │ ├── kernelcomm.c │ ├── linkea.c │ ├── llog.c │ ├── llog_cat.c │ ├── llog_internal.h │ ├── llog_ioctl.c │ ├── llog_obd.c │ ├── llog_osd.c │ ├── llog_swab.c │ ├── llog_test.c │ ├── local_storage.c │ ├── local_storage.h │ ├── lprocfs_counters.c │ ├── lprocfs_jobstats.c │ ├── lprocfs_status.c │ ├── lprocfs_status_server.c │ ├── lu_object.c │ ├── lu_ref.c │ ├── lu_ucred.c │ ├── lustre_handles.c │ ├── lustre_peer.c │ ├── md_attrs.c │ ├── obd_cksum.c │ ├── obd_config.c │ ├── obd_mount.c │ ├── obd_mount_server.c │ ├── obd_sysfs.c │ ├── obdo.c │ ├── obdo_server.c │ ├── scrub.c │ ├── statfs_pack.c │ └── upcall_cache.c ├── obdecho │ ├── Makefile.in │ ├── autoMakefile.am │ ├── echo.c │ ├── echo_client.c │ └── echo_internal.h ├── ofd │ ├── Makefile.in │ ├── autoMakefile.am │ ├── lproc_ofd.c │ ├── ofd_dev.c │ ├── ofd_dlm.c │ ├── ofd_fs.c │ ├── ofd_internal.h │ ├── ofd_io.c │ ├── ofd_lvb.c │ ├── ofd_obd.c │ ├── ofd_objects.c │ └── ofd_trans.c ├── osc │ ├── Makefile.in │ ├── autoMakefile.am │ ├── lproc_osc.c │ ├── osc_cache.c │ ├── osc_dev.c │ ├── osc_internal.h │ ├── osc_io.c │ ├── osc_lock.c │ ├── osc_object.c │ ├── osc_page.c │ ├── osc_quota.c │ └── osc_request.c ├── osd-ldiskfs │ ├── Makefile.in │ ├── autoMakefile.am │ ├── osd_compat.c │ ├── osd_dynlocks.c │ ├── osd_dynlocks.h │ ├── osd_handler.c │ ├── osd_iam.c │ ├── osd_iam.h │ ├── osd_iam_lfix.c │ ├── osd_iam_lvar.c │ ├── osd_integrity.c │ ├── osd_internal.h │ ├── osd_io.c │ ├── osd_lproc.c │ ├── osd_oi.c │ ├── osd_oi.h │ ├── osd_quota.c │ ├── osd_quota_fmt.c │ ├── osd_quota_fmt.h │ ├── osd_scrub.c │ └── osd_scrub.h ├── osd-zfs │ ├── Makefile.in │ ├── autoMakefile.am │ ├── osd_handler.c │ ├── osd_index.c │ ├── osd_internal.h │ ├── osd_io.c │ ├── osd_lproc.c │ ├── osd_object.c │ ├── osd_oi.c │ ├── osd_quota.c │ ├── osd_scrub.c │ └── osd_xattr.c ├── osp │ ├── Makefile.in │ ├── autoMakefile.am │ ├── lproc_osp.c │ ├── lwp_dev.c │ ├── osp_dev.c │ ├── osp_internal.h │ ├── osp_md_object.c │ ├── osp_object.c │ ├── osp_precreate.c │ ├── osp_sync.c │ └── osp_trans.c ├── ost │ ├── Makefile.in │ ├── autoMakefile.am │ ├── ost_handler.c │ └── ost_internal.h ├── ptlrpc │ ├── Makefile.in │ ├── autoMakefile.am │ ├── client.c │ ├── connection.c │ ├── errno.c │ ├── events.c │ ├── gss │ │ ├── Makefile.in │ │ ├── autoMakefile.am │ │ ├── gss_api.h │ │ ├── gss_asn1.h │ │ ├── gss_bulk.c │ │ ├── gss_cli_upcall.c │ │ ├── gss_crypto.c │ │ ├── gss_crypto.h │ │ ├── gss_err.h │ │ ├── gss_generic_token.c │ │ ├── gss_internal.h │ │ ├── gss_keyring.c │ │ ├── gss_krb5.h │ │ ├── gss_krb5_mech.c │ │ ├── gss_mech_switch.c │ │ ├── gss_null_mech.c │ │ ├── gss_pipefs.c │ │ ├── gss_rawobj.c │ │ ├── gss_sk_mech.c │ │ ├── gss_svc_upcall.c │ │ ├── lproc_gss.c │ │ └── sec_gss.c │ ├── import.c │ ├── layout.c │ ├── llog_client.c │ ├── llog_net.c │ ├── llog_server.c │ ├── lproc_ptlrpc.c │ ├── niobuf.c │ ├── nodemap_handler.c │ ├── nodemap_idmap.c │ ├── nodemap_internal.h │ ├── nodemap_lproc.c │ ├── nodemap_member.c │ ├── nodemap_range.c │ ├── nodemap_rbtree.c │ ├── nodemap_storage.c │ ├── nrs.c │ ├── nrs_crr.c │ ├── nrs_delay.c │ ├── nrs_fifo.c │ ├── nrs_orr.c │ ├── nrs_tbf.c │ ├── pack_generic.c │ ├── pers.c │ ├── pinger.c │ ├── ptlrpc_internal.h │ ├── ptlrpc_module.c │ ├── ptlrpcd.c │ ├── recover.c │ ├── sec.c │ ├── sec_bulk.c │ ├── sec_config.c │ ├── sec_ctx.c │ ├── sec_gc.c │ ├── sec_lproc.c │ ├── sec_null.c │ ├── sec_plain.c │ ├── service.c │ ├── wirehdr.c │ └── wiretest.c ├── quota │ ├── Makefile.in │ ├── autoMakefile.am │ ├── lproc_quota.c │ ├── lquota_disk.c │ ├── lquota_entry.c │ ├── lquota_internal.h │ ├── lquota_lib.c │ ├── qmt_dev.c │ ├── qmt_entry.c │ ├── qmt_handler.c │ ├── qmt_internal.h │ ├── qmt_lock.c │ ├── qmt_pool.c │ ├── qsd_config.c │ ├── qsd_entry.c │ ├── qsd_handler.c │ ├── qsd_internal.h │ ├── qsd_lib.c │ ├── qsd_lock.c │ ├── qsd_reint.c │ ├── qsd_request.c │ └── qsd_writeback.c ├── scripts │ ├── .gitignore │ ├── Lustre.ha_v2 │ ├── Makefile.am │ ├── bash-completion │ │ ├── lctl │ │ ├── lfs │ │ └── lustre │ ├── dkms.mkconf │ ├── haconfig │ ├── ko2iblnd-probe │ ├── lc_cluman.in │ ├── lc_common │ ├── lc_hb.in │ ├── lc_lvm.in │ ├── lc_md.in │ ├── lc_modprobe.in │ ├── lc_mon │ ├── lc_net.in │ ├── lc_servip │ ├── ldev │ ├── lfs_migrate │ ├── lhbadm │ ├── license-status │ ├── lmc2csv.pl │ ├── lnet.in │ ├── lsvcgss │ ├── lustre │ ├── lustre_req_history │ ├── lustre_rmmod │ ├── lustre_routes_config │ ├── lustre_routes_conversion │ ├── lustre_start.in │ ├── statechange-lustre.sh │ ├── system-profile.sh │ ├── systemd │ │ ├── .gitignore │ │ ├── Makefile.am │ │ └── lnet.service.in │ ├── vdev_attach-lustre.sh │ ├── vdev_clear-lustre.sh │ ├── vdev_remove-lustre.sh │ └── zfsobj2fid ├── target │ ├── .gitignore │ ├── Makefile.am │ ├── barrier.c │ ├── out_handler.c │ ├── out_lib.c │ ├── tgt_fmd.c │ ├── tgt_grant.c │ ├── tgt_handler.c │ ├── tgt_internal.h │ ├── tgt_lastrcvd.c │ ├── tgt_main.c │ ├── update_records.c │ ├── update_recovery.c │ └── update_trans.c ├── tests │ ├── .RC_CURRENT.tag │ ├── .gitignore │ ├── Makefile.am │ ├── README │ ├── acceptance-small.sh │ ├── acl │ │ ├── 2561.test │ │ ├── 2561_zfs.test │ │ ├── 4924.test │ │ ├── 974.test │ │ ├── 974_remote.test │ │ ├── README │ │ ├── cp.test │ │ ├── getfacl-noacl.test │ │ ├── inheritance.test │ │ ├── make-tree │ │ ├── misc.test │ │ ├── permissions.test │ │ ├── permissions_xattr.test │ │ ├── run │ │ └── setfacl.test │ ├── auster │ ├── badarea_io.c │ ├── cfg │ │ ├── local.sh │ │ └── ncli.sh │ ├── check_fhandle_syscalls.c │ ├── checkfiemap.c │ ├── checkstack.pl │ ├── checkstat.c │ ├── chownmany.c │ ├── clientapi │ │ └── simple_test.c │ ├── compile.sh │ ├── conf-sanity.sh │ ├── create.pl │ ├── createmany.c │ ├── createtest.c │ ├── directio.c │ ├── disk2_4-ldiskfs.tar.bz2 │ ├── disk2_4-zfs.tar.bz2 │ ├── disk2_5-ldiskfs.tar.bz2 │ ├── disk2_7-ldiskfs.tar.bz2 │ ├── disk2_7-zfs.tar.bz2 │ ├── disk2_9-ldiskfs.tar.bz2 │ ├── disk2_9-zfs.tar.bz2 │ ├── dne_sanity.sh │ ├── dom-performance.sh │ ├── euid_access.c │ ├── flock.c │ ├── flock_deadlock.c │ ├── flocks_test.c │ ├── fsx.c │ ├── functions.sh │ ├── group_lock_test.c │ ├── ha.sh │ ├── iam_ut │ ├── iam_ut.c │ ├── insanity.sh │ ├── kbuild │ ├── kernel │ │ ├── Makefile.in │ │ ├── autoMakefile.am │ │ └── kinode.c │ ├── krb5_login.sh │ ├── large-lun.sh │ ├── large-scale.sh │ ├── ldiskfs_mdt1_2_11.tar.bz2 │ ├── ldiskfs_mdt2_2_11.tar.bz2 │ ├── ldiskfs_ost1_2_11.tar.bz2 │ ├── ldiskfs_ost2_2_11.tar.bz2 │ ├── leak_finder.pl │ ├── lfsck-performance.sh │ ├── lgetxattr_size_check.c │ ├── listxattr_size_check.c │ ├── ll_dirstripe_verify.c │ ├── ll_sparseness_verify.c │ ├── ll_sparseness_write.c │ ├── llapi_fid_test.c │ ├── llapi_hsm_test.c │ ├── llapi_layout_test.c │ ├── llmount.sh │ ├── llmountcleanup.sh │ ├── lnet-selftest.sh │ ├── lockahead_test.c │ ├── lockorder.sh │ ├── lp_utils.c │ ├── lp_utils.h │ ├── lustre-rsync-test.sh │ ├── maloo_upload.sh │ ├── mcreate.c │ ├── mds-survey.sh │ ├── mdsrate-create-large.sh │ ├── mdsrate-create-small.sh │ ├── mdsrate-lookup-10dirs.sh │ ├── mdsrate-lookup-1dir.sh │ ├── mdsrate-stat-large.sh │ ├── mdsrate-stat-small.sh │ ├── memhog.c │ ├── metadata-updates.sh │ ├── mirror_io.c │ ├── mkdirmany.c │ ├── mlink.c │ ├── mmap_cat.c │ ├── mmap_mknod_test.c │ ├── mmap_sanity.c │ ├── mmp.sh │ ├── mmp_mark.sh │ ├── mpi │ │ ├── .gitignore │ │ ├── Makefile.am │ │ ├── cascading_rw.c │ │ ├── createmany-mpi.c │ │ ├── lp_utils.c │ │ ├── lp_utils.h │ │ ├── mdsrate.c │ │ ├── parallel_grouplock.c │ │ ├── rr_alloc.c │ │ ├── write_append_truncate.1 │ │ ├── write_append_truncate.c │ │ └── write_disjoint.c │ ├── mrename.c │ ├── multifstat.c │ ├── multiop.c │ ├── munlink.c │ ├── obdfilter-survey.sh │ ├── oos.sh │ ├── oos2.sh │ ├── opendevunlink.c │ ├── opendirunlink.c │ ├── openfile.c │ ├── openfilleddirunlink.c │ ├── openunlink.c │ ├── orphan_linkea_check.c │ ├── ost-pools.sh │ ├── ost_oos.sh │ ├── parallel-scale-cifs.sh │ ├── parallel-scale-nfs.sh │ ├── parallel-scale-nfsv3.sh │ ├── parallel-scale-nfsv4.sh │ ├── parallel-scale.sh │ ├── performance-sanity.sh │ ├── pjdfstest.sh │ ├── posix.sh │ ├── posix │ │ └── posix.cfg │ ├── qos.sh │ ├── racer.sh │ ├── racer │ │ ├── dir_create.sh │ │ ├── dir_migrate.sh │ │ ├── dir_remote.sh │ │ ├── file_chmod.sh │ │ ├── file_chown.sh │ │ ├── file_concat.sh │ │ ├── file_create.sh │ │ ├── file_delxattr.sh │ │ ├── file_exec.sh │ │ ├── file_getxattr.sh │ │ ├── file_link.sh │ │ ├── file_list.sh │ │ ├── file_mknod.sh │ │ ├── file_rename.sh │ │ ├── file_rm.sh │ │ ├── file_setxattr.sh │ │ ├── file_swap.sh │ │ ├── file_symlink.sh │ │ ├── file_truncate.sh │ │ ├── lss_create.sh │ │ ├── lss_destroy.sh │ │ └── racer.sh │ ├── reads.c │ ├── recovery-double-scale.sh │ ├── recovery-mds-scale.sh │ ├── recovery-random-scale.sh │ ├── recovery-small.sh │ ├── rename.pl │ ├── rename_many.c │ ├── replay-dual.sh │ ├── replay-ost-single.sh │ ├── replay-single-lmv.sh │ ├── replay-single.sh │ ├── replay-vbr.sh │ ├── resolveip │ ├── rmdirmany.c │ ├── rpc.sh │ ├── run-llog.sh │ ├── run_IOR.sh │ ├── run_dbench.sh │ ├── run_dd.sh │ ├── run_iozone.sh │ ├── run_tar.sh │ ├── runas.c │ ├── rundbench │ ├── runiozone │ ├── runmultiop_bg_pause │ ├── runobdstat │ ├── runtests │ ├── runvmstat │ ├── rwv.c │ ├── sanity-benchmark.sh │ ├── sanity-dom.sh │ ├── sanity-flr.sh │ ├── sanity-gss.sh │ ├── sanity-hsm.sh │ ├── sanity-krb5.sh │ ├── sanity-lfsck.sh │ ├── sanity-lnet.sh │ ├── sanity-lsnapshot.sh │ ├── sanity-pfl.sh │ ├── sanity-quota.sh │ ├── sanity-scrub.sh │ ├── sanity-sec.sh │ ├── sanity-selinux.sh │ ├── sanity.sh │ ├── sanityn.sh │ ├── scrub-performance.sh │ ├── sendfile.c │ ├── sendfile_grouplock.c │ ├── setup-cifs.sh │ ├── setup-nfs.sh │ ├── setup_kerberos.sh │ ├── sgpdd-survey.sh │ ├── small_write.c │ ├── smalliomany.c │ ├── socketclient │ ├── socketserver │ ├── statmany.c │ ├── statone.c │ ├── swap_lock_test.c │ ├── tchmod.c │ ├── test-framework.sh │ ├── test-groups │ │ ├── regression │ │ └── regression-mpi │ ├── test_brw.c │ ├── truncate.c │ ├── unlinkmany.c │ ├── utime.c │ ├── write_time_limit.c │ ├── writemany.c │ ├── writeme.c │ ├── yaml.sh │ ├── zfs_mdt1_2_11.tar.bz2 │ ├── zfs_mdt2_2_11.tar.bz2 │ ├── zfs_ost1_2_11.tar.bz2 │ └── zfs_ost2_2_11.tar.bz2 └── utils │ ├── .gitignore │ ├── LCOPYING │ ├── Makefile.am │ ├── callvpe.c │ ├── callvpe.h │ ├── create_iam.c │ ├── debug.c │ ├── gss │ ├── .gitignore │ ├── Makefile.am │ ├── README │ ├── cacheio.c │ ├── cacheio.h │ ├── context.c │ ├── context.h │ ├── context_heimdal.c │ ├── context_lucid.c │ ├── context_mit.c │ ├── context_spkm3.c │ ├── err_util.c │ ├── err_util.h │ ├── gss_oids.c │ ├── gss_oids.h │ ├── gss_util.c │ ├── gss_util.h │ ├── gssd.c │ ├── gssd.h │ ├── gssd_main_loop.c │ ├── gssd_proc.c │ ├── krb5_util.c │ ├── krb5_util.h │ ├── l_idmap.c │ ├── lgss_keyring.c │ ├── lgss_krb5_utils.c │ ├── lgss_krb5_utils.h │ ├── lgss_null_utils.c │ ├── lgss_sk.c │ ├── lgss_sk_utils.c │ ├── lgss_utils.c │ ├── lgss_utils.h │ ├── lsupport.c │ ├── lsupport.h │ ├── nfs-utils-1.0.10-lustre.diff │ ├── nfs-utils-1.0.11-lustre.diff │ ├── sk_utils.c │ ├── sk_utils.h │ ├── svcgssd.c │ ├── svcgssd.h │ ├── svcgssd_main_loop.c │ ├── svcgssd_mech2file.c │ ├── svcgssd_proc.c │ └── write_bytes.h │ ├── l_getidentity.c │ ├── l_getsepol.c │ ├── l_tunedisk.c │ ├── lctl.c │ ├── ldlm_debug_upcall │ ├── lfs.c │ ├── lfs_project.c │ ├── lfs_project.h │ ├── lhsmtool_posix.c │ ├── libiam.c │ ├── liblustreapi.c │ ├── liblustreapi.map │ ├── liblustreapi_chlg.c │ ├── liblustreapi_hsm.c │ ├── liblustreapi_json.c │ ├── liblustreapi_kernelconn.c │ ├── liblustreapi_ladvise.c │ ├── liblustreapi_layout.c │ ├── liblustreapi_lease.c │ ├── liblustreapi_mirror.c │ ├── liblustreapi_nodemap.c │ ├── liblustreapi_param.c │ ├── liblustreapi_util.c │ ├── libmount_utils_ldiskfs.c │ ├── libmount_utils_zfs.c │ ├── ll_decode_filter_fid.c │ ├── ll_decode_linkea.c │ ├── llanalyze │ ├── llobdstat │ ├── llog_reader.c │ ├── llsom_sync.c │ ├── llstat │ ├── llverdev.c │ ├── llverfs.c │ ├── lr_reader.c │ ├── lshowmount.c │ ├── lsnapshot.c │ ├── lustre_cfg.c │ ├── lustre_lfsck.c │ ├── lustre_rsync.c │ ├── lustre_rsync.h │ ├── lustreapi_internal.h │ ├── mkfs_lustre.c │ ├── mount_lustre.c │ ├── mount_utils.c │ ├── mount_utils.h │ ├── nidlist.c │ ├── nidlist.h │ ├── obd.c │ ├── obdctl.h │ ├── plot-llstat │ ├── portals.c │ ├── wirecheck.c │ ├── wirehdr.c │ └── wiretest.c ├── rpm ├── kmp-lustre-osd-ldiskfs.files ├── kmp-lustre-osd-ldiskfs.preamble ├── kmp-lustre-osd-zfs.files ├── kmp-lustre-osd-zfs.preamble ├── kmp-lustre-tests.files ├── kmp-lustre.files └── kmp-lustre.preamble └── snmp ├── .gitignore ├── Lustre-MIB.txt ├── Makefile.am ├── README.install ├── autoconf ├── .gitignore ├── Makefile.am └── lustre-snmp.m4 ├── lustre-snmp-trap.c ├── lustre-snmp-trap.h ├── lustre-snmp-util.c ├── lustre-snmp-util.h ├── lustre-snmp.c └── lustre-snmp.h /ChangeLog: -------------------------------------------------------------------------------- 1 | Please see lnet/ChangeLog and lustre/ChangeLog. 2 | -------------------------------------------------------------------------------- /LUSTRE-VERSION-GEN: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | DEFAULT_VERSION=2.12.7 4 | LVF=LUSTRE-VERSION-FILE 5 | 6 | LF=' 7 | ' 8 | 9 | if test -d ${GIT_DIR:-.git} -o -f .git && 10 | VN=$(git describe --match "[0-9]*" --abbrev=7 HEAD 2>/dev/null) && 11 | case "$VN" in 12 | *$LF*) (exit 1) ;; 13 | [0-9]*) 14 | git update-index -q --refresh 15 | test -z "$(git diff-index --name-only HEAD --)" || 16 | VN="$VN-dirty" ;; 17 | esac 18 | then 19 | VN=$(echo "$VN" | sed -e 's/-/_/g'); 20 | elif test -r $LVF 21 | then 22 | VN=$(sed -e 's/^LUSTRE_VERSION = //' <$LVF) 23 | else 24 | VN="$DEFAULT_VERSION" 25 | fi 26 | 27 | if test -r $LVF 28 | then 29 | VC=$(sed -e 's/^LUSTRE_VERSION = //' <$LVF) 30 | else 31 | VC=unset 32 | fi 33 | test "$VN" = "$VC" || { 34 | echo "LUSTRE_VERSION = $VN" >$LVF 35 | } 36 | 37 | echo $VN 38 | -------------------------------------------------------------------------------- /Makefile.in: -------------------------------------------------------------------------------- 1 | subdir-m += @LDISKFS_SUBDIR@ @LIBCFS_SUBDIR@ lnet 2 | subdir-m += lustre 3 | 4 | @INCLUDE_RULES@ 5 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Instructions for building, configuring and running Lustre: 2 | https://wiki.whamcloud.com/display/PUB/Building+Lustre+from+Source 3 | and 4 | https://wiki.whamcloud.com/display/PUB/Getting+started+with+Lustre. 5 | 6 | Instructions for contributing patches for Lustre: 7 | https://wiki.whamcloud.com/display/PUB/Submitting+Changes 8 | and 9 | https://wiki.whamcloud.com/display/PUB/Using+Gerrit 10 | 11 | The Lustre Coding Style Guidelines can be found at: 12 | https://wiki.whamcloud.com/display/PUB/Coding+Guidelines 13 | 14 | The Lustre Test Script Style Guidelines can be found at: 15 | https://wiki.whamcloud.com/display/PUB/Test+Coding+Style 16 | 17 | In order to improve the quality of patches submitted to the Lustre tree, 18 | it is possible to automatically check every patch and commit against the 19 | Lustre Coding Guidelines. To do this, run in the top-level lustre/ tree: 20 | 21 | cd .git/hooks 22 | ln -s ../../contrib/git-hooks/{prepare-,}commit-msg ./ 23 | cd ../.. 24 | -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # NOTE: Please avoid bashisms (bash specific syntax) in this script 4 | 5 | set -e 6 | pw="$PWD" 7 | for dir in libcfs lnet lustre snmp ; do 8 | ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $pw/$dir/autoconf" 9 | done 10 | 11 | libtoolize -q 12 | aclocal -I $pw/config $ACLOCAL_FLAGS 13 | autoheader 14 | automake -a -c 15 | autoconf 16 | -------------------------------------------------------------------------------- /build/.gitignore: -------------------------------------------------------------------------------- 1 | /Rules 2 | /modules.order 3 | /Module.markers 4 | /lustre.spec 5 | /Module.symvers 6 | /Modules.symvers 7 | !Makefile 8 | -------------------------------------------------------------------------------- /build/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # There are four ways this Makefile can be called: 3 | # 4 | # 5 | # 1. As a subdirectory from the toplevel, for automake 6 | # 7 | # 2. A wrapper around the kernel's makefile when building modules, to 8 | # possibly override the .config file 9 | # 10 | # 3. At configure time, as the toplevel module dir for building 11 | # kernel tests 12 | # 13 | 14 | ifeq ($(PATCHLEVEL),) 15 | 16 | ifeq ($(LUSTRE_LINUX_CONFIG),) 17 | 18 | # case #1 19 | include autoMakefile 20 | 21 | else 22 | 23 | # case #2 24 | # Note that this comes from make -C $LINUX -f $LUSTRE/build/Makefile 25 | # so "include Makefile" below includes $LINUX/Makefile, not this file 26 | include $(LUSTRE_LINUX_CONFIG) 27 | include Makefile 28 | 29 | endif # LUSTRE_LINUX_CONFIG 30 | 31 | else # PATCHLEVEL 32 | 33 | # case #3 34 | ifneq ($(LUSTRE_KERNEL_TEST),) 35 | extra-y = $(LUSTRE_KERNEL_TEST) 36 | endif 37 | 38 | obj-m := conftest.o 39 | 40 | endif # PATCHLEVEL 41 | -------------------------------------------------------------------------------- /build/Rules.in: -------------------------------------------------------------------------------- 1 | # Directories building kernel modules should have two files: 2 | # 3 | # Makefile.in: 4 | # 5 | # MODULES := 6 | # -objs := file1.o file2.o file3.o 7 | # @INCLUDE_RULES@ 8 | # 9 | # and autoMakefile.am: 10 | # 11 | # if MODULES 12 | # modulefs_DATA = $(KMODEXT) 13 | # endif 14 | # 15 | # DIST_SOURCES = $(-objs:.o=.c) 16 | # MOSTLYCLEANFILES = *.o *.ko *.mod.c 17 | 18 | ifeq ($(PATCHLEVEL),) 19 | 20 | include autoMakefile 21 | 22 | fix-kext-ownership: 23 | @if test -d $(DESTDIR)$(kextdir) ; then \ 24 | echo chown -R root:wheel $(DESTDIR)$(kextdir) ; \ 25 | chown -R root:wheel $(DESTDIR)$(kextdir) || \ 26 | echo >&2 "*** WARNING: Could not fix kext ownership for $(DESTDIR)$(kextdir)" ; \ 27 | fi 28 | 29 | else 30 | 31 | include @LINUX_CONFIG@ 32 | 33 | EXTRA_CFLAGS := $(EXTRA_PRE_CFLAGS) 34 | EXTRA_CFLAGS += @EXTRA_KCFLAGS@ @CFLAGS@ 35 | EXTRA_CFLAGS += $(EXTRA_POST_CFLAGS) 36 | 37 | KBUILD_EXTRA_SYMBOLS += @EXTRA_SYMBOLS@ 38 | 39 | obj-m := $(patsubst %,%.o,$(MODULES)) 40 | 41 | endif # PATCHLEVEL 42 | -------------------------------------------------------------------------------- /build/autoMakefile.am: -------------------------------------------------------------------------------- 1 | MOSTLYCLEANFILES := @MOSTLYCLEANFILES@ 2 | 3 | # Override the default distclean, which removes Makefile 4 | distclean: distclean-recursive 5 | @true 6 | -------------------------------------------------------------------------------- /build/commit-msg: -------------------------------------------------------------------------------- 1 | ../contrib/git-hooks/commit-msg -------------------------------------------------------------------------------- /build/doxygen-footer.html: -------------------------------------------------------------------------------- 1 |
2 | Generated on $datetime for $projectname by doxygen $doxygenversion

3 | Contact | About Sun | News | Employment | Privacy | Terms of Use | Trademarks | (C) 2008 Sun Microsystems, Inc. 4 | 5 | 6 | -------------------------------------------------------------------------------- /build/doxygen-header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | $title 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /build/prepare-commit-msg: -------------------------------------------------------------------------------- 1 | ../contrib/git-hooks/prepare-commit-msg -------------------------------------------------------------------------------- /config/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | /compile 3 | /config.guess 4 | /config.sub 5 | /depcomp 6 | /install-sh 7 | /libtool.m4 8 | /ltmain.sh 9 | /ltoptions.m4 10 | /ltsugar.m4 11 | /ltversion.m4 12 | /lt~obsolete.m4 13 | /missing 14 | -------------------------------------------------------------------------------- /config/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = lustre-build.m4 lustre-build-linux.m4 2 | EXTRA_DIST += lustre-build-ldiskfs.m4 lustre-build-zfs.m4 3 | -------------------------------------------------------------------------------- /configure.ac: -------------------------------------------------------------------------------- 1 | AC_PREREQ([2.57]) 2 | AC_INIT([Lustre], m4_esyscmd([sh -c "./LUSTRE-VERSION-GEN | tr -d '\n'"]), 3 | [https://jira.whamcloud.com/], [lustre]) 4 | 5 | AC_CONFIG_AUX_DIR([config]) 6 | AC_CONFIG_MACRO_DIR([config]) 7 | 8 | LC_CONFIG_SRCDIR 9 | 10 | AC_CANONICAL_SYSTEM 11 | 12 | AM_INIT_AUTOMAKE([1.10 tar-ustar -Wno-portability subdir-objects]) 13 | AM_MAINTAINER_MODE([enable]) 14 | 15 | AC_PROG_CC 16 | AC_PROG_LIBTOOL 17 | AC_PROG_MKDIR_P 18 | AM_PROG_AS 19 | 20 | AC_PATH_PROG(RPMBUILD, rpmbuild) 21 | AC_CHECK_TOOLS(AR, ar) 22 | 23 | LUSTRE_VERSION_CPP_MACROS 24 | LB_CONFIGURE 25 | -------------------------------------------------------------------------------- /contrib/README: -------------------------------------------------------------------------------- 1 | This directory is a catch-all location for useful contributed files and 2 | scripts that are _not_ part of the lustre package proper. For 3 | instance, scripts that are useful to lustre developers, but not used 4 | by lustre's own build system in configuring, compiling, or packaging lustre. 5 | 6 | An example would be the git hook scripts. We do not package these files, 7 | and while they are an important part of the lustre development process 8 | they are not an essential part of the lustre build system. 9 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.badcid: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | Improve the checks done by the commit-msg script. It now ensures 4 | that all the parts of the commit message are present. 5 | - validate that the Change-Id: generated from 'git hash-object' is 6 | not empty, since this can happen if git is unhappy with the options 7 | - check for only one Change-Id: line (multiple Signed-off-by: OK) 8 | - describe the "component:" field better, with examples 9 | 10 | If there was an error committing the message, save a copy to a 11 | temporary file, so that it can be edited and re-used, instead of 12 | having to recreate it each time, or fetch it from .git/COMMIT_MSG. 13 | 14 | Signed-off-by: Andreas Dilger 15 | 16 | Change-Id: 0cb839bbc0ebcea4fcf515a5da2221c8f1b353ac 17 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.bademail: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | Improve the checks done by the commit-msg script. It now ensures 4 | that all the parts of the commit message are present. 5 | - validate that the Change-Id: generated from 'git hash-object' is 6 | not empty, since this can happen if git is unhappy with the options 7 | - check for only one Change-Id: line (multiple Signed-off-by: OK) 8 | - describe the "component:" field better, with examples 9 | 10 | If there was an error committing the message, save a copy to a 11 | temporary file, so that it can be edited and re-used, instead of 12 | having to recreate it each time, or fetch it from .git/COMMIT_MSG. 13 | 14 | Signed-off-by: Andreas Dilger 15 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.badname: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | Improve the checks done by the commit-msg script. It now ensures 4 | that all the parts of the commit message are present. 5 | - validate that the Change-Id: generated from 'git hash-object' is 6 | not empty, since this can happen if git is unhappy with the options 7 | - check for only one Change-Id: line (multiple Signed-off-by: OK) 8 | - describe the "component:" field better, with examples 9 | 10 | If there was an error committing the message, save a copy to a 11 | temporary file, so that it can be edited and re-used, instead of 12 | having to recreate it each time, or fetch it from .git/COMMIT_MSG. 13 | 14 | Signed-off-by: Joe 15 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.badsign: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | Improve the checks done by the commit-msg script. It now ensures 4 | that all the parts of the commit message are present. 5 | - validate that the Change-Id: generated from 'git hash-object' is 6 | not empty, since this can happen if git is unhappy with the options 7 | - check for only one Change-Id: line (multiple Signed-off-by: OK) 8 | - describe the "component:" field better, with examples 9 | 10 | If there was an error committing the message, save a copy to a 11 | temporary file, so that it can be edited and re-used, instead of 12 | having to recreate it each time, or fetch it from .git/COMMIT_MSG. 13 | 14 | Signed-off-by Andreas Dilger 15 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.dupcid: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | Improve the checks done by the commit-msg script. It now ensures 4 | that all the parts of the commit message are present. 5 | - validate that the Change-Id: generated from 'git hash-object' is 6 | not empty, since this can happen if git is unhappy with the options 7 | - check for only one Change-Id: line (multiple Signed-off-by: OK) 8 | - describe the "component:" field better, with examples 9 | 10 | If there was an error committing the message, save a copy to a 11 | temporary file, so that it can be edited and re-used, instead of 12 | having to recreate it each time, or fetch it from .git/COMMIT_MSG. 13 | 14 | Signed-off-by: Andreas Dilger 15 | Change-Id: Ic228da9320229feaab5f70d2a2f4f4ddc6eb32dc 16 | Change-Id: I15cb3690560400a591598997424cf79dee3a039d 17 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.mdsfst: -------------------------------------------------------------------------------- 1 | DCO-5866 scripts: check for mdsfilesystemtype 2 | 3 | Check if the Test-Parameters line is using the old mdsfilesystemtype= 4 | option and ask for it to be removed. The mdtfilesystemtype= option 5 | should be used instead. 6 | 7 | Test-Parameters: trivial mdsfilesystemtype=zfs 8 | Signed-off-by: Andreas Dilger 9 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.nobody: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | Signed-off-by: Andreas Dilger 4 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.nocmp: -------------------------------------------------------------------------------- 1 | LU-553 improve checks for commit-msg 2 | 3 | Improve the checks done by the commit-msg script. It now ensures 4 | that all the parts of the commit message are present. 5 | - validate that the Change-Id: generated from 'git hash-object' is 6 | not empty, since this can happen if git is unhappy with the options 7 | - check for only one Change-Id: line (multiple Signed-off-by: OK) 8 | - describe the "component:" field better, with examples 9 | 10 | If there was an error committing the message, save a copy to a 11 | temporary file, so that it can be edited and re-used, instead of 12 | having to recreate it each time, or fetch it from .git/COMMIT_MSG. 13 | 14 | Signed-off-by: Andreas Dilger 15 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.nojira: -------------------------------------------------------------------------------- 1 | build: improve checks for commit-msg 2 | 3 | Improve the checks done by the commit-msg script. It now ensures 4 | that all the parts of the commit message are present. 5 | - validate that the Change-Id: generated from 'git hash-object' is 6 | not empty, since this can happen if git is unhappy with the options 7 | - check for only one Change-Id: line (multiple Signed-off-by: OK) 8 | - describe the "component:" field better, with examples 9 | 10 | If there was an error committing the message, save a copy to a 11 | temporary file, so that it can be edited and re-used, instead of 12 | having to recreate it each time, or fetch it from .git/COMMIT_MSG. 13 | 14 | Signed-off-by: Andreas Dilger 15 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.nosign: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | Improve the checks done by the commit-msg script. It now ensures 4 | that all the parts of the commit message are present. 5 | - validate that the Change-Id: generated from 'git hash-object' is 6 | not empty, since this can happen if git is unhappy with the options 7 | - check for only one Change-Id: line (multiple Signed-off-by: OK) 8 | - describe the "component:" field better, with examples 9 | 10 | If there was an error committing the message, save a copy to a 11 | temporary file, so that it can be edited and re-used, instead of 12 | having to recreate it each time, or fetch it from .git/COMMIT_MSG. 13 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.nosum: -------------------------------------------------------------------------------- 1 | Improve the checks done by the commit-msg script. It now ensures 2 | that all the parts of the commit message are present. 3 | - validate that the Change-Id: generated from 'git hash-object' is 4 | not empty, since this can happen if git is unhappy with the options 5 | - check for only one Change-Id: line (multiple Signed-off-by: OK) 6 | - describe the "component:" field better, with examples 7 | 8 | If there was an error committing the message, save a copy to a 9 | temporary file, so that it can be edited and re-used, instead of 10 | having to recreate it each time, or fetch it from .git/COMMIT_MSG. 11 | 12 | Signed-off-by: Andreas Dilger 13 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.ok_bugid: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | message 4 | body 5 | 6 | Signed-off-by: Andreas Dilger 7 | Change-Id: I0123456789012345678901234567890123456789 8 | Xyratex-bug-id: MRP-123 9 | Oracle-bug-id: 12345 10 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.ok_chmod: -------------------------------------------------------------------------------- 1 | LU-1030 build: allow diff/chmod/deleted in commit-msg 2 | 3 | message 4 | body 5 | 6 | Signed-off-by: Andreas Dilger 7 | Change-Id: I012345678901234567890123456789012345500c 8 | 9 | diff --git a/build/commit-msg b/build/commit-msg 10 | old mode 100755 11 | new mode 100644 12 | 13 | # total: 0 errors, 0 warnings, 36 lines checked 14 | # 15 | # Your patch has no obvious style problems and is ready for submission. 16 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.ok_cid: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | Improve the checks done by the commit-msg script. It now ensures 4 | that all the parts of the commit message are present. 5 | - validate that the Change-Id: generated from 'git hash-object' is 6 | not empty, since this can happen if git is unhappy with the options 7 | - check for only one Change-Id: line (multiple Signed-off-by: OK) 8 | - describe the "component:" field better, with examples 9 | 10 | If there was an error committing the message, save a copy to a 11 | temporary file, so that it can be edited and re-used, instead of 12 | having to recreate it each time, or fetch it from .git/COMMIT_MSG. 13 | 14 | Signed-off-by: Andreas Dilger 15 | Change-Id: I15cb3690560400a591598997424cf79dee3a039d 16 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.ok_deleted: -------------------------------------------------------------------------------- 1 | LU-1030 build: allow diff/chmod/deleted in commit-msg 2 | 3 | message 4 | body 5 | 6 | Signed-off-by: Andreas Dilger 7 | Change-Id: I012345678901234567890123456789012345500c 8 | 9 | diff --git a/build/commit-msg b/build/commit-msg 10 | deleted file mode 100755 11 | 12 | # total: 0 errors, 0 warnings, 36 lines checked 13 | # 14 | # Your patch has no obvious style problems and is ready for submission. 15 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.ok_diff: -------------------------------------------------------------------------------- 1 | LU-1030 build: allow diff/chmod/deleted in commit-msg 2 | 3 | message 4 | body 5 | 6 | Signed-off-by: Andreas Dilger 7 | Change-Id: I012345678901234567890123456789012345500c 8 | 9 | diff --git a/build/commit-msg b/build/commit-msg 10 | index 02d704d..48323d1 100755 11 | --- a/build/commit-msg 12 | +++ b/build/commit-msg 13 | 14 | # total: 0 errors, 0 warnings, 36 lines checked 15 | # 16 | # Your patch has no obvious style problems and is ready for submission. 17 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.ok_diffinside: -------------------------------------------------------------------------------- 1 | LU-1030 build: allow diff/chmod/deleted in commit-msg 2 | 3 | When we write a commit body, sometimes there may be a line with 4 | diff right at the beginning. This shouldn't cause the rest of 5 | the commit message to be skipped. 6 | 7 | Signed-off-by: Andreas Dilger 8 | Change-Id: I012345678901234567890123456789012345500c 9 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.ok_dupsign: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | Improve the checks done by the commit-msg script. It now ensures 4 | that all the parts of the commit message are present. 5 | - validate that the Change-Id: generated from 'git hash-object' is 6 | not empty, since this can happen if git is unhappy with the options 7 | - check for only one Change-Id: line (multiple Signed-off-by: OK) 8 | - describe the "component:" field better, with examples 9 | 10 | If there was an error committing the message, save a copy to a 11 | temporary file, so that it can be edited and re-used, instead of 12 | having to recreate it each time, or fetch it from .git/COMMIT_MSG. 13 | 14 | Signed-off-by: Andreas Dilger 15 | Signed-off-by: Andrew Dillinger 16 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.ok_innocuous: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | message 4 | body 5 | 6 | Signed-off-by: Orin Scrivello, DDS 7 | Change-Id: I0123456789012345678901234567890123456789 8 | Acked-by: Joe Doaks 9 | Tested-by: Jane Pain 10 | CC: Your Mother 11 | Reported-by: Anony Mouse 12 | Reviewed-by: Joe Hacker 13 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.ok_nocid: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | Improve the checks done by the commit-msg script. It now ensures 4 | that all the parts of the commit message are present. 5 | - validate that the Change-Id: generated from 'git hash-object' is 6 | not empty, since this can happen if git is unhappy with the options 7 | - check for only one Change-Id: line (multiple Signed-off-by: OK) 8 | - describe the "component:" field better, with examples 9 | 10 | If there was an error committing the message, save a copy to a 11 | temporary file, so that it can be edited and re-used, instead of 12 | having to recreate it each time, or fetch it from .git/COMMIT_MSG. 13 | 14 | Signed-off-by: Andreas Dilger 15 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.ok_params: -------------------------------------------------------------------------------- 1 | LU-1145 test: allow Test-Parameters tag for autotest 2 | 3 | Allow Test-Parameters line to specify extra tests that should be run 4 | to properly validate a change made to code or a regression test. 5 | 6 | The Test-Parameters line can be quite long, depending on the number 7 | of parameters specified. A single set of test parameters can be 8 | split over multiple lines by escaping the linefeed, though the 9 | individual lines should still be kept below the 70-character limit. 10 | 11 | Test-Parameters: ostcount=5 clientarch=i686 clientdistro=rhel5 12 | Test-Parameters: ostcount=1 testlist=ost-pools,sanity,sanityn,lfsck \ 13 | filesystemtype=ldiskfs,zfs serverarch=x86_64 14 | Signed-off-by: Andreas Dilger 15 | -------------------------------------------------------------------------------- /contrib/git-hooks/tests/commit.ok_signoff: -------------------------------------------------------------------------------- 1 | LU-553 build: improve checks for commit-msg 2 | 3 | message 4 | body 5 | 6 | Signed-off-by: Andreas Dilger 7 | Signed-off-by: Andreas Eric Dilger 8 | Signed-off-by: Andreas Eric Dilger 9 | Signed-off-by: Andreas Smyth Esq. III 10 | Change-Id: I0123456789012345678901234567890123456789 11 | 12 | # total: 0 errors, 0 warnings, 36 lines checked 13 | # 14 | # Your patch has no obvious style problems and is ready for submission. 15 | -------------------------------------------------------------------------------- /contrib/lbuild/lbuild-fc: -------------------------------------------------------------------------------- 1 | # vim:expandtab:shiftwidth=4:softtabstop=4:tabstop=4: 2 | 3 | # Please see find_linux_devel_paths() in lbuild-rhel5 file for more details. 4 | DEVEL_PATH_ARCH_DELIMETER="." 5 | source ${LBUILD_DIR}/lbuild-rhel5 6 | 7 | # increment this if you have made a change that should force a new kernel 8 | # to build built 9 | #BUILD_GEN=1 10 | #BUILD_GEN=2 # bz19952: remove -lustre tag from kernel RPM names 11 | #BUILD_GEN=3 # bz19975 enable the building of src.rpms by default 12 | BUILD_GEN+=".0" # TT-107: don't cache the BUILD dir (reset major to 5) 13 | 14 | -------------------------------------------------------------------------------- /contrib/lbuild/lbuild-fc11: -------------------------------------------------------------------------------- 1 | # vim:expandtab:shiftwidth=4:softtabstop=4:tabstop=4: 2 | 3 | # Replace i686 with i586 for fc11. 4 | # Please see find_linux_devel_paths() in lbuild-rhel5 file for more details. 5 | if [ $TARGET_ARCH == 'i686' ]; then 6 | DEVEL_PATH_ARCH="i586" 7 | fi 8 | source ${LBUILD_DIR}/lbuild-fc 9 | 10 | # increment this if you have made a change that should force a new kernel 11 | # to build built 12 | #BUILD_GEN=1 13 | #BUILD_GEN=2 # bz19952: remove -lustre tag from kernel RPM names 14 | #BUILD_GEN=3 # bz19975 enable the building of src.rpms by default 15 | BUILD_GEN+=".0" # TT-107: don't cache the BUILD dir (reset major to 5) 16 | 17 | 18 | -------------------------------------------------------------------------------- /contrib/lbuild/lbuild-fc12: -------------------------------------------------------------------------------- 1 | # vim:expandtab:shiftwidth=4:softtabstop=4:tabstop=4: 2 | 3 | source ${LBUILD_DIR}/lbuild-fc 4 | 5 | # increment this if you have made a change that should force a new kernel 6 | # to build built 7 | #BUILD_GEN=1 8 | #BUILD_GEN=2 # bz19952: remove -lustre tag from kernel RPM names 9 | #BUILD_GEN=3 # bz19975 enable the building of src.rpms by default 10 | BUILD_GEN+=".0" # TT-107: don't cache the BUILD dir (reset major to 5) 11 | -------------------------------------------------------------------------------- /contrib/lbuild/lbuild-fc15: -------------------------------------------------------------------------------- 1 | # vim:expandtab:shiftwidth=4:softtabstop=4:tabstop=4: 2 | 3 | source ${LBUILD_DIR}/lbuild-fc 4 | 5 | # increment this if you have made a change that should force a new kernel 6 | # to build built 7 | BUILD_GEN+=".0" 8 | -------------------------------------------------------------------------------- /contrib/lbuild/lbuild-fc18: -------------------------------------------------------------------------------- 1 | # vim:expandtab:shiftwidth=4:softtabstop=4:tabstop=4: 2 | 3 | source ${LBUILD_DIR}/lbuild-fc 4 | 5 | # increment this if you have made a change that should force a new kernel 6 | # to build built 7 | BUILD_GEN+=".0" 8 | 9 | find_linux_rpm-fc18() { 10 | local prefix="$1" 11 | local wanted_kernel="$2" 12 | local pathtorpms=${3:-"$KERNELRPMSBASE/$lnxmaj/$DISTROMAJ/$TARGET_ARCH"} 13 | 14 | find_linux_rpm-rhel "$prefix" "$wanted_kernel" "$pathtorpms" 15 | 16 | } 17 | -------------------------------------------------------------------------------- /contrib/lbuild/lbuild-oel5: -------------------------------------------------------------------------------- 1 | # vim:expandtab:shiftwidth=4:softtabstop=4:tabstop=4: 2 | 3 | source ${LBUILD_DIR}/lbuild-rhel5 4 | 5 | # increment this if you have made a change that should force a new kernel 6 | # to build built for this distribution (only -- if you want to force a kernel 7 | # build on all distributions, update the BUILD_GEN variable in build/lbuild) 8 | BUILD_GEN+=".0" 9 | -------------------------------------------------------------------------------- /contrib/lbuild/rhel7/.gitignore: -------------------------------------------------------------------------------- 1 | kmodtool 2 | rpmmacros 3 | -------------------------------------------------------------------------------- /contrib/lbuild/rhel7/kmodtool.patch: -------------------------------------------------------------------------------- 1 | lbuild does not install the kernel source in the standard RHEL7 location. 2 | RHEL's kmodtool (starting in RHEL7) expects the source to be in the standard 3 | location, and when it fails to find it it adds an extra $arch onto the end 4 | of verrel. With lbuild, verrel already contains the arch, so we change the 5 | kmodtool script so that it does not add another. 6 | 7 | --- old/kmodtool 2016-06-07 14:36:20.810907740 -0700 8 | +++ new/kmodtool 2016-06-07 14:37:55.335652424 -0700 9 | @@ -62,7 +62,7 @@ get_kernel_release () 10 | local versuffix=${verrel#$verprefix} 11 | verrel=$(ls -Ud /usr/src/kernels/$verprefix*$versuffix.$arch | sort -V | tail -n 1) 12 | verrel=${verrel##*/} 13 | - [[ -z $verrel ]] && verrel=$1.$arch 14 | + [[ -z $verrel ]] && verrel=$1 15 | echo "$verrel" 16 | } 17 | 18 | -------------------------------------------------------------------------------- /contrib/lbuild/rhel8/.gitignore: -------------------------------------------------------------------------------- 1 | kmodtool 2 | rpmmacros 3 | -------------------------------------------------------------------------------- /contrib/lbuild/rhel8/kmodtool.patch: -------------------------------------------------------------------------------- 1 | lbuild does not install the kernel source in the standard RHEL7 location. 2 | RHEL's kmodtool (starting in RHEL7) expects the source to be in the standard 3 | location, and when it fails to find it it adds an extra $arch onto the end 4 | of verrel. With lbuild, verrel already contains the arch, so we change the 5 | kmodtool script so that it does not add another. 6 | 7 | --- old/kmodtool 2016-06-07 14:36:20.810907740 -0700 8 | +++ new/kmodtool 2016-06-07 14:37:55.335652424 -0700 9 | @@ -62,7 +62,7 @@ get_kernel_release () 10 | local versuffix=${verrel#$verprefix} 11 | verrel=$(ls -Ud /usr/src/kernels/$verprefix*$versuffix.$arch | sort -V | tail -n 1) 12 | verrel=${verrel##*/} 13 | - [[ -z $verrel ]] && verrel=$1.$arch 14 | + [[ -z $verrel ]] && verrel=$1 15 | echo "$verrel" 16 | } 17 | 18 | -------------------------------------------------------------------------------- /contrib/quiltrc: -------------------------------------------------------------------------------- 1 | export QUILT_DIFF_OPTS="-upa" 2 | export QUILT_NO_DIFF_TIMESTAMPS=1 3 | -------------------------------------------------------------------------------- /contrib/scripts/clearpatches.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PROG=$(basename $0) 3 | [ "$1" = "-h" -o "$1" = "--help" ] && echo "usage: $PROG [patch dir]" && exit 0 4 | [ "$1" = "-d" ] && shift && DELETE="git rm" || DELETE="echo Unused" 5 | [ "$1" = "-v" ] && shift && VERBOSE="echo Checking" || VERBOSE=":" 6 | 7 | [ "$1" ] && BASEDIR="$1" 8 | BASEDIR=${BASEDIR:-lustre/kernel_patches} 9 | SERIESPATH=${SERIESPATH:-$BASEDIR/series} 10 | PATCHPATH=${PATCHPATH:-$BASEDIR/patches} 11 | 12 | [ ! -d "$BASEDIR" ] && echo "$PROG: missing base directory '$BASEDIR'" && exit 1 13 | [ ! -d "$SERIESPATH" ] && echo "$PROG: missing series '$SERIESPATH'" && exit 2 14 | [ ! -d "$PATCHPATH" ] && echo "$PROG: missing patches '$PATCHPATH'" && exit 3 15 | 16 | CANONICAL_SERIESPATH=$(readlink -f ${SERIESPATH}) 17 | pushd $PATCHPATH > /dev/null 18 | for PATCH in $(find -name "*.patch"); do 19 | # Remove the leading "./" 20 | PATCH=${PATCH##./} 21 | $VERBOSE $PATCH 22 | if ! grep -q -e "^$PATCH" $CANONICAL_SERIESPATH/*.series ; then 23 | $DELETE $PATCH 24 | fi 25 | done 26 | popd > /dev/null 27 | -------------------------------------------------------------------------------- /contrib/scripts/confirmpatches.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PROG=$(basename $0) 3 | [ "$1" = "-h" -o "$1" = "--help" ] && echo "usage: $PROG [patch dir]" && exit 0 4 | [ "$1" = "-v" ] && shift && VERBOSE="echo" || VERBOSE=":" 5 | 6 | [ "$1" ] && BASEDIR="$1" 7 | BASEDIR=${BASEDIR:-lustre/kernel_patches} 8 | SERIESPATH=${SERIESPATH:-$BASEDIR/series} 9 | PATCHPATH=${PATCHPATH:-$BASEDIR/patches} 10 | 11 | [ ! -d "$BASEDIR" ] && echo "$PROG: missing base directory '$BASEDIR'" && exit 1 12 | [ ! -d "$SERIESPATH" ] && echo "$PROG: missing series '$SERIESPATH'" && exit 2 13 | [ ! -d "$PATCHPATH" ] && echo "$PROG: missing patches '$PATCHPATH'" && exit 3 14 | 15 | for SERIES in $(ls $SERIESPATH | egrep -v "~$|.orig|.rej") ; do 16 | $VERBOSE "series: $SERIES" 17 | for PATCH in $(grep -v "^#" $SERIESPATH/$SERIES); do 18 | $VERBOSE $PATCH 19 | if [ ! -e $PATCHPATH/$PATCH ]; then 20 | echo "$SERIESPATH/$SERIES: patch '$PATCH' not found!" 21 | fi 22 | done 23 | done 24 | -------------------------------------------------------------------------------- /contrib/scripts/const_structs.checkpatch: -------------------------------------------------------------------------------- 1 | address_space_operations 2 | block_device_operations 3 | dentry_operations 4 | file_lock_operations 5 | file_operations 6 | inode_operations 7 | sysfs_ops 8 | -------------------------------------------------------------------------------- /debian/.gitignore: -------------------------------------------------------------------------------- 1 | /*.log 2 | /*.substvars 3 | /.debhelper 4 | /files 5 | /lustre-dev 6 | /lustre-source 7 | /lustre-iokit 8 | /lustre-tests 9 | /lustre-resource-agents 10 | /lustre-*.substvars 11 | /lustre-*-utils 12 | /tmp 13 | -------------------------------------------------------------------------------- /debian/compat: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /debian/lustre-client-modules-dkms.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | # Get the package version 6 | package="lustre-client-modules" 7 | version="$(dpkg-query -W -f='${Version}' "${package}-dkms" | sed -e 's/-[^-]*$//')" 8 | 9 | dkms add -m "${package}" -v "${version}" 10 | dkms build -m "${package}" -v "${version}" && dkms install -m "${package}" -v "${version}" || true 11 | -------------------------------------------------------------------------------- /debian/lustre-client-modules-dkms.prerm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | # Get the package version 6 | package="lustre-client-modules" 7 | version="$(dpkg-query -W -f='${Version}' "${package}-dkms" | sed -e 's/-[^-]*$//')" 8 | 9 | dkms remove -m "${package}" -v "${version}" --all || true 10 | -------------------------------------------------------------------------------- /debian/lustre-client-modules.install: -------------------------------------------------------------------------------- 1 | debian/tmp/lib / 2 | debian/tmp/usr/include/linux/lnet/* usr/include/linux/lnet 3 | debian/tmp/usr/include/linux/libcfs/* usr/include/linux/libcfs 4 | -------------------------------------------------------------------------------- /debian/lustre-client-utils.docs: -------------------------------------------------------------------------------- 1 | lustre/BUGS 2 | README 3 | -------------------------------------------------------------------------------- /debian/lustre-client-utils.examples: -------------------------------------------------------------------------------- 1 | lustre/tests/llmountcleanup.sh 2 | lustre/tests/llmount.sh 3 | -------------------------------------------------------------------------------- /debian/lustre-client-utils.install.in: -------------------------------------------------------------------------------- 1 | debian/tmp/sbin/* sbin 2 | debian/tmp/usr/sbin/* usr/sbin 3 | debian/tmp/usr/bin/* usr/bin 4 | debian/tmp/usr/lib/*.so.* usr/lib 5 | debian/tmp/lib/systemd/system/* lib/systemd/system 6 | debian/tmp/etc/* etc 7 | debian/tmp/usr/share/bash-completion/completions/* usr/share/bash-completion/completions 8 | -------------------------------------------------------------------------------- /debian/lustre-client-utils.manpages: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/share/man/*/* 2 | -------------------------------------------------------------------------------- /debian/lustre-dev.dirs: -------------------------------------------------------------------------------- 1 | usr/share/doc/lustre-dev/contrib 2 | -------------------------------------------------------------------------------- /debian/lustre-dev.install: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/include/lustre/* usr/include/lustre 2 | debian/tmp/usr/lib/*.so usr/lib 3 | debian/tmp/usr/lib/*.a usr/lib 4 | -------------------------------------------------------------------------------- /debian/lustre-iokit.docs: -------------------------------------------------------------------------------- 1 | lustre-iokit/*-survey/README* 2 | lustre-iokit/stats-collect/README.* 3 | -------------------------------------------------------------------------------- /debian/lustre-iokit.install: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/bin/iokit-* usr/bin 2 | debian/tmp/usr/bin/*-survey usr/bin 3 | -------------------------------------------------------------------------------- /debian/lustre-resource-agents.dirs: -------------------------------------------------------------------------------- 1 | usr/lib/ocf/resource.d/lustre 2 | -------------------------------------------------------------------------------- /debian/lustre-resource-agents.install: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/lib/ocf/resource.d/lustre/* usr/lib.ocf/resource.d/lustre 2 | -------------------------------------------------------------------------------- /debian/lustre-server-modules.install: -------------------------------------------------------------------------------- 1 | debian/tmp/lib / 2 | -------------------------------------------------------------------------------- /debian/lustre-server-utils.docs: -------------------------------------------------------------------------------- 1 | lustre/BUGS 2 | README 3 | -------------------------------------------------------------------------------- /debian/lustre-server-utils.examples: -------------------------------------------------------------------------------- 1 | lustre/tests/llmountcleanup.sh 2 | lustre/tests/llmount.sh 3 | -------------------------------------------------------------------------------- /debian/lustre-server-utils.install.in: -------------------------------------------------------------------------------- 1 | debian/tmp/sbin/* sbin 2 | debian/tmp/usr/sbin/* usr/sbin 3 | debian/tmp/usr/bin/* usr/bin 4 | debian/tmp/usr/lib/*.so.* usr/lib 5 | debian/tmp/usr/lib/lustre/*.so* usr/lib/lustre 6 | debian/tmp/lib/systemd/system/* lib/systemd/system 7 | debian/tmp/etc/* etc 8 | debian/tmp/usr/share/bash-completion/completions/* usr/share/bash-completion/completions 9 | -------------------------------------------------------------------------------- /debian/lustre-server-utils.manpages: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/share/man/*/* 2 | -------------------------------------------------------------------------------- /debian/lustre-source.dirs: -------------------------------------------------------------------------------- 1 | usr/src 2 | usr/src/modules 3 | usr/share/modass/overrides 4 | -------------------------------------------------------------------------------- /debian/lustre-source.docs: -------------------------------------------------------------------------------- 1 | debian/README.Debian 2 | -------------------------------------------------------------------------------- /debian/lustre-tests.install: -------------------------------------------------------------------------------- 1 | debian/tmp/usr/lib/lustre/tests/* usr/lib/lustre/tests 2 | debian/tmp/usr/bin/mcreate usr/bin 3 | debian/tmp/usr/bin/munlink usr/bin 4 | debian/tmp/usr/sbin/wire* usr/sbin 5 | -------------------------------------------------------------------------------- /debian/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | DEPMOD_DIR="/etc/depmod.d" 4 | LUSTRE_DEPMOD_FILE="${DEPMOD_DIR}/lustre.conf" 5 | 6 | [ ! -d ${DEPMOD_DIR} ] && { mkdir -p ${DEPMOD_DIR}; } 7 | [ ! -e ${LUSTRE_DEPMOD_FILE} ] && { echo "search updates built-in" > ${LUSTRE_DEPMOD_FILE}; } 8 | 9 | depmod -a 10 | -------------------------------------------------------------------------------- /debian/postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | DEPMOD_DIR="/etc/depmod.d" 4 | LUSTRE_DEPMOD_FILE="${DEPMOD_DIR}/lustre.conf" 5 | 6 | [ -e ${LUSTRE_DEPMOD_FILE} ] && { rm -f ${LUSTRE_DEPMOD_FILE}; } 7 | # If DEPMOD_DIR is empty, we also created it, thus remove it. 8 | [ ! "$(ls -A ${DEPMOD_DIR} 2>/dev/null)" ] && { rm -rf ${DEPMOD_DIR}; } 9 | 10 | depmod -a -------------------------------------------------------------------------------- /debian/source/format: -------------------------------------------------------------------------------- 1 | 1.0 2 | -------------------------------------------------------------------------------- /ldiskfs/.gitignore: -------------------------------------------------------------------------------- 1 | /linux-stage 2 | /linux 3 | /modules.order 4 | /Module.symvers 5 | /stamp-h2 6 | /*.c 7 | /*.h 8 | /sources 9 | /trace 10 | -------------------------------------------------------------------------------- /ldiskfs/Makefile.in: -------------------------------------------------------------------------------- 1 | default: all 2 | 3 | MODULES := ldiskfs 4 | 5 | # copy makefile over to not break patches 6 | backfs_extra := $(wildcard @LINUX@/fs/ext4/Makefile) 7 | 8 | backfs_headers := $(wildcard @EXT4_SRC_DIR@/*.h) 9 | linux_headers := $(wildcard @LINUX@/include/linux/ext4*.h) 10 | linux_new_headers := htree_lock.h 11 | trace_headers := $(wildcard @LINUX@/include/trace/events/ext4*.h) 12 | 13 | backfs_sources := $(filter-out %.mod.c,$(wildcard @EXT4_SRC_DIR@/*.c)) 14 | 15 | new_sources := mmp.c htree_lock.c 16 | new_headers := 17 | 18 | ldiskfs_patched_sources := $(notdir $(backfs_sources) $(backfs_headers)) $(new_sources) $(new_headers) 19 | ldiskfs_sources := $(ldiskfs_patched_sources) 20 | 21 | ldiskfs-objs := $(filter %.o,$(ldiskfs_sources:.c=.o)) 22 | 23 | EXTRA_PRE_CFLAGS := -I@LINUX@/fs -I@abs_top_srcdir@/ldiskfs 24 | 25 | @INCLUDE_RULES@ 26 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.3/ext4-add-missing-kfree-on-error-return-path-in-add_new_gdb.patch: -------------------------------------------------------------------------------- 1 | From c49bafa3842751b8955a962859f42d307673d75d Mon Sep 17 00:00:00 2001 2 | From: Dan Carpenter 3 | Date: Sat, 30 Jul 2011 12:58:41 -0400 4 | Subject: ext4: add missing kfree() on error return path in add_new_gdb() 5 | Git-commit: c49bafa3 6 | Patch-mainline: v3.1-rc1 7 | 8 | We added some more error handling in b40971426a "ext4: add error 9 | checking to calls to ext4_handle_dirty_metadata()". But we need to 10 | call kfree() as well to avoid a memory leak. 11 | 12 | Signed-off-by: Dan Carpenter 13 | Signed-off-by: "Theodore Ts'o" 14 | Acked-by: Jeff Mahoney 15 | --- 16 | fs/ext4/resize.c | 1 + 17 | 1 file changed, 1 insertion(+) 18 | 19 | --- a/fs/ext4/resize.c 20 | +++ b/fs/ext4/resize.c 21 | @@ -475,6 +475,7 @@ static int add_new_gdb(handle_t *handle, 22 | return 0; 23 | 24 | exit_inode: 25 | + kfree(n_group_desc); 26 | /* ext4_journal_release_buffer(handle, iloc.bh); */ 27 | brelse(iloc.bh); 28 | exit_dindj: 29 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.3/ext4-dont-check-in-ro.patch: -------------------------------------------------------------------------------- 1 | --- linux-stage/fs/ext4/mballoc.c 2016-11-25 15:31:40.353249364 +0530 2 | +++ linux-stage.orig/fs/ext4/mballoc.c 2016-11-25 15:35:07.816249363 +0530 3 | @@ -3369,6 +3369,11 @@ 4 | unsigned short max = EXT4_BLOCKS_PER_GROUP(sb); 5 | unsigned short i, first, free = 0; 6 | 7 | +#ifdef HAVE_CLEAR_RDONLY_ON_PUT 8 | + /* be quiet if readonly device */ 9 | + if (dev_check_rdonly(sb->s_bdev)) 10 | + return 0; 11 | +#endif 12 | i = mb_find_next_zero_bit(bitmap, max, 0); 13 | 14 | while (i < max) { 15 | @@ -3750,6 +3755,13 @@ 16 | bit = next + 1; 17 | } 18 | 19 | +#ifdef HAVE_CLEAR_RDONLY_ON_PUT 20 | + /* be quiet if readonly device */ 21 | + if (dev_check_rdonly(sb->s_bdev)) { 22 | + atomic_add(free, &sbi->s_mb_discarded); 23 | + return err; 24 | + } 25 | +#endif 26 | /* "free < pa->pa_free" means we maybe double alloc the same blocks, 27 | * otherwise maybe leave some free blocks unavailable, no need to BUG.*/ 28 | if ((free > pa->pa_free && !pa->pa_error) || (free < pa->pa_free)) { 29 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.3/ext4-drop-inode-from-orphan-list-if-ext4_delete_inode-fails.patch: -------------------------------------------------------------------------------- 1 | commit 4538821993f4486c76090dfb377c60c0a0e71ba3 2 | Author: Theodore Ts'o 3 | Date: Thu Jul 29 15:06:10 2010 -0400 4 | 5 | ext4: drop inode from orphan list if ext4_delete_inode() fails 6 | 7 | There were some error paths in ext4_delete_inode() which was not 8 | dropping the inode from the orphan list. This could lead to a BUG_ON 9 | on umount when the orphan list is discovered to be non-empty. 10 | 11 | Signed-off-by: "Theodore Ts'o" 12 | Signed-off-by: Wang Shilong 13 | --- linux-stage.orig/fs/ext4/inode.c 2014-10-20 20:13:39.689001531 +0800 14 | +++ linux-stage/fs/ext4/inode.c 2014-10-20 20:12:14.224997168 +0800 15 | @@ -279,6 +279,7 @@ 16 | "couldn't extend journal (err %d)", err); 17 | stop_handle: 18 | ext4_journal_stop(handle); 19 | + ext4_orphan_del(NULL, inode); 20 | sb_end_intwrite(inode->i_sb); 21 | goto no_delete; 22 | } 23 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.3/ext4-fix-ext4_mb_add_n_trim.patch: -------------------------------------------------------------------------------- 1 | Index: linux-stage/fs/ext4/mballoc.c 2 | =================================================================== 3 | --- linux-stage.orig/fs/ext4/mballoc.c 4 | +++ linux-stage/fs/ext4/mballoc.c 5 | @@ -4352,7 +4352,7 @@ static void ext4_mb_add_n_trim(struct ex 6 | /* The max size of hash table is PREALLOC_TB_SIZE */ 7 | order = PREALLOC_TB_SIZE - 1; 8 | /* Add the prealloc space to lg */ 9 | - rcu_read_lock(); 10 | + spin_lock(&lg->lg_prealloc_lock); 11 | list_for_each_entry_rcu(tmp_pa, &lg->lg_prealloc_list[order], 12 | pa_inode_list) { 13 | spin_lock(&tmp_pa->pa_lock); 14 | @@ -4376,7 +4376,7 @@ static void ext4_mb_add_n_trim(struct ex 15 | if (!added) 16 | list_add_tail_rcu(&pa->pa_inode_list, 17 | &lg->lg_prealloc_list[order]); 18 | - rcu_read_unlock(); 19 | + spin_unlock(&lg->lg_prealloc_lock); 20 | 21 | /* Now trim the list to be not more than 8 elements */ 22 | if (lg_prealloc_count > 8) { 23 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.3/ext4-nocmtime-2.6.patch: -------------------------------------------------------------------------------- 1 | Index: linux-stage/fs/ext4/ext4.h 2 | =================================================================== 3 | --- linux-stage.orig/fs/ext4/ext4.h 4 | +++ linux-stage/fs/ext4/ext4.h 5 | @@ -1213,6 +1213,9 @@ static inline struct ext4_inode_info *EX 6 | 7 | static inline struct timespec ext4_current_time(struct inode *inode) 8 | { 9 | + if (IS_NOCMTIME(inode)) 10 | + return inode->i_ctime; 11 | + 12 | return (inode->i_sb->s_time_gran < NSEC_PER_SEC) ? 13 | current_fs_time(inode->i_sb) : CURRENT_TIME_SEC; 14 | } 15 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.3/ext4-not-discard-preallocation-umount.patch: -------------------------------------------------------------------------------- 1 | Index: linux-stage/fs/ext4/mballoc.c 2 | =================================================================== 3 | --- linux-stage.orig/fs/ext4/mballoc.c 4 | +++ linux-stage/fs/ext4/mballoc.c 5 | @@ -3781,7 +3781,8 @@ ext4_mb_release_inode_pa(struct ext4_bud 6 | * from the bitmap and continue. 7 | */ 8 | } 9 | - BUG_ON(pa->pa_free != free); 10 | + /* do not verify if the file system is being umounted */ 11 | + BUG_ON(atomic_read(&sb->s_active) > 0 && pa->pa_free != free); 12 | atomic_add(free, &sbi->s_mb_discarded); 13 | 14 | return err; 15 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.3/ext4-notalloc_under_idatasem.patch: -------------------------------------------------------------------------------- 1 | Index: linux-stage/fs/ext4/extents.c 2 | =================================================================== 3 | --- linux-stage.orig/fs/ext4/extents.c 2015-07-13 22:22:56.000000000 +0300 4 | +++ linux-stage/fs/ext4/extents.c 2015-07-13 22:24:05.000000000 +0300 5 | @@ -4318,7 +4318,8 @@ static int ext4_find_delayed_extent(stru 6 | struct buffer_head *head = NULL; 7 | unsigned int nr_pages = PAGE_SIZE / sizeof(struct page *); 8 | 9 | - pages = kmalloc(PAGE_SIZE, GFP_KERNEL); 10 | + /* we are running under i_data_sem so don't reenter the FS code */ 11 | + pages = kmalloc(PAGE_SIZE, GFP_NOFS); 12 | if (pages == NULL) 13 | return -ENOMEM; 14 | 15 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.3/ext4-print-inum-in-htree-warning.patch: -------------------------------------------------------------------------------- 1 | Index: linux-stage/fs/ext4/namei.c 2 | =================================================================== 3 | --- linux-stage.orig/fs/ext4/namei.c 4 | +++ linux-stage/fs/ext4/namei.c 5 | @@ -371,8 +371,8 @@ dx_probe(const struct qstr *d_name, stru 6 | if (root->info.hash_version != DX_HASH_TEA && 7 | root->info.hash_version != DX_HASH_HALF_MD4 && 8 | root->info.hash_version != DX_HASH_LEGACY) { 9 | - ext4_warning(dir->i_sb, "Unrecognised inode hash code %d", 10 | - root->info.hash_version); 11 | + ext4_warning(dir->i_sb, "Unrecognised inode hash code %d for directory " 12 | + "#%lu", root->info.hash_version, dir->i_ino); 13 | brelse(bh); 14 | *err = ERR_BAD_DX_DIR; 15 | goto fail; 16 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.3/ext4-recalc-percpu-counters-after-journal.patch: -------------------------------------------------------------------------------- 1 | --- linux-stage.orig/fs/ext4/super.c 2 | +++ linux-stage/fs/ext4/super.c 3 | @@ -3613,6 +3613,18 @@ static int ext4_fill_super(struct super_ 4 | 5 | sbi->s_journal->j_commit_callback = ext4_journal_commit_callback; 6 | 7 | + /* 8 | + * The journal may have updated the bg summary counts, so we 9 | + * need to update the global counters. 10 | + */ 11 | + percpu_counter_set(&sbi->s_freeblocks_counter, 12 | + ext4_count_free_blocks(sb)); 13 | + percpu_counter_set(&sbi->s_freeinodes_counter, 14 | + ext4_count_free_inodes(sb)); 15 | + percpu_counter_set(&sbi->s_dirs_counter, 16 | + ext4_count_dirs(sb)); 17 | + percpu_counter_set(&sbi->s_dirtyblocks_counter, 0); 18 | + 19 | no_journal: 20 | 21 | if (test_opt(sb, NOBH)) { 22 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.4/ext4-extra-isize.patch: -------------------------------------------------------------------------------- 1 | Index: linux-stage/fs/ext4/inode.c 2 | =================================================================== 3 | --- linux-stage.orig/fs/ext4/inode.c 4 | +++ linux-stage/fs/ext4/inode.c 5 | @@ -5654,7 +5654,7 @@ static int ext4_do_update_inode(handle_t 6 | raw_inode->i_file_acl_high = 7 | cpu_to_le16(ei->i_file_acl >> 32); 8 | raw_inode->i_file_acl_lo = cpu_to_le32(ei->i_file_acl); 9 | - if (ei->i_disksize != ext4_isize(raw_inode)) { 10 | + if (ei->i_disksize != ext4_isize(inode->i_sb, raw_inode)) { 11 | ext4_isize_set(raw_inode, ei->i_disksize); 12 | need_datasync = 1; 13 | } 14 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.4/ext4-fix-mbgroups-access.patch: -------------------------------------------------------------------------------- 1 | Index: linux-stage/fs/ext4/mballoc.c 2 | =================================================================== 3 | --- linux-stage.orig/fs/ext4/mballoc.c 4 | +++ linux-stage/fs/ext4/mballoc.c 5 | @@ -4825,6 +4825,11 @@ do_more: 6 | * be used until this transaction is committed 7 | */ 8 | new_entry = kmem_cache_alloc(ext4_free_data_cachep, GFP_NOFS); 9 | + if (!new_entry) { 10 | + ext4_mb_release_desc(&e4b); 11 | + err = -ENOMEM; 12 | + goto error_return; 13 | + } 14 | new_entry->efd_start_blk = bit; 15 | new_entry->efd_group = block_group; 16 | new_entry->efd_count = count; 17 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.5/ext4-brackets-in-ext4-remove-blocks.patch: -------------------------------------------------------------------------------- 1 | diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c 2 | index 1ed737f..77e2fb3 100644 3 | --- a/fs/ext4/extents.c 4 | +++ b/fs/ext4/extents.c 5 | @@ -2276,9 +2276,10 @@ static int ext4_remove_blocks(handle_t *handle, 6 | unsigned short ee_len = ext4_ext_get_actual_len(ex); 7 | int i, metadata = 0, flags =0; 8 | 9 | - if (S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode)) 10 | + if (S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode)) { 11 | metadata = 1; 12 | flags = EXT4_FREE_BLOCKS_METADATA; 13 | + } 14 | #ifdef EXTENTS_STATS 15 | { 16 | struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); 17 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.5/ext4-fix-journal-quota.patch: -------------------------------------------------------------------------------- 1 | diff --git a/fs/ext4/super.c b/fs/ext4/super.c 2 | index 1ed737f..77e2fb3 100644 3 | --- a/fs/ext4/super.c 4 | +++ b/fs/ext4/super.c 5 | @@ -4672,7 +4672,9 @@ static int ext4_release_dquot(struct dquot *dquot) 6 | static int ext4_mark_dquot_dirty(struct dquot *dquot) 7 | { 8 | /* Are we journaling quotas? */ 9 | - if (EXT4_SB(dquot->dq_sb)->s_qf_names[USRQUOTA] || 10 | + if (EXT4_HAS_RO_COMPAT_FEATURE(dquot->dq_sb, 11 | + EXT4_FEATURE_RO_COMPAT_QUOTA) || 12 | + EXT4_SB(dquot->dq_sb)->s_qf_names[USRQUOTA] || 13 | EXT4_SB(dquot->dq_sb)->s_qf_names[GRPQUOTA]) { 14 | dquot_mark_dquot_dirty(dquot); 15 | return ext4_write_dquot(dquot); 16 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel6.6/ext4-remove-truncate-warning.patch: -------------------------------------------------------------------------------- 1 | Invoking ext4_truncate with i_mutex locked will cause a deadlock 2 | in lustre. Since lustre has own lock to provide protection we don't 3 | need this check at all. 4 | 5 | Index: linux-2.6.32-504.el6.x86_64/fs/ext4/inode.c 6 | =================================================================== 7 | --- linux-2.6.32-504.el6.x86_64.orig/fs/ext4/inode.c 8 | +++ linux-3.10.0-504.el6.x86_64/fs/ext4/inode.c 9 | @@ -3934,8 +3934,6 @@ void ext4_end_io_work(struct work_struct 10 | int ext4_flush_unwritten_io(struct inode *inode) 11 | { 12 | int ret; 13 | - WARN_ON_ONCE(!mutex_is_locked(&inode->i_mutex) && 14 | - !(inode->i_state & I_FREEING)); 15 | ret = ext4_do_flush_completed_IO(inode, NULL); 16 | ext4_unwritten_wait(inode); 17 | return ret; 18 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel7.2/ext4-dont-check-in-ro.patch: -------------------------------------------------------------------------------- 1 | --- linux-stage/fs/ext4/mballoc.c 2016-11-25 04:15:25.824396109 +0530 2 | +++ linux-stage.orig/fs/ext4/mballoc.c 2016-11-25 02:59:13.505151246 +0530 3 | @@ -3594,6 +3594,11 @@ 4 | unsigned short max = EXT4_CLUSTERS_PER_GROUP(sb); 5 | unsigned short i, first, free = 0; 6 | 7 | +#ifdef HAVE_CLEAR_RDONLY_ON_PUT 8 | + /* be quiet if readonly device */ 9 | + if (dev_check_rdonly(sb->s_bdev)) 10 | + return 0; 11 | +#endif 12 | i = mb_find_next_zero_bit(bitmap, max, 0); 13 | 14 | while (i < max) { 15 | @@ -3969,6 +3974,14 @@ 16 | bit = next + 1; 17 | } 18 | 19 | + 20 | +#ifdef HAVE_CLEAR_RDONLY_ON_PUT 21 | + /* be quiet if readonly device */ 22 | + if (dev_check_rdonly(sb->s_bdev)) { 23 | + atomic_add(free, &sbi->s_mb_discarded); 24 | + return err; 25 | + } 26 | +#endif 27 | /* "free < pa->pa_free" means we maybe double alloc the same blocks, 28 | * otherwise maybe leave some free blocks unavailable, no need to BUG.*/ 29 | if ((free > pa->pa_free && !pa->pa_error) || (free < pa->pa_free)) { 30 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel7.2/ext4-release-bh-in-makeinxdir.patch: -------------------------------------------------------------------------------- 1 | --- linux-1/fs/ext4/namei.c 2016-09-27 02:16:31.020890438 +0800 2 | +++ linux-2/fs/ext4/namei.c 2016-09-27 02:17:14.246620470 +0800 3 | @@ -1874,6 +1874,7 @@ out_frames: 4 | */ 5 | ext4_mark_inode_dirty(handle, dir); 6 | dx_release(frames); 7 | + brelse(bh); 8 | return retval; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel7/ext4-export-orphan-add.patch: -------------------------------------------------------------------------------- 1 | Index: linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/namei.c 2 | =================================================================== 3 | --- linux-3.10.0-123.13.2.el7.x86_64.orig/fs/ext4/namei.c 4 | +++ linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/namei.c 5 | @@ -3250,6 +48,7 @@ int ext4_orphan_add(handle_t *handle 6 | ext4_std_error(sb, err); 7 | return err; 8 | } 9 | +EXPORT_SYMBOL(ext4_orphan_add); 10 | 11 | /* 12 | * ext4_orphan_del() removes an unlinked or truncated inode from the list 13 | 14 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel7/ext4-jcb-optimization.patch: -------------------------------------------------------------------------------- 1 | Change list_add_tail to list_add. It gives advantages to ldiskfs 2 | in tgt_cb_last_committed. In the beginning of list will be placed 3 | thandles with the highest transaction numbers. So at the first 4 | iterations we will have the highest transno. It will save from 5 | extra call of ptlrpc_commit_replies. 6 | 7 | Index: linux-3.10.0-229.1.2.fc21.x86_64/fs/ext4/ext4_jbd2.c 8 | =================================================================== 9 | --- linux-3.10.0-229.1.2.fc21.x86_64.orig/fs/ext4/ext4_jbd2.h 10 | +++ linux-3.10.0-229.1.2.fc21.x86_64/fs/ext4/ext4_jbd2.h 11 | @@ -3644,7 +3644,7 @@ void ext4_truncate(struct inode *inode) 12 | /* Add the jce to transaction's private list */ 13 | jce->jce_func = func; 14 | spin_lock(&sbi->s_md_lock); 15 | - list_add_tail(&jce->jce_list, &handle->h_transaction->t_private_list); 16 | + list_add(&jce->jce_list, &handle->h_transaction->t_private_list); 17 | spin_unlock(&sbi->s_md_lock); 18 | } 19 | 20 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel7/ext4-mballoc-skip-uninit-groups-cr0.patch: -------------------------------------------------------------------------------- 1 | --- linux-4.18/fs/ext4/mballoc.c 2019-11-28 14:55:26.500545920 +0300 2 | +++ linux-4.18/fs/ext4/mballoc.c 2019-11-28 14:53:18.600086008 +0300 3 | @@ -2060,7 +2060,15 @@ static int ext4_mb_good_group(struct 4 | 5 | /* We only do this if the grp has never been initialized */ 6 | if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) { 7 | - int ret = ext4_mb_init_group(ac->ac_sb, group); 8 | + int ret; 9 | + 10 | + /* cr=0/1 is a very optimistic search to find large 11 | + * good chunks almost for free. if buddy data is 12 | + * not ready, then this optimization makes no sense */ 13 | + 14 | + if (cr < 2) 15 | + return 0; 16 | + ret = ext4_mb_init_group(ac->ac_sb, group); 17 | if (ret) 18 | return ret; 19 | } 20 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel7/ext4-mmp-brelse.patch: -------------------------------------------------------------------------------- 1 | --- linux-stage.orig/fs/ext4/mmp.c 2015-10-06 08:21:12.013939184 +0530 2 | +++ linux-stage/fs/ext4/mmp.c 2015-10-06 08:20:35.242939292 +0530 3 | @@ -99,8 +99,11 @@ static int read_mmp_block(struct super_b 4 | 5 | mmp = (struct mmp_struct *)((*bh)->b_data); 6 | if (le32_to_cpu(mmp->mmp_magic) != EXT4_MMP_MAGIC || 7 | - !ext4_mmp_csum_verify(sb, mmp)) 8 | + !ext4_mmp_csum_verify(sb, mmp)) { 9 | + brelse(*bh); 10 | + *bh = NULL; 11 | return -EINVAL; 12 | + } 13 | 14 | return 0; 15 | } 16 | @@ -219,6 +221,7 @@ static int kmmpd(void *data) 17 | "The filesystem seems to have been" 18 | " multiply mounted."); 19 | ext4_error(sb, "abort"); 20 | + put_bh(bh_check); 21 | goto failed; 22 | } 23 | put_bh(bh_check); 24 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel7/ext4-nocmtime.patch: -------------------------------------------------------------------------------- 1 | We won't change i_xtime in ldiskfs code path. But also 2 | need keep normal function out of Lustre. So we using 3 | S_NOCMTIME to indicate invoked from Lustre. 4 | 5 | Index: linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/ext4.h 6 | =================================================================== 7 | --- linux-3.10.0-123.13.2.el7.x86_64.orig/fs/ext4/ext4.h 8 | +++ linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/ext4.h 9 | @@ -1336,6 +1336,8 @@ static inline struct ext4_inode_info *EX 10 | 11 | static inline struct timespec ext4_current_time(struct inode *inode) 12 | { 13 | + if (IS_NOCMTIME(inode)) 14 | + return inode->i_ctime; 15 | return (inode->i_sb->s_time_gran < NSEC_PER_SEC) ? 16 | current_fs_time(inode->i_sb) : CURRENT_TIME_SEC; 17 | } 18 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel7/ext4-use-GFP_NOFS-in-ext4_inode_attach_jinode.patch: -------------------------------------------------------------------------------- 1 | diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c 2 | index 153dda7..63339a2 100644 3 | --- a/fs/ext4/inode.c 4 | +++ b/fs/ext4/inode.c 5 | @@ -3775,7 +3775,7 @@ int ext4_inode_attach_jinode(struct inode *inode) 6 | if (ei->jinode || !EXT4_SB(inode->i_sb)->s_journal) 7 | return 0; 8 | 9 | - jinode = jbd2_alloc_inode(GFP_KERNEL); 10 | + jinode = jbd2_alloc_inode(GFP_NOFS); 11 | spin_lock(&inode->i_lock); 12 | if (!ei->jinode) { 13 | if (!jinode) { 14 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/rhel8/ext4-mballoc-skip-uninit-groups-cr0.patch: -------------------------------------------------------------------------------- 1 | --- linux-4.18/fs/ext4/mballoc.c 2019-11-28 14:55:26.500545920 +0300 2 | +++ linux-4.18/fs/ext4/mballoc.c 2019-11-28 14:53:18.600086008 +0300 3 | @@ -2060,7 +2060,15 @@ static int ext4_mb_good_group(struct 4 | 5 | /* We only do this if the grp has never been initialized */ 6 | if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) { 7 | - int ret = ext4_mb_init_group(ac->ac_sb, group, GFP_NOFS); 8 | + int ret; 9 | + 10 | + /* cr=0/1 is a very optimistic search to find large 11 | + * good chunks almost for free. if buddy data is 12 | + * not ready, then this optimization makes no sense */ 13 | + 14 | + if (cr < 2) 15 | + return 0; 16 | + ret = ext4_mb_init_group(ac->ac_sb, group, GFP_NOFS); 17 | if (ret) 18 | return ret; 19 | } 20 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/sles11sp1/ext4-notalloc_under_idatasem.patch: -------------------------------------------------------------------------------- 1 | Index: linux-stage/fs/ext4/extents.c 2 | =================================================================== 3 | --- linux-stage.orig/fs/ext4/extents.c 2015-07-13 22:22:56.000000000 +0300 4 | +++ linux-stage/fs/ext4/extents.c 2015-07-13 22:24:05.000000000 +0300 5 | @@ -3954,7 +3954,8 @@ static int ext4_ext_fiemap_cb(struct ino 6 | struct buffer_head *head = NULL; 7 | unsigned int nr_pages = PAGE_SIZE / sizeof(struct page *); 8 | 9 | - pages = kmalloc(PAGE_SIZE, GFP_KERNEL); 10 | + /* we are running under i_data_sem so don't reenter the FS code */ 11 | + pages = kmalloc(PAGE_SIZE, GFP_NOFS); 12 | if (pages == NULL) 13 | return -ENOMEM; 14 | 15 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/sles11sp3/ext4-mmp-brelse.patch: -------------------------------------------------------------------------------- 1 | --- linux-stage.orig/fs/ext4/mmp.c 2015-11-01 15:42:38.069175571 +0530 2 | +++ linux-stage/fs/ext4/mmp.c 2015-11-01 15:46:53.840174791 +0530 3 | @@ -59,8 +59,11 @@ 4 | } 5 | 6 | mmp = (struct mmp_struct *)((*bh)->b_data); 7 | - if (le32_to_cpu(mmp->mmp_magic) != EXT4_MMP_MAGIC) 8 | + if (le32_to_cpu(mmp->mmp_magic) != EXT4_MMP_MAGIC) { 9 | + brelse(*bh); 10 | + *bh = NULL; 11 | return -EINVAL; 12 | + } 13 | 14 | return 0; 15 | } 16 | @@ -178,6 +180,7 @@ 17 | "The filesystem seems to have been" 18 | " multiply mounted."); 19 | ext4_error(sb, "abort"); 20 | + put_bh(bh_check); 21 | goto failed; 22 | } 23 | put_bh(bh_check); 24 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/sles12/ext4-remove-truncate-warning.patch: -------------------------------------------------------------------------------- 1 | There will cause a deadlock if invoke ext4_truncate with i_mutex locked 2 | in lustre. Since lustre has own lock to provide protect so we don't 3 | need this check at all. 4 | 5 | Index: linux-3.10.0-229.1.2.fc21.x86_64/fs/ext4/inode.c 6 | =================================================================== 7 | --- linux-3.10.0-229.1.2.fc21.x86_64.orig/fs/ext4/inode.c 8 | +++ linux-3.10.0-229.1.2.fc21.x86_64/fs/ext4/inode.c 9 | @@ -3644,8 +3644,6 @@ void ext4_truncate(struct inode *inode) 10 | * or it completely new indode. In those cases we might not 11 | * have i_mutex locked because it's not necessary. 12 | */ 13 | - if (!(inode->i_state & (I_NEW|I_FREEING))) 14 | - WARN_ON(!mutex_is_locked(&inode->i_mutex)); 15 | trace_ext4_truncate_enter(inode); 16 | 17 | if (!ext4_can_truncate(inode)) 18 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/sles12sp2/ext4-mmp-brelse.patch: -------------------------------------------------------------------------------- 1 | --- linux-stage.orig/fs/ext4/mmp.c 2015-10-06 08:21:12.013939184 +0530 2 | +++ linux-stage/fs/ext4/mmp.c 2015-10-06 08:20:35.242939292 +0530 3 | @@ -99,6 +99,8 @@ static int read_mmp_block(struct super_b 4 | return 0; 5 | 6 | warn_exit: 7 | + brelse(*bh); 8 | + *bh = NULL; 9 | ext4_warning(sb, "Error %d while reading MMP block %llu", 10 | ret, mmp_block); 11 | return ret; 12 | @@ -219,6 +221,7 @@ static int kmmpd(void *data) 13 | "The filesystem seems to have been" 14 | " multiply mounted."); 15 | ext4_error(sb, "abort"); 16 | + put_bh(bh_check); 17 | goto failed; 18 | } 19 | put_bh(bh_check); 20 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/sles12sp2/ext4-print-inum-in-htree-warning.patch: -------------------------------------------------------------------------------- 1 | Index: linux-stage/fs/ext4/namei.c 2 | =================================================================== 3 | --- linux-stage.orig/fs/ext4/namei.c 4 | +++ linux-stage/fs/ext4/namei.c 5 | @@ -371,6 +371,6 @@ dx_probe(const struct qstr *d_name, stru 6 | if (root->info.hash_version != DX_HASH_TEA && 7 | root->info.hash_version != DX_HASH_HALF_MD4 && 8 | root->info.hash_version != DX_HASH_LEGACY) { 9 | - ext4_warning_inode(dir, "Unrecognised inode hash code %u", 10 | - root->info.hash_version); 11 | + ext4_warning_inode(dir, "Unrecognised inode hash code %u for directory " 12 | + "%lu", root->info.hash_version, dir->i_ino); 13 | goto fail; 14 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/ubuntu18/ext4-jcb-optimization.patch: -------------------------------------------------------------------------------- 1 | Change list_add_tail to list_add. It gives advantages to ldiskfs 2 | in tgt_cb_last_committed. In the beginning of list will be placed 3 | thandles with the highest transaction numbers. So at the first 4 | iterations we will have the highest transno. It will save from 5 | extra call of ptlrpc_commit_replies. 6 | 7 | Index: linux-4.15.0/fs/ext4/ext4_jbd2.h 8 | =================================================================== 9 | --- linux-4.15.0.orig/fs/ext4/ext4_jbd2.h 10 | +++ linux-4.15.0/fs/ext4/ext4_jbd2.h 11 | @@ -172,7 +172,7 @@ static inline void _ext4_journal_callbac 12 | struct ext4_journal_cb_entry *jce) 13 | { 14 | /* Add the jce to transaction's private list */ 15 | - list_add_tail(&jce->jce_list, &handle->h_transaction->t_private_list); 16 | + list_add(&jce->jce_list, &handle->h_transaction->t_private_list); 17 | } 18 | 19 | static inline void ext4_journal_callback_add(handle_t *handle, 20 | -------------------------------------------------------------------------------- /ldiskfs/kernel_patches/patches/ubuntu18/ext4-nocmtime.patch: -------------------------------------------------------------------------------- 1 | We won't change i_xtime in ldiskfs code path. But also 2 | need keep normal function out of Lustre. So we using 3 | S_NOCMTIME to indicate invoked from Lustre. 4 | 5 | Index: linux-4.15.0/fs/ext4/ext4.h 6 | =================================================================== 7 | --- linux-4.15.0.orig/fs/ext4/ext4.h 8 | +++ linux-4.15.0/fs/ext4/ext4.h 9 | @@ -655,6 +655,20 @@ enum { 10 | #define EXT4_GOING_FLAGS_LOGFLUSH 0x1 /* flush log but not data */ 11 | #define EXT4_GOING_FLAGS_NOLOGFLUSH 0x2 /* don't flush log nor data */ 12 | 13 | +#define current_time(a) ext4_current_time(a) 14 | +static inline struct timespec ext4_current_time(struct inode *inode) 15 | +{ 16 | + struct timespec now = current_kernel_time(); 17 | + 18 | + if (IS_NOCMTIME(inode)) 19 | + return inode->i_ctime; 20 | + 21 | + /* Copy from fs/inode.c */ 22 | + if (unlikely(!inode->i_sb)) 23 | + return now; 24 | + 25 | + return timespec_trunc(now, inode->i_sb->s_time_gran); 26 | +} 27 | 28 | #if defined(__KERNEL__) && defined(CONFIG_COMPAT) 29 | /* 30 | -------------------------------------------------------------------------------- /libcfs/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/libcfs/.empty -------------------------------------------------------------------------------- /libcfs/.gitignore: -------------------------------------------------------------------------------- 1 | /aclocal.m4 2 | /autom4te.cache 3 | -------------------------------------------------------------------------------- /libcfs/ChangeLog: -------------------------------------------------------------------------------- 1 | tbd Sun Microsystems, Inc. 2 | * version 2.0.0 3 | 4 | Severity : enhancement 5 | Bugzilla : 19856 6 | Description: Add LustreNetLink, a kernel-userspace communcation path. Add 7 | ulinux dir for Linux userspace tools. 8 | 9 | Severity : normal 10 | Bugzilla : 20878 11 | Description: Replace LustreNetLink with kernel_user_comm based on pipes 12 | 13 | ------------------------------------------------------------------------------- 14 | 15 | 2008-07-15 Sun Microsystems, Inc. 16 | * version 1.8.0 17 | 18 | new libcfs module 19 | -------------------------------------------------------------------------------- /libcfs/Makefile.in: -------------------------------------------------------------------------------- 1 | subdir-m += libcfs 2 | 3 | @INCLUDE_RULES@ 4 | -------------------------------------------------------------------------------- /libcfs/autoconf/.empty/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/libcfs/autoconf/.empty/.empty -------------------------------------------------------------------------------- /libcfs/autoconf/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /libcfs/autoconf/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = lustre-libcfs.m4 2 | -------------------------------------------------------------------------------- /libcfs/include/.gitignore: -------------------------------------------------------------------------------- 1 | /config.h 2 | /stamp-h 3 | /stamp-h1 4 | /stamp-h.in 5 | /Makefile.in 6 | -------------------------------------------------------------------------------- /libcfs/include/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = libcfs 2 | -------------------------------------------------------------------------------- /libcfs/include/libcfs/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /libcfs/include/libcfs/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = linux util 2 | DIST_SUBDIRS = linux util 3 | 4 | libcfsdir = $(includedir)/libcfs 5 | 6 | EXTRA_DIST = \ 7 | bitmap.h \ 8 | curproc.h \ 9 | libcfs.h \ 10 | libcfs_cpu.h \ 11 | libcfs_crypto.h \ 12 | libcfs_debug.h \ 13 | libcfs_fail.h \ 14 | libcfs_hash.h \ 15 | libcfs_heap.h \ 16 | libcfs_prim.h \ 17 | libcfs_private.h \ 18 | libcfs_string.h \ 19 | libcfs_workitem.h 20 | -------------------------------------------------------------------------------- /libcfs/include/libcfs/linux/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /libcfs/include/libcfs/linux/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = linux-misc.h linux-fs.h linux-mem.h linux-time.h linux-cpu.h \ 2 | linux-list.h linux-hash.h linux-crypto.h linux-wait.h 3 | -------------------------------------------------------------------------------- /libcfs/include/libcfs/util/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /libcfs/include/libcfs/util/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = ioctl.h parser.h param.h list.h string.h hash.h 2 | -------------------------------------------------------------------------------- /libcfs/libcfs/.gitignore: -------------------------------------------------------------------------------- 1 | /link-stamp 2 | -------------------------------------------------------------------------------- /libcfs/libcfs/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES = libcfs 2 | 3 | libcfs-linux-objs := linux-tracefile.o linux-debug.o 4 | libcfs-linux-objs += linux-prim.o 5 | libcfs-linux-objs += linux-curproc.o 6 | libcfs-linux-objs += linux-hash.o 7 | libcfs-linux-objs += linux-module.o 8 | libcfs-linux-objs += linux-crypto.o linux-crypto-adler.o 9 | libcfs-linux-objs += linux-wait.o 10 | @HAVE_CRC32_TRUE@libcfs-linux-objs += linux-crypto-crc32.o 11 | @HAVE_PCLMULQDQ_TRUE@@NEED_PCLMULQDQ_CRC32_TRUE@libcfs-linux-objs += linux-crypto-crc32pclmul.o crc32-pclmul_asm.o 12 | @HAVE_PCLMULQDQ_TRUE@@NEED_PCLMULQDQ_CRC32C_TRUE@libcfs-linux-objs += linux-crypto-crc32c-pclmul.o crc32c-pcl-intel-asm_64.o 13 | 14 | default: all 15 | 16 | libcfs-linux-objs := $(addprefix linux/,$(libcfs-linux-objs)) 17 | 18 | libcfs-all-objs := debug.o fail.o module.o tracefile.o watchdog.o \ 19 | libcfs_string.o hash.o \ 20 | prng.o workitem.o libcfs_cpu.o \ 21 | libcfs_mem.o libcfs_lock.o heap.o 22 | 23 | libcfs-objs := $(libcfs-linux-objs) $(libcfs-all-objs) 24 | 25 | EXTRA_PRE_CFLAGS := -I@LUSTRE@/../libcfs/libcfs 26 | 27 | @INCLUDE_RULES@ 28 | -------------------------------------------------------------------------------- /libcfs/libcfs/linux/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /libcfs/libcfs/linux/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = linux-debug.c linux-prim.c linux-tracefile.c \ 2 | linux-curproc.c linux-module.c linux-hash.c linux-wait.c\ 3 | linux-crypto.c linux-crypto-crc32.c linux-crypto-adler.c\ 4 | linux-crypto-crc32pclmul.c linux-crypto-crc32c-pclmul.c \ 5 | crc32-pclmul_asm.S crc32c-pcl-intel-asm_64.S inst.h 6 | -------------------------------------------------------------------------------- /libcfs/libcfs/util/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /libcfs/libcfs/util/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = \ 2 | l_ioctl.c \ 3 | nidstrings.c \ 4 | param.c \ 5 | parser.c \ 6 | string.c 7 | -------------------------------------------------------------------------------- /lnet/.gitignore: -------------------------------------------------------------------------------- 1 | /aclocal.m4 2 | /autom4te.cache 3 | -------------------------------------------------------------------------------- /lnet/Makefile.in: -------------------------------------------------------------------------------- 1 | 2 | lnet-subdirs += lnet 3 | lnet-subdirs += klnds 4 | lnet-subdirs += selftest 5 | subdir-m += $(lnet-subdirs) 6 | 7 | @INCLUDE_RULES@ 8 | -------------------------------------------------------------------------------- /lnet/autoconf/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lnet/autoconf/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = lustre-lnet.m4 2 | -------------------------------------------------------------------------------- /lnet/doc/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | /*.eps 3 | /*.pdf 4 | -------------------------------------------------------------------------------- /lnet/doc/get.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 2 | Landscape 3 | Center 4 | Inches 5 | Letter 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 6 2775 900 3525 1200 11 | 4 0 0 100 0 0 10 0.0000 0 105 720 2775 1200 Translation\001 12 | 4 0 0 100 0 0 10 0.0000 0 105 405 2850 1050 Portal\001 13 | -6 14 | 6 1350 1725 2175 2025 15 | 4 0 0 100 0 0 10 0.0000 0 105 825 1350 2025 Transmission\001 16 | 4 0 0 100 0 0 10 0.0000 0 105 285 1620 1875 Data\001 17 | -6 18 | 2 1 0 1 0 7 100 0 -1 4.000 0 0 -1 1 0 2 19 | 0 0 1.00 60.00 120.00 20 | 900 525 2700 750 21 | 2 1 0 1 0 7 100 0 -1 4.000 0 0 -1 1 0 2 22 | 0 0 1.00 60.00 120.00 23 | 2700 825 2700 1275 24 | 2 1 0 1 0 7 100 0 -1 3.000 0 0 7 1 0 2 25 | 0 0 1.00 60.00 120.00 26 | 2700 1350 900 1950 27 | 2 2 0 1 0 7 100 0 -1 4.000 0 0 7 0 0 5 28 | 2400 300 3600 300 3600 2250 2400 2250 2400 300 29 | 2 2 0 1 0 7 100 0 -1 4.000 0 0 7 0 0 5 30 | 0 300 1200 300 1200 2250 0 2250 0 300 31 | 4 1 0 100 0 0 10 0.0000 4 135 495 1800 825 Request\001 32 | 4 1 0 100 0 0 10 0.0000 0 105 540 600 525 Initiator\001 33 | 4 1 0 100 0 0 10 0.0000 0 135 405 3000 525 Target\001 34 | -------------------------------------------------------------------------------- /lnet/include/.gitignore: -------------------------------------------------------------------------------- 1 | /config.h 2 | /stamp-h 3 | /stamp-h1 4 | /stamp-h.in 5 | /Makefile.in 6 | -------------------------------------------------------------------------------- /lnet/include/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = lnet uapi/linux/lnet 2 | -------------------------------------------------------------------------------- /lnet/include/lnet/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lnet/include/lnet/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = \ 2 | api.h \ 3 | lib-lnet.h \ 4 | lib-types.h \ 5 | socklnd.h 6 | -------------------------------------------------------------------------------- /lnet/include/uapi/linux/lnet/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lnet/klnds/Makefile.in: -------------------------------------------------------------------------------- 1 | @BUILD_GNILND_TRUE@subdir-m += gnilnd 2 | @BUILD_O2IBLND_TRUE@subdir-m += o2iblnd 3 | subdir-m += socklnd 4 | 5 | @INCLUDE_RULES@ 6 | -------------------------------------------------------------------------------- /lnet/klnds/gnilnd/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := kgnilnd 2 | kgnilnd-objs := gnilnd.o gnilnd_cb.o gnilnd_modparams.o gnilnd_debug.o gnilnd_proc.o \ 3 | gnilnd_sysctl.o gnilnd_stack.o gnilnd_conn.o 4 | 5 | EXTRA_POST_CFLAGS := -D"SVN_CODE_REV=KBUILD_STR(${SVN_CODE_REV})" @GNICPPFLAGS@ 6 | 7 | EXTRA_DIST = $(kgnilnd-objs:%.o=%.c) gnilnd.h gnilnd_api_wrap.h 8 | 9 | @INCLUDE_RULES@ 10 | -------------------------------------------------------------------------------- /lnet/klnds/gnilnd/autoMakefile.am: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2009 Cray, Inc. 2 | # 3 | # This code is issued under the GNU General Public License. 4 | # See the file COPYING in this distribution 5 | 6 | if MODULES 7 | if BUILD_GNILND 8 | modulenet_DATA = kgnilnd$(KMODEXT) 9 | endif 10 | endif 11 | 12 | MOSTLYCLEANFILES = @MOSTLYCLEANFILES@ 13 | -------------------------------------------------------------------------------- /lnet/klnds/o2iblnd/.gitignore: -------------------------------------------------------------------------------- 1 | /wirecheck 2 | -------------------------------------------------------------------------------- /lnet/klnds/o2iblnd/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := ko2iblnd 2 | ko2iblnd-objs := o2iblnd.o o2iblnd_cb.o o2iblnd_modparams.o 3 | 4 | # Need to make sure that an external OFED source pool overrides 5 | # any in-kernel OFED sources 6 | NOSTDINC_FLAGS += @EXTRA_OFED_CONFIG@ @EXTRA_OFED_INCLUDE@ 7 | 8 | @INCLUDE_RULES@ 9 | -------------------------------------------------------------------------------- /lnet/klnds/socklnd/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := ksocklnd 2 | 3 | ksocklnd-objs := \ 4 | socklnd.o \ 5 | socklnd_cb.o \ 6 | socklnd_lib.o \ 7 | socklnd_modparams.o \ 8 | socklnd_proto.o 9 | 10 | @INCLUDE_RULES@ 11 | -------------------------------------------------------------------------------- /lnet/klnds/socklnd/autoMakefile.am: -------------------------------------------------------------------------------- 1 | if MODULES 2 | modulenet_DATA := ksocklnd$(KMODEXT) 3 | endif # MODULES 4 | 5 | EXTRA_DIST := $(ksocklnd-objs:%.o=%.c) socklnd.h 6 | 7 | MOSTLYCLEANFILES = @MOSTLYCLEANFILES@ 8 | -------------------------------------------------------------------------------- /lnet/lnet/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := lnet 2 | 3 | lnet-objs := api-ni.o config.o nidstrings.o 4 | lnet-objs += lib-me.o lib-msg.o lib-eq.o lib-md.o lib-ptl.o 5 | lnet-objs += lib-socket.o lib-move.o module.o lo.o 6 | lnet-objs += router.o router_proc.o acceptor.o peer.o net_fault.o 7 | 8 | default: all 9 | 10 | @INCLUDE_RULES@ 11 | -------------------------------------------------------------------------------- /lnet/lnet/autoMakefile.am: -------------------------------------------------------------------------------- 1 | if MODULES 2 | 3 | if LINUX 4 | modulenet_DATA = lnet$(KMODEXT) 5 | endif # LINUX 6 | 7 | endif # MODULES 8 | 9 | EXTRA_DIST := $(lnet-objs:%.o=%.c) 10 | 11 | MOSTLYCLEANFILES = @MOSTLYCLEANFILES@ lnet 12 | -------------------------------------------------------------------------------- /lnet/selftest/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := lnet_selftest 2 | 3 | lnet_selftest-objs := console.o conrpc.o conctl.o framework.o timer.o rpc.o \ 4 | module.o ping_test.o brw_test.o 5 | 6 | default: all 7 | 8 | @INCLUDE_RULES@ 9 | -------------------------------------------------------------------------------- /lnet/selftest/autoMakefile.am: -------------------------------------------------------------------------------- 1 | if MODULES 2 | 3 | if LINUX 4 | modulenet_DATA = lnet_selftest$(KMODEXT) 5 | endif # LINUX 6 | 7 | endif # MODULES 8 | 9 | EXTRA_DIST := $(lnet_selftest-objs:%.o=%.c) 10 | EXTRA_DIST += console.h conrpc.h rpc.h selftest.h timer.h 11 | 12 | MOSTLYCLEANFILES = @MOSTLYCLEANFILES@ selftest 13 | -------------------------------------------------------------------------------- /lnet/utils/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | /routerstat 3 | /wirecheck 4 | /lnetctl 5 | /lst 6 | -------------------------------------------------------------------------------- /lnet/utils/lbstats: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "=== Router Buffers =======" 4 | lctl get_param -n buffers 2> /dev/null 5 | echo 6 | 7 | echo "=== NIs ============================================" 8 | lctl get_param -n nis 2> /dev/null 9 | echo 10 | 11 | echo "=== Peers =============================================================" 12 | lctl get_param -n peers 2> /dev/null 13 | echo 14 | -------------------------------------------------------------------------------- /lnet/utils/lnetconfig/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lnet/utils/lnetunload: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | lnds=$(echo k{sock,qsw,{open,i,v,o2,c}ib,ra,ptl,mx}lnd) 4 | 5 | do_rmmod() { 6 | mod=$1 7 | if grep "^$mod" /proc/modules >/dev/null 2>&1; then 8 | rmmod $mod 9 | fi 10 | } 11 | 12 | do_rmmod lnet_selftest 13 | 14 | if lctl network down > /dev/null 2>&1; then 15 | for mod in $lnds; do do_rmmod $mod; done 16 | 17 | rmmod lnet 18 | rmmod libcfs 19 | fi 20 | -------------------------------------------------------------------------------- /lustre-iokit/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | /aclocal.m4 3 | /autom4te.cache 4 | /COPYING 5 | /INSTALL 6 | /install-sh 7 | /lustre-iokit.spec 8 | /lustre-iokit*.tar.gz 9 | /missing 10 | /mkinstalldirs 11 | /modules.order 12 | -------------------------------------------------------------------------------- /lustre-iokit/AUTHORS: -------------------------------------------------------------------------------- 1 | Phil Schwan 2 | Eric Barton 3 | Jody McIntyre 4 | Michael MacDonald 5 | Cliff White 6 | -------------------------------------------------------------------------------- /lustre-iokit/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = obdfilter-survey sgpdd-survey ost-survey ior-survey 2 | SUBDIRS += mds-survey stats-collect 3 | -------------------------------------------------------------------------------- /lustre-iokit/NEWS: -------------------------------------------------------------------------------- 1 | 2006-10-31 - Moved to autoconf 2 | -------------------------------------------------------------------------------- /lustre-iokit/README: -------------------------------------------------------------------------------- 1 | This bundle includes four tools: 2 | In order of preference: 3 | 4 | sgpdd-survey: - a test of the 'bare metal' performance, bypassing 5 | as much of the kernel as we can. Does not require Lustre, does 6 | require the sgp_dd package. WILL ERASE ALL DATA ON DEVICE. 7 | 8 | obdfilter-survey: 9 | Shell script - tests performance of isolated OSTS, network 10 | via echo clients, end-to-end test. 11 | 12 | obdsurvey: - a test of Lustre performance with three modes: 13 | Maintained by Scali, included here as an extra. 14 | Requires Python > 2.2 15 | Requires Lustre 16 | 17 | - local disk test - requires one OST 18 | - network performance test - requires two Lustre machines 19 | - network + disk test - requires Lustre filesystem and client 20 | 21 | ior-survey: 22 | A script to run the IOR benchmark. Version 2.8.6 of IOR is included 23 | 24 | ost-survey: 25 | This is OST performance survey, designed to test the client-to-disk 26 | performance of the individual OSTs in a Lustre filesystem. 27 | -------------------------------------------------------------------------------- /lustre-iokit/ior-survey/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lustre-iokit/ior-survey/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_SCRIPTS = ior-survey iokit-parse-ior 2 | CLEANFILE = $(bin_SCRIPTS) 3 | EXTRA_DIST = README.ior-survey ior-survey iokit-parse-ior 4 | -------------------------------------------------------------------------------- /lustre-iokit/mds-survey/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lustre-iokit/mds-survey/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_SCRIPTS = mds-survey 2 | CLEANFILE = $(bin_SCRIPTS) 3 | EXTRA_DIST = mds-survey README.mds-survey 4 | -------------------------------------------------------------------------------- /lustre-iokit/obdfilter-survey/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lustre-iokit/obdfilter-survey/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_SCRIPTS = obdfilter-survey iokit-libecho iokit-plot-obdfilter 2 | CLEANFILE = $(bin_SCRIPTS) 3 | EXTRA_DIST = README.obdfilter-survey obdfilter-survey iokit-libecho 4 | EXTRA_DIST += iokit-plot-obdfilter 5 | -------------------------------------------------------------------------------- /lustre-iokit/ost-survey/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lustre-iokit/ost-survey/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_SCRIPTS = ost-survey iokit-plot-ost 2 | CLEANFILE = $(bin_SCRIPTS) 3 | EXTRA_DIST = README.ost-survey ost-survey iokit-plot-ost 4 | -------------------------------------------------------------------------------- /lustre-iokit/ost-survey/README.ost-survey: -------------------------------------------------------------------------------- 1 | ost-survey (OST performance survey) 2 | =================================== 3 | This script is designed to test the client-to-disk performance 4 | of the individual OSTs in a Lustre filesystem. The network transfer 5 | time from the client is included; to get a better idea of the isolated 6 | disk perfomance, run this script on a client running on the OST. 7 | 8 | Syntax: 9 | $ ost-survey [-h] [-s ] 10 | where -s : size in MB 11 | -h : help 12 | : mount point of lustre client 13 | 14 | Assumptions 15 | - Lustre filesystem is up and running 16 | - Script is being run on a client 17 | 18 | 19 | iokit-plot-ost (OST survey graph) 20 | =========================== 21 | The iokit-plot-ost script can be used to plot the results from the 22 | ost-survey script using gnuplot. 23 | 24 | Syntax: $ ost-survey /mnt/lustre > ost_log 25 | $ iokit-plot-ost ost_log 26 | 27 | -------------------------------------------------------------------------------- /lustre-iokit/sgpdd-survey/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lustre-iokit/sgpdd-survey/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_SCRIPTS = iokit-plot-sgpdd sgpdd-survey 2 | CLEANFILE = $(bin_SCRIPTS) 3 | EXTRA_DIST = README.sgpdd-survey iokit-plot-sgpdd sgpdd-survey 4 | -------------------------------------------------------------------------------- /lustre-iokit/stats-collect/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lustre-iokit/stats-collect/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_SCRIPTS = iokit-config iokit-gather-stats iokit-lstats 2 | CLEANFILE = $(bin_SCRIPTS) 3 | EXTRA_DIST = README.iokit-lstats iokit-config iokit-gather-stats iokit-lstats 4 | -------------------------------------------------------------------------------- /lustre/.gitignore: -------------------------------------------------------------------------------- 1 | /.Xrefs-2.5 2 | /aclocal.m4 3 | /config.cache 4 | /config.guess 5 | /config.sub 6 | /lustre*.tar.gz 7 | /cscope.files 8 | /cscope.out 9 | /autom4te-2.53.cache 10 | /autom4te.cache 11 | /depcomp 12 | /compile 13 | /.mergeinfo-* 14 | /Rules 15 | /missing 16 | /mkinstalldirs 17 | /install-sh 18 | /tmpdiff 19 | -------------------------------------------------------------------------------- /lustre/BUGS: -------------------------------------------------------------------------------- 1 | To report bugs, please visit https://jira.whamcloud.com/ 2 | -------------------------------------------------------------------------------- /lustre/BUILDING: -------------------------------------------------------------------------------- 1 | BUILDING LUSTRE 2 | --------------- 3 | 4 | You must already have a Lustre-patched kernel, which is outside of the 5 | scope of this document. For more information on this process, see the 6 | web sites below. Also consider downloading a pre-packaged Lustre 7 | kernel and utilities from https://downloads.whamcloud.com/ 8 | 9 | To build: 10 | sh autogen.sh 11 | ./configure --with-linux=/usr/src/lustre_patched_kernel_tree 12 | make 13 | 14 | To play with Lustre: 15 | cd tests 16 | sh llmount.sh 17 | 18 | To clean up: 19 | sh llmountcleanup.sh 20 | 21 | More information about Lustre: 22 | http://www.lustre.org/ 23 | 24 | Feedback: 25 | lustre-discuss@lists.lustre.org 26 | 27 | - The Lustre Team - 28 | -------------------------------------------------------------------------------- /lustre/Makefile.in: -------------------------------------------------------------------------------- 1 | subdir-m += fid 2 | subdir-m += obdclass 3 | subdir-m += ptlrpc 4 | subdir-m += obdecho 5 | subdir-m += mgc 6 | subdir-m += tests/kernel 7 | 8 | @SERVER_TRUE@subdir-m += ost mgs mdt mdd ofd quota osp lod lfsck 9 | @CLIENT_TRUE@subdir-m += lov osc mdc lmv llite fld 10 | @LDISKFS_ENABLED_TRUE@subdir-m += osd-ldiskfs 11 | @ZFS_ENABLED_TRUE@subdir-m += osd-zfs 12 | @OSDADDON@ 13 | 14 | @INCLUDE_RULES@ 15 | -------------------------------------------------------------------------------- /lustre/autoconf/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lustre/autoconf/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = lustre-core.m4 kerberos5.m4 2 | -------------------------------------------------------------------------------- /lustre/conf/.gitignore: -------------------------------------------------------------------------------- 1 | Makefile.in 2 | -------------------------------------------------------------------------------- /lustre/conf/99-lustre-server.rules: -------------------------------------------------------------------------------- 1 | # Ensure block devices re-added to the system allow for large writes (LU-9551) 2 | # Currently applies only to ldiskfs-formatted devices 3 | ACTION!="add|change", GOTO="l_tunedisk_end" 4 | SUBSYSTEM!="block", GOTO="l_tunedisk_end" 5 | ENV{ID_FS_TYPE}!="ext4", GOTO="l_tunedisk_end" 6 | 7 | ENV{ID_FS_LABEL}=="MGS|*-MDT*|*-OST*", RUN+="/usr/sbin/l_tunedisk /dev/%k" 8 | 9 | LABEL="l_tunedisk_end" 10 | -------------------------------------------------------------------------------- /lustre/conf/99-lustre.rules: -------------------------------------------------------------------------------- 1 | KERNEL=="obd", MODE="0666" 2 | 3 | # set sysfs values on client 4 | SUBSYSTEM=="lustre", ACTION=="change", ENV{PARAM}=="?*", RUN+="/usr/sbin/lctl set_param '$env{PARAM}=$env{SETTING}'" 5 | -------------------------------------------------------------------------------- /lustre/conf/ko2iblnd.conf: -------------------------------------------------------------------------------- 1 | # Currently it isn't possible to auto-tune the o2iblnd parameters optimally 2 | # inside the kernel since the OFED API hides the details from us. 3 | # Unfortunately, there isn't a single set of parameters that provide optimal 4 | # performance on different HCA/HFI types. This file provides optimized 5 | # tunables for the OPA cards. 6 | # 7 | # ** Please note that the below settings are the recommended settings only for 8 | # OPA cards. If other IB cards are also present along with OPA cards then 9 | # these settings will be applied across all the configured IB interfaces. 10 | # 11 | # Card detection and tunable selection is handled via /usr/sbin/ko2iblnd-probe 12 | # at runtime when the ko2iblnd module is installed, either at boot or when 13 | # Lustre is first mounted. 14 | 15 | alias ko2iblnd-opa ko2iblnd 16 | options ko2iblnd-opa peer_credits=32 peer_credits_hiw=16 credits=1024 concurrent_sends=64 ntx=2048 map_on_demand=256 fmr_pool_size=2048 fmr_flush_trigger=512 fmr_cache=1 conns_per_peer=4 17 | 18 | install ko2iblnd /usr/sbin/ko2iblnd-probe 19 | -------------------------------------------------------------------------------- /lustre/conf/ldev.conf: -------------------------------------------------------------------------------- 1 | # example /etc/ldev.conf 2 | # 3 | #local foreign/- label [md|zfs:]device-path [journal-path]/- [raidtab] 4 | # 5 | #zeno-mds1 - zeno-MDT0000 zfs:lustre-zeno-mds1/mdt1 6 | # 7 | #zeno1 zeno5 zeno-OST0000 zfs:lustre-zeno1/ost1 8 | #zeno2 zeno6 zeno-OST0001 zfs:lustre-zeno2/ost1 9 | #zeno3 zeno7 zeno-OST0002 zfs:lustre-zeno3/ost1 10 | #zeno4 zeno8 zeno-OST0003 zfs:lustre-zeno4/ost1 11 | #zeno5 zeno1 zeno-OST0004 zfs:lustre-zeno5/ost1 12 | #zeno6 zeno2 zeno-OST0005 zfs:lustre-zeno6/ost1 13 | #zeno7 zeno3 zeno-OST0006 zfs:lustre-zeno7/ost1 14 | #zeno8 zeno4 zeno-OST0007 zfs:lustre-zeno8/ost1 15 | -------------------------------------------------------------------------------- /lustre/conf/lgssc.conf: -------------------------------------------------------------------------------- 1 | create lgssc * * /usr/sbin/lgss_keyring %o %k %t %d %c %u %g %T %P %S 2 | -------------------------------------------------------------------------------- /lustre/conf/lnet_routes.conf: -------------------------------------------------------------------------------- 1 | # lnet_routes.conf - configuration file for lnet routes 2 | # 3 | # The routes should be in the following format: 4 | # : { gateway: @ [hop: ] [priority: ] } 5 | # 6 | # Examples: 7 | # tcp1: { gateway: 10.1.1.2@tcp0, priority: 3 } 8 | # tcp4: { gateway: 10.3.3.4@tcp } 9 | # tcp6: { gateway: 10.3.3.6@tcp, hop: 2, priority: 5 } 10 | # tcp7: { gateway: 10.3.3.[6-12]@tcp, priority: 20, hop: 8 } 11 | -------------------------------------------------------------------------------- /lustre/conf/lsvcgss: -------------------------------------------------------------------------------- 1 | # Optional arguments passed to lsvcgssd. 2 | LSVCGSSDARGS='' 3 | -------------------------------------------------------------------------------- /lustre/conf/modules.conf: -------------------------------------------------------------------------------- 1 | # sample modules.conf for autoloading lustre modules on zeroconf clients 2 | 3 | add below kptlrouter portals 4 | #add below ksocknal kptlrouter 5 | #add below kqswnal kptlrouter 6 | add below ptlrpc ksocknal 7 | add below llite lov osc 8 | alias lustre llite 9 | -------------------------------------------------------------------------------- /lustre/conf/top.ldif: -------------------------------------------------------------------------------- 1 | dn: fs=lustre 2 | fs:lustre 3 | objectClass: lustre 4 | lustreDesc: Lustre Config 5 | -------------------------------------------------------------------------------- /lustre/contrib/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lustre/contrib/Makefile.am: -------------------------------------------------------------------------------- 1 | # Contributions Makefile 2 | 3 | EXTRA_DIST = 4 | pkgdata_DATA = $(EXTRA_DIST) 5 | -------------------------------------------------------------------------------- /lustre/doc/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | /OBD-HOWTO.html 3 | /OBD-HOWTO.txt 4 | /lustre-HOWTO.lyx 5 | /lustre-HOWTO.txt 6 | /lustre-pdf.bbl 7 | /lustre-pdf.blg 8 | /lustre-pdf.log 9 | /lustre-pdf.out 10 | /lustre-pdf.toc 11 | /*.3 12 | /*.7 13 | /*.eps 14 | /lustre.lyx 15 | /*.tex 16 | /*.pdf 17 | /*.aux 18 | -------------------------------------------------------------------------------- /lustre/doc/lctl-llog_catlist.8: -------------------------------------------------------------------------------- 1 | .TH lctl-llog_catlist 8 "2017 Feb 24" Lustre "configuration utilities" 2 | .SH NAME 3 | lctl llog_catlist \- list Lustre configuration log files 4 | .SH SYNOPSIS 5 | .B lctl llog_catlist 6 | 7 | .SH DESCRIPTION 8 | .B lctl llog_catlist 9 | is used to list the configuration log files on the MGS, or other target. 10 | This is useful to find the names of all the configuration files available. 11 | .SH EXAMPLES 12 | .TP 13 | To list all of the records on the MGS: 14 | .br 15 | # lctl --device MGS llog_catlist 16 | .br 17 | config_log: testfs-OST0000 18 | .br 19 | config_log: testfs-MDT0000 20 | .br 21 | config_log: testfs-client 22 | .br 23 | config_log: params-client 24 | .br 25 | config_log: testfs-OST0001 26 | .SH AVAILABILITY 27 | .B lctl llog_catlist 28 | is a subcommand of 29 | .BR lctl (8) 30 | and is distributed as part of the 31 | .BR lustre (7) 32 | filesystem package. 33 | .SH SEE ALSO 34 | .BR lctl (8) 35 | .BR lctl-llog_info (8) 36 | .BR lctl-llog_print (8) 37 | -------------------------------------------------------------------------------- /lustre/doc/lctl-llog_info.8: -------------------------------------------------------------------------------- 1 | .TH lctl-llog_info 8 "2017 Feb 24" Lustre "configuration utilities" 2 | .SH NAME 3 | lctl llog_info \- print information about a Lustre configuration log 4 | .SH SYNOPSIS 5 | .B lctl llog_info 6 | .RI < logname > 7 | 8 | .SH DESCRIPTION 9 | .B lctl llog_info 10 | is used to print information about the configuration log given by 11 | .IR logname . 12 | .SH OPTIONS 13 | .B logname 14 | The name of the configuration log, in the form 15 | .IR fsname - target , 16 | like 17 | .B testfs-client 18 | or 19 | .BR lustrefs-MDT0000 . 20 | .SH EXAMPLES 21 | .TP 22 | To print all of the records from the testfs-client configuration log: 23 | .br 24 | # lctl --device MGS llog_info testfs-client 25 | .br 26 | logid: [0x4:0xa:0x0]:0 27 | flags: 4 (plain) 28 | records_count: 48 29 | last_index: 47 30 | .SH AVAILABILITY 31 | .B lctl llog_info 32 | is a subcommand of 33 | .BR lctl (8) 34 | and is distributed as part of the 35 | .BR lustre (7) 36 | filesystem package. 37 | .SH SEE ALSO 38 | .BR lctl (8) 39 | .BR lctl-llog_catlist (8) 40 | .BR lctl-llog_print (8) 41 | -------------------------------------------------------------------------------- /lustre/doc/lctl-nodemap-activate.8: -------------------------------------------------------------------------------- 1 | .TH lctl-nodemap-activate 8 "2015 Jan 20" Lustre "configuration utilities" 2 | .SH NAME 3 | lctl-nodemap-activate \- Activate or deactivate the nodemap feature. 4 | .SH SYNOPSIS 5 | .br 6 | .B lctl nodemap_activate "<0|1>" 7 | .br 8 | .SH DESCRIPTION 9 | .B nodemap_activate 10 | is used to activate or deactivate the nodemap feature. When nodemap is 11 | active, all client operations are mapped based on rules created by the 12 | administrator. 13 | 14 | .SH OPTIONS 15 | Passing 0 disables the nodemap feature, while 1 activates the feature. 16 | 17 | .SH EXAMPLES 18 | .nf 19 | # lctl nodemap_activate 1 20 | .fi 21 | 22 | .SH AVAILABILITY 23 | .B lctl 24 | is part of the 25 | .BR Lustre (7) 26 | filesystem package. 27 | .SH SEE ALSO 28 | .BR lustre (7), 29 | .BR lctl-nodemap-add (8), 30 | .BR lctl-nodemap-del (8), 31 | .BR lctl-nodemap-add-range (8), 32 | .BR lctl-nodemap-del-range (8), 33 | .BR lctl-nodemap-add-idmap (8), 34 | .BR lctl-nodemap-del-idmap (8), 35 | .BR lctl-nodemap-modify (8) 36 | -------------------------------------------------------------------------------- /lustre/doc/lctl-nodemap-add.8: -------------------------------------------------------------------------------- 1 | .TH lctl-nodemap-add 8 "2015 Jan 20" Lustre "configuration utilities" 2 | .SH NAME 3 | lctl-nodemap-add \- Add a new nodemap, to which NID ranges, identities, and 4 | properties can be added. 5 | 6 | .SH SYNOPSIS 7 | .br 8 | .B lctl nodemap_add 9 | .br 10 | .SH DESCRIPTION 11 | .B nodemap_add creates and names a new nodemap. The administrator can then add 12 | NID ranges and identity mappings to the nodemap, as well as modify its 13 | properties. 14 | 15 | .SH OPTIONS 16 | .I name 17 | is the name to give the new nodemap. It can be any string except "default". 18 | 19 | .SH EXAMPLES 20 | .nf 21 | # lctl nodemap_add remotesite 22 | # lctl nodemap_add otherremotesite 23 | .fi 24 | 25 | .SH AVAILABILITY 26 | .B lctl 27 | is part of the 28 | .BR Lustre (7) 29 | filesystem package. 30 | .SH SEE ALSO 31 | .BR lustre (7), 32 | .BR lctl-nodemap-activate (8), 33 | .BR lctl-nodemap-del (8), 34 | .BR lctl-nodemap-add-range (8), 35 | .BR lctl-nodemap-del-range (8), 36 | .BR lctl-nodemap-add-idmap (8), 37 | .BR lctl-nodemap-del-idmap (8), 38 | .BR lctl-nodemap-modify (8) 39 | -------------------------------------------------------------------------------- /lustre/doc/lctl-nodemap-del.8: -------------------------------------------------------------------------------- 1 | .TH lctl-nodemap-del 8 "2015 Jan 20" Lustre "configuration utilities" 2 | .SH NAME 3 | lctl-nodemap-del \- Delete an existing nodemap. 4 | 5 | .SH SYNOPSIS 6 | .br 7 | .B lctl nodemap_del "" 8 | .br 9 | .SH DESCRIPTION 10 | .B nodemap_del deletes an existing nodemap. All of the associated mappings and 11 | NID ranges will be removed as well, and existing clients will be moved to the 12 | default nodemap. 13 | 14 | .SH OPTIONS 15 | .I name 16 | is the name of the nodemap to delete. The default nodemap cannot be deleted. 17 | 18 | .SH EXAMPLES 19 | .nf 20 | # lctl nodemap_del remotesite 21 | # lctl nodemap_del otherremotesite 22 | .fi 23 | 24 | .SH AVAILABILITY 25 | .B lctl 26 | is part of the 27 | .BR Lustre (7) 28 | filesystem package. 29 | .SH SEE ALSO 30 | .BR lustre (7), 31 | .BR lctl-nodemap-activate (8), 32 | .BR lctl-nodemap-add (8), 33 | .BR lctl-nodemap-add-range (8), 34 | .BR lctl-nodemap-del-range (8), 35 | .BR lctl-nodemap-add-idmap (8), 36 | .BR lctl-nodemap-del-idmap (8), 37 | .BR lctl-nodemap-modify (8) 38 | -------------------------------------------------------------------------------- /lustre/doc/lfs-mkdir.1: -------------------------------------------------------------------------------- 1 | .so man1/lfs-setdirstripe.1 2 | -------------------------------------------------------------------------------- /lustre/doc/lfs-rmfid.1: -------------------------------------------------------------------------------- 1 | .TH LFS-RMFID 1 2017-07-25 "Lustre" "Lustre Utilities" 2 | .SH NAME 3 | lfs rmfid \- remove file by FID 4 | .SH SYNOPSIS 5 | .B lfs rmfid 6 | <\fIdirectory\fR> <\fIFID1\fR> [<\fIFID2\fR>...] 7 | .SH DESCRIPTION 8 | This command removes file(s) specified by the \fIFID\fR. 9 | .br 10 | In some cases it is more optimal to remove files by their FIDs. 11 | The \fBdirectory\fR specifies a mountpoint of Lustre filesystem where given 12 | \fBFIDs\fR are stored. The mountpoint should be mounted with 13 | \fBuser_fid2path\fR mount option and the caller has to have a right to 14 | modify the given files. rmfid will be trying to remove all hardlinks of the 15 | given file. FIDs can be wrapped with square brackets. 16 | .SH EXAMPLES 17 | .TP 18 | .B lfs rmfid /mnt/lustre [0x200000400:0x1:0x0] [0x200000402:0x20:0x0] 19 | Remove files with FIDs [0x200000400:0x1:0x0] [0x200000402:0x20:0x0] 20 | .SH AUTHOR 21 | The \fBlfs rmfid\fR command is part of the Lustre filesystem. 22 | .SH SEE ALSO 23 | .BR lfs (1), 24 | .BR lfs-path2fid (1), 25 | .BR lfs-fid2path (1) 26 | -------------------------------------------------------------------------------- /lustre/doc/llapi_fd2parent.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_path2parent.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_file_create.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_file_open.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_get_lum_dir.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_get_lum_file_fd.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_get_lum_dir_fd.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_get_lum_file_fd.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_get_lum_file.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_get_lum_file_fd.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_group_unlock.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_group_lock.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_hsm_action_end.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_hsm_action_begin.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_hsm_action_get_dfid.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_hsm_action_begin.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_hsm_action_get_fd.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_hsm_action_begin.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_hsm_action_progress.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_hsm_action_begin.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_hsm_copytool_get_fd.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_hsm_copytool_register.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_hsm_copytool_recv.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_hsm_copytool_register.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_hsm_copytool_unregister.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_hsm_copytool_register.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_comp_del.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_comp_add.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_comp_extent_set.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_comp_extent_get.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_comp_flags_clear.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_comp_flags_get.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_comp_flags_set.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_comp_flags_get.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_comp_use_id.3: -------------------------------------------------------------------------------- 1 | .TH llapi_layout_comp_use_id 3 "2017 Apr 7" "Lustre User API" 2 | .SH NAME 3 | llapi_layout_comp_use_id \- set currently active component to given ID 4 | .SH SYNOPSIS 5 | .nf 6 | .B #include 7 | .PP 8 | .BI "int llapi_layout_comp_use_id(struct llapi_layout *" layout ", 9 | .BI " uint32_t *" comp_id ); 10 | .fi 11 | .SH DESCRIPTION 12 | .PP 13 | Sets currently active component of 14 | .I layout 15 | to the component with specified 16 | .IR comp_id . 17 | .SH RETURN VALUES 18 | Return 0 on success. Otherwise, if an error occurred -1 is returned and 19 | .I errno 20 | is set appropriately. 21 | .SH ERRORS 22 | .TP 15 23 | .SM ENOENT 24 | No such component ID exists. 25 | .TP 15 26 | .SM EINVAL 27 | An invalid argument was specified. 28 | .SH "SEE ALSO" 29 | .BR llapi_layout_alloc (3), 30 | .BR llapi_layout_file_open (3), 31 | .BR llapi_layout_comp_del (3), 32 | .BR llapi_layout_comp_id_get (3), 33 | .BR llapi_layout_comp_use (3), 34 | .BR llapi_layout (7), 35 | .BR lustreapi (7) 36 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_file_comp_add.3: -------------------------------------------------------------------------------- 1 | .TH llapi_layout_file_comp_add 3 "2017 Apr 7" "Lustre User API" 2 | .SH NAME 3 | llapi_layout_file_comp_add \- add one or more components into an 4 | existing file. 5 | .SH SYNOPSIS 6 | .nf 7 | .B #include 8 | .PP 9 | .BI "int llapi_layout_file_comp_add(const char *" path ", 10 | .BI " const struct llapi_layout *" layout ); 11 | .fi 12 | .SH DESCRIPTION 13 | .PP 14 | Add component(s) specified in 15 | .I layout 16 | into the existing file 17 | .IR path . 18 | .PP 19 | .SH RETURN VALUES 20 | Return 0 on success, or -1 if an error occurred (in which case, errno is 21 | set appropriately). 22 | .SH ERRORS 23 | .TP 15 24 | .SM EINVAL 25 | An invalid argument was specified. 26 | .TP 27 | .SM ENOENT 28 | .I path 29 | doesn't exist. 30 | .SH "SEE ALSO" 31 | .BR llapi_layout_alloc (3), 32 | .BR llapi_layout_file_open (3), 33 | .BR llapi_layout_comp_add (3), 34 | .BR llapi_layout_comp_del (3), 35 | .BR llapi_layout (7), 36 | .BR lustreapi (7) 37 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_file_open.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_file_create.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_free.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_alloc.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_get_by_fid.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_get_by_fd.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_get_by_path.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_get_by_fd.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_get_by_xattr.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_get_by_fd.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_ost_index_set.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_ost_index_get.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_pattern_set.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_pattern_get.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_pool_name_set.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_pool_name_get.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_stripe_count_set.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_stripe_count_get.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_layout_stripe_size_set.3: -------------------------------------------------------------------------------- 1 | .so man3/llapi_layout_stripe_size_get.3 2 | -------------------------------------------------------------------------------- /lustre/doc/llapi_param_get_paths.3: -------------------------------------------------------------------------------- 1 | .TH llapi_param_get_paths 3 "2020 Feb 24" "Lustre User API" 2 | .SH NAME 3 | llapi_param_get_paths \- get a list of Lustre parameter file paths 4 | that match the given pattern 5 | .SH SYNOPSIS 6 | .B #include 7 | .nf 8 | .BI "int llapi_param_get_paths(const char" " *pattern, " "glob_t" \ 9 | " *paths" ")" 10 | .SH DESCRIPTION 11 | The 12 | .B llapi_param_get_paths(\|) 13 | function searches the locations in the filesystem that expose 14 | Lustre parameters. All file names that match 15 | .I pattern 16 | and are in 17 | the correct locations in the file system are returned. 18 | 19 | .SH RETURN VALUES 20 | .TP 21 | .B 0 22 | on success with the parameter paths stored in 23 | .IR paths . 24 | .TP 25 | -ve 26 | error code on failure and sets errno appropriately. 27 | 28 | .SH SEE ALSO 29 | .BR llapi_param_get_value (3), 30 | .BR lustreapi (7), 31 | .BR lctl-get_param (8) 32 | -------------------------------------------------------------------------------- /lustre/doc/llapi_path2fid.3: -------------------------------------------------------------------------------- 1 | .TH llapi_path2fid 3 "2014 Mar 18" "Lustre User API" 2 | .SH NAME 3 | llapi_path2fid \- translate a path name to a Lustre FID 4 | .SH SYNOPSIS 5 | .nf 6 | .B #include 7 | .PP 8 | .BI "int llapi_path2fid(const char *"path ", struct lu_fid *"fid ); 9 | .fi 10 | .SH DESCRIPTION 11 | .PP 12 | .BR llapi_path2fid() 13 | stores the Lustre file identifier (FID) for the file or directory named 14 | by 15 | .I path 16 | into 17 | .IR fid . 18 | The 19 | .I fid 20 | may be then be passed to other llapi functions that expect the 21 | .B struct lu_fid 22 | data type. 23 | .SH RETURN VALUES 24 | .LP 25 | .B llapi_path2fid() 26 | returns 0 on success or a negative errno value on failure. 27 | .SH ERRORS 28 | .TP 15 29 | .SM -ENOTTY 30 | .I path 31 | does not reside on a Lustre filesystem. 32 | .TP 33 | .SM -ENOENT 34 | .I path 35 | does not exist. 36 | .TP 37 | .SM -EINVAL 38 | An invalid argument was specified. 39 | .SH "SEE ALSO" 40 | .BR llapi_layout_get_by_fid (3), 41 | .BR llapi_layout (7), 42 | .BR lustreapi (7) 43 | -------------------------------------------------------------------------------- /lustre/doc/llstat.8: -------------------------------------------------------------------------------- 1 | .TH llstat 1 "Jul 7, 2008" Lustre "utilities" 2 | .SH NAME 3 | llstat \- print Lustre statistics 4 | .SH SYNOPSIS 5 | .B "llstat [-c] [-g] [-i interval] stats_file" 6 | .br 7 | .SH DESCRIPTION 8 | .B llstat 9 | can display statistics from any of several lustre stats files that 10 | share a common format, updated every \fIinterval\fR seconds. 11 | Use control-C to stop statistics printing. 12 | .TP 13 | .I "\-c" 14 | Clear the stats file first. 15 | .TP 16 | .I "\-i interval" 17 | Polling period in seconds. 18 | .TP 19 | .I "\-g" 20 | Graphable output format. 21 | .TP 22 | .I "\-h" 23 | Display help information. 24 | .TP 25 | .I "stats_file" 26 | Either the full path to a stats file, or the shorthand: 27 | \fImds\fR or \fIost\fR. 28 | .SH EXAMPLE 29 | To monitor the OST RPC stats every second: 30 | .IP 31 | llstat -i 1 ost 32 | .SH FILES 33 | .nf 34 | llite.*.stats 35 | lwp.*.stats 36 | mdc.*.stats 37 | obdfilter.*.stats 38 | osc.*.stats 39 | osd-ldiskfs.*.stats 40 | osp.*.stats 41 | ldlm.services.*.stats 42 | mds.MDS.*.stats 43 | ost.OSS.*.stats 44 | .fi 45 | -------------------------------------------------------------------------------- /lustre/doc/nids.5: -------------------------------------------------------------------------------- 1 | .TH nids 5 Lustre nids /etc/nids 2 | .SH NAME 3 | /etc/nids \- The static lookup table for Lustre NIDs 4 | .SH DESCRIPTION 5 | The nids file maps host names to NIDs and vice-versa. 6 | .SH FORMAT 7 | Comments beginning with a hash (#) are ignored. Each line represents one 8 | host and includes the following information separated by white space: 9 | .TP 10 | .I "hostname" 11 | The primary hostname of the node, e.g. \fIuname -n\fR. 12 | .TP 13 | .I "primary nid" 14 | The primary NID of the node. 15 | .TP 16 | .I "other nid ..." 17 | Any additional NIDs. 18 | .SH EXAMPLE 19 | .nf 20 | ## Tycho 21 | tycho-mds1 172.16.2.200@tcp 172.16.10.200@tcp 22 | tycho1 172.16.2.1@tcp 172.16.10.1@tcp 23 | tycho2 172.16.2.2@tcp 172.16.10.2@tcp 24 | tycho3 172.16.2.3@tcp 172.16.10.3@tcp 25 | tycho4 172.16.2.4@tcp 172.16.10.4@tcp 26 | tycho5 172.16.2.5@tcp 172.16.10.5@tcp 27 | tycho6 172.16.2.6@tcp 172.16.10.6@tcp 28 | tycho7 172.16.2.7@tcp 172.16.10.7@tcp 29 | tycho8 172.16.2.8@tcp 172.16.10.8@tcp 30 | .fi 31 | 32 | .SH FILES 33 | /etc/nids 34 | -------------------------------------------------------------------------------- /lustre/fid/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := fid 2 | fid-objs := fid_request.o lproc_fid.o 3 | @SERVER_TRUE@fid-objs += fid_handler.o fid_store.o fid_lib.o 4 | 5 | EXTRA_DIST = $(fid-objs:%.o=%.c) fid_internal.h 6 | @SERVER_FALSE@EXTRA_DIST += fid_handler.c fid_store.c fid_lib.c 7 | 8 | @INCLUDE_RULES@ 9 | -------------------------------------------------------------------------------- /lustre/fld/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := fld 2 | fld-objs := fld_request.o fld_cache.o lproc_fld.o 3 | @SERVER_TRUE@fld-objs += fld_handler.o fld_index.o 4 | 5 | EXTRA_PRE_CFLAGS := -I@LUSTRE@ 6 | EXTRA_DIST := $(fld-objs:%.o=%.c) fld_internal.h 7 | @SERVER_FALSE@EXTRA_DIST += fld_handler.c fld_index.c 8 | 9 | @INCLUDE_RULES@ 10 | -------------------------------------------------------------------------------- /lustre/include/.gitignore: -------------------------------------------------------------------------------- 1 | /config.h 2 | /config.h.in 3 | /stamp-h 4 | /stamp-h1 5 | /stamp-h.in 6 | /Makefile.in 7 | -------------------------------------------------------------------------------- /lustre/include/lustre/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lustre/include/uapi/linux/lustre/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lustre/kernel_patches/README: -------------------------------------------------------------------------------- 1 | The Linux kernel patches for Lustre. See the Lustre file system Operations 2 | Manual 2.x from http://lustre.opensfs.org/documentation/ for information on how 3 | to patch your kernel. 4 | 5 | -------------------------------------------------------------------------------- /lustre/kernel_patches/patches/kallsyms-rhel6.patch: -------------------------------------------------------------------------------- 1 | --- a/kernel/kallsyms.c.orig 2017-07-12 13:01:00.143416830 -0700 2 | +++ a/kernel/kallsyms.c 2017-07-12 13:01:40.438112247 -0700 3 | @@ -181,6 +181,7 @@ unsigned long kallsyms_lookup_name(const 4 | } 5 | return module_kallsyms_lookup_name(name); 6 | } 7 | +EXPORT_SYMBOL_GPL(kallsyms_lookup_name); 8 | 9 | int kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, 10 | unsigned long), 11 | -------------------------------------------------------------------------------- /lustre/kernel_patches/patches/raid5-mmp-unplug-dev-3.7.patch: -------------------------------------------------------------------------------- 1 | --- linux-3.6.0-0.3.fc.el6.x86_64/drivers/md/raid5.c.orig 2012-11-21 08:51:15.312175089 -0500 2 | +++ linux-3.6.0-0.3.fc.el6.x86_64/drivers/md/raid5.c 2012-11-21 09:02:38.415174560 -0500 3 | @@ -2394,6 +2394,8 @@ static int add_stripe_bio(struct stripe_ 4 | bi->bi_next = *bip; 5 | *bip = bi; 6 | raid5_inc_bi_active_stripes(bi); 7 | + if ((bi->bi_rw & REQ_SYNC) && !forwrite) 8 | + clear_bit(R5_UPTODATE, &sh->dev[dd_idx].flags); /* force to read from disk. */ 9 | 10 | if (forwrite) { 11 | /* check if page is covered */ 12 | @@ -4217,6 +4222,9 @@ static void make_request(struct mddev *m 13 | 14 | bio_endio(bi, 0); 15 | } 16 | + 17 | + if (bi->bi_rw & REQ_SYNC) 18 | + md_wakeup_thread(mddev->thread); 19 | } 20 | 21 | static sector_t raid5_size(struct mddev *mddev, sector_t sectors, int raid_disks); 22 | -------------------------------------------------------------------------------- /lustre/kernel_patches/patches/raid5-mmp-unplug-dev-3.8.patch: -------------------------------------------------------------------------------- 1 | --- linux-3.10.0-685.el7.x86_64/drivers/md/raid5.c.orig 2017-06-28 14:06:00.627299582 -0700 2 | +++ linux-3.10.0-685.el7.x86_64/drivers/md/raid5.c 2017-06-28 14:08:01.564618793 -0700 3 | @@ -3090,6 +3090,8 @@ static int add_stripe_bio(struct stripe_ 4 | bi->bi_next = *bip; 5 | *bip = bi; 6 | raid5_inc_bi_active_stripes(bi); 7 | + if ((bi->bi_rw & REQ_SYNC) && !forwrite) 8 | + clear_bit(R5_UPTODATE, &sh->dev[dd_idx].flags); /* force to read from disk. */ 9 | 10 | if (forwrite) { 11 | /* check if page is covered */ 12 | @@ -5538,6 +5540,9 @@ static bool raid5_make_request(struct md 13 | bi, 0); 14 | bio_endio(bi, 0); 15 | } 16 | + 17 | + if (bi->bi_rw & REQ_SYNC) 18 | + md_wakeup_thread(mddev->thread); 19 | return true; 20 | } 21 | 22 | -------------------------------------------------------------------------------- /lustre/kernel_patches/patches/raid5-mmp-unplug-dev-3.9.patch: -------------------------------------------------------------------------------- 1 | Index: linux-3.10.0-799.el7.x86_64/drivers/md/raid5.c 2 | =================================================================== 3 | --- linux-3.10.0-799.el7.x86_64.orig/drivers/md/raid5.c 4 | +++ linux-3.10.0-799.el7.x86_64/drivers/md/raid5.c 5 | @@ -3096,7 +3096,9 @@ static int add_stripe_bio(struct stripe_ 6 | bi->bi_next = *bip; 7 | *bip = bi; 8 | raid5_inc_bi_active_stripes(bi); 9 | md_write_inc(conf->mddev, bi); 10 | + if ((bi->bi_rw & REQ_SYNC) && !forwrite) 11 | + clear_bit(R5_UPTODATE, &sh->dev[dd_idx].flags); /* force to read from disk. */ 12 | 13 | if (forwrite) { 14 | /* check if page is covered */ 15 | @@ -5548,6 +5550,9 @@ static void raid5_make_request(struct md 16 | bi, 0); 17 | bio_endio(bi, 0); 18 | } 19 | + 20 | + if (bi->bi_rw & REQ_SYNC) 21 | + md_wakeup_thread(mddev->thread); 22 | } 23 | 24 | static sector_t raid5_size(struct mddev *mddev, sector_t sectors, int raid_disks); 25 | -------------------------------------------------------------------------------- /lustre/kernel_patches/patches/raid5-mmp-unplug-dev-rhel7.6.patch: -------------------------------------------------------------------------------- 1 | Index: linux-3.10.0-957.el7.x86_64/drivers/md/raid5.c 2 | =================================================================== 3 | --- linux-3.10.0-957.el7.x86_64.orig/drivers/md/raid5.c 4 | +++ linux-3.10.0-957.el7.x86_64/drivers/md/raid5.c 5 | @@ -3266,6 +3266,8 @@ static int add_stripe_bio(struct stripe_ 6 | *bip = bi; 7 | bio_inc_remaining(bi); 8 | md_write_inc(conf->mddev, bi); 9 | + if ((bi->bi_rw & REQ_SYNC) && !forwrite) 10 | + clear_bit(R5_UPTODATE, &sh->dev[dd_idx].flags); /* force to read from disk. */ 11 | 12 | if (forwrite) { 13 | /* check if page is covered */ 14 | @@ -5753,6 +5755,10 @@ static bool raid5_make_request(struct md 15 | if (rw == WRITE) 16 | md_write_end(mddev); 17 | bio_endio(bi, 0); 18 | + 19 | + if (bi->bi_rw & REQ_SYNC) 20 | + md_wakeup_thread(mddev->thread); 21 | + 22 | return true; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /lustre/kernel_patches/patches/raid5-mmp-unplug-dev-sles12.patch: -------------------------------------------------------------------------------- 1 | Index: linux-3.12.44-52.10/drivers/md/raid5.c 2 | =================================================================== 3 | --- linux-3.12.44-52.10.orig/drivers/md/raid5.c 4 | +++ linux-3.12.44-52.10/drivers/md/raid5.c 5 | @@ -2530,6 +2530,8 @@ static int add_stripe_bio(struct stripe_ 6 | bi->bi_next = *bip; 7 | *bip = bi; 8 | raid5_inc_bi_active_stripes(bi); 9 | + if ((bi->bi_rw & REQ_SYNC) && !forwrite) 10 | + clear_bit(R5_UPTODATE, &sh->dev[dd_idx].flags); /* force to read from disk. */ 11 | 12 | if (forwrite) { 13 | /* check if page is covered */ 14 | @@ -4416,6 +4418,9 @@ static void make_discard_request(struct 15 | md_write_end(mddev); 16 | bio_endio(bi, 0); 17 | } 18 | + 19 | + if (bi->bi_rw & REQ_SYNC) 20 | + md_wakeup_thread(mddev->thread); 21 | } 22 | 23 | static void make_request(struct mddev *mddev, struct bio * bi) 24 | -------------------------------------------------------------------------------- /lustre/kernel_patches/patches/raid5-mmp-unplug-dev-sles12sp2.patch: -------------------------------------------------------------------------------- 1 | Index: linux-4.4.21-64/drivers/md/raid5.c 2 | =================================================================== 3 | --- linux-4.4.21-64.orig/drivers/md/raid5.c 4 | +++ linux-4.4.21-64/drivers/md/raid5.c 5 | @@ -2991,6 +2991,8 @@ static int add_stripe_bio(struct stripe_ 6 | bi->bi_next = *bip; 7 | *bip = bi; 8 | raid5_inc_bi_active_stripes(bi); 9 | + if ((bi->bi_rw & REQ_SYNC) && !forwrite) 10 | + clear_bit(R5_UPTODATE, &sh->dev[dd_idx].flags); /* force to read from disk. */ 11 | 12 | if (forwrite) { 13 | /* check if page is covered */ 14 | @@ -5136,6 +5138,9 @@ static void make_discard_request(struct 15 | md_write_end(mddev); 16 | bio_endio(bi); 17 | } 18 | + 19 | + if (bi->bi_rw & REQ_SYNC) 20 | + md_wakeup_thread(mddev->thread); 21 | } 22 | 23 | static void raid5_make_request(struct mddev *mddev, struct bio * bi) 24 | -------------------------------------------------------------------------------- /lustre/kernel_patches/patches/raid5-mmp-unplug-dev-sles12sp3.patch: -------------------------------------------------------------------------------- 1 | Index: linux-4.4.59-1/drivers/md/raid5.c 2 | =================================================================== 3 | --- linux-4.4.59-1.orig/drivers/md/raid5.c 4 | +++ linux-4.4.59-1/drivers/md/raid5.c 5 | @@ -3041,6 +3041,8 @@ static int add_stripe_bio(struct stripe_ 6 | bi->bi_next = *bip; 7 | *bip = bi; 8 | raid5_inc_bi_active_stripes(bi); 9 | + if ((bi->bi_opf & REQ_SYNC) && !forwrite) 10 | + clear_bit(R5_UPTODATE, &sh->dev[dd_idx].flags); /* force to read from disk. */ 11 | 12 | if (forwrite) { 13 | /* check if page is covered */ 14 | @@ -5192,6 +5194,9 @@ static void make_discard_request(struct 15 | md_write_end(mddev); 16 | bio_endio(bi); 17 | } 18 | + 19 | + if (bi->bi_opf & REQ_SYNC) 20 | + md_wakeup_thread(mddev->thread); 21 | } 22 | 23 | static void raid5_make_request(struct mddev *mddev, struct bio * bi) 24 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/2.6-rhel6.8.series: -------------------------------------------------------------------------------- 1 | mpt-fusion-max-sge-rhel6.patch 2 | raid5-mmp-unplug-dev-rhel6.patch 3 | dev_read_only-2.6.32-rhel6.patch 4 | blkdev_tunables-2.6-rhel6.patch 5 | bh_lru_size_increase.patch 6 | quota-replace-dqptr-sem-el6.8.patch 7 | quota-avoid-dqget-calls.patch 8 | jbd2-log_wait_for_space-2.6-rhel6.patch 9 | module-load-deadlock-rhel6.patch 10 | kallsyms-rhel6.patch 11 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/2.6-rhel6.series: -------------------------------------------------------------------------------- 1 | mpt-fusion-max-sge-rhel6.patch 2 | raid5-mmp-unplug-dev-rhel6.patch 3 | dev_read_only-2.6.32-rhel6.patch 4 | blkdev_tunables-2.6-rhel6.patch 5 | bh_lru_size_increase.patch 6 | quota-replace-dqptr-sem.patch 7 | quota-avoid-dqget-calls.patch 8 | jbd2-log_wait_for_space-2.6-rhel6.patch 9 | module-load-deadlock-rhel6.patch 10 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/2.6-sles11.series: -------------------------------------------------------------------------------- 1 | raid5-mmp-unplug-dev-sles11sp1.patch 2 | dev_read_only-2.6.32-sles11.patch 3 | bh_lru_size_increase.patch 4 | quota-replace-dqptr-sem-sles11.patch 5 | quota-avoid-dqget-calls.patch 6 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/3.0-sles11.series: -------------------------------------------------------------------------------- 1 | raid5-mmp-unplug-dev-sles11sp2.patch 2 | quota-replace-dqptr-sem-sles11sp2.patch 3 | quota-avoid-dqget-calls-sles11sp2.patch 4 | blkdev_tunables-3.0-sles11.patch 5 | bh_lru_size_increase.patch 6 | jbd2-log_wait_for_space-2.6-rhel6.patch 7 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/3.0-sles11sp3.series: -------------------------------------------------------------------------------- 1 | raid5-mmp-unplug-dev-sles11sp2.patch 2 | quota-replace-dqptr-sem-sles11sp2.patch 3 | quota-avoid-dqget-calls-sles11sp2.patch 4 | blkdev_tunables-3.0-sles11sp3.patch 5 | bh_lru_size_increase.patch 6 | jbd2-log_wait_for_space-2.6-rhel6.patch 7 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/3.10-rhel7.5.series: -------------------------------------------------------------------------------- 1 | raid5-mmp-unplug-dev-3.9.patch 2 | dev_read_only-3.7.patch 3 | blkdev_tunables-3.9.patch 4 | vfs-project-quotas-rhel7.patch 5 | fix-integrity-verify-rhel7.patch 6 | fix-sd-dif-complete-rhel7.patch 7 | block-integrity-allow-optional-integrity-functions-rhel7.patch 8 | block-pass-bio-into-integrity_processing_fn-rhel7.patch 9 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/3.10-rhel7.6.series: -------------------------------------------------------------------------------- 1 | raid5-mmp-unplug-dev-rhel7.6.patch 2 | dev_read_only-3.7.patch 3 | blkdev_tunables-3.9.patch 4 | vfs-project-quotas-rhel7.patch 5 | fix-integrity-verify-rhel7.patch 6 | fix-sd-dif-complete-rhel7.patch 7 | block-integrity-allow-optional-integrity-functions-rhel7.patch 8 | block-pass-bio-into-integrity_processing_fn-rhel7.patch 9 | dm-fix-handle-BLK_MQ_RQ_QUEUE_DEV_BUSY-rhel7.6.patch 10 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/3.10-rhel7.7.series: -------------------------------------------------------------------------------- 1 | raid5-mmp-unplug-dev-rhel7.6.patch 2 | dev_read_only-3.7.patch 3 | blkdev_tunables-3.9.patch 4 | vfs-project-quotas-rhel7.patch 5 | fix-integrity-verify-rhel7.patch 6 | fix-sd-dif-complete-rhel7.patch 7 | block-integrity-allow-optional-integrity-functions-rhel7.patch 8 | block-pass-bio-into-integrity_processing_fn-rhel7.patch 9 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/3.10-rhel7.8.series: -------------------------------------------------------------------------------- 1 | vfs-project-quotas-rhel7.patch 2 | fix-integrity-verify-rhel7.patch 3 | fix-sd-dif-complete-rhel7.patch 4 | block-integrity-allow-optional-integrity-functions-rhel7.patch 5 | block-pass-bio-into-integrity_processing_fn-rhel7.patch 6 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/3.10-rhel7.9.series: -------------------------------------------------------------------------------- 1 | vfs-project-quotas-rhel7.patch 2 | fix-integrity-verify-rhel7.patch 3 | block-integrity-allow-optional-integrity-functions-rhel7.patch 4 | block-pass-bio-into-integrity_processing_fn-rhel7.patch 5 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/3.12-sles12.series: -------------------------------------------------------------------------------- 1 | raid5-mmp-unplug-dev-sles12.patch 2 | dev_read_only-3.7.patch 3 | blkdev_tunables-3.7.patch 4 | bh_lru_size_increase.patch 5 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/3.x-fc18.series: -------------------------------------------------------------------------------- 1 | raid5-mmp-unplug-dev-3.7.patch 2 | dev_read_only-3.7.patch 3 | blkdev_tunables-3.7.patch 4 | bh_lru_size_increase.patch 5 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/4.14-rhel7.5.series: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/kernel_patches/series/4.14-rhel7.5.series -------------------------------------------------------------------------------- /lustre/kernel_patches/series/4.14-rhel7.6.series: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/kernel_patches/series/4.14-rhel7.6.series -------------------------------------------------------------------------------- /lustre/kernel_patches/series/4.4-sles12.series: -------------------------------------------------------------------------------- 1 | raid5-mmp-unplug-dev-sles12sp2.patch 2 | dev_read_only-3.8.patch 3 | blkdev_tunables-3.8-sles12.patch 4 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/4.4-sles12sp3.series: -------------------------------------------------------------------------------- 1 | raid5-mmp-unplug-dev-sles12sp3.patch 2 | dev_read_only-3.9.patch 3 | -------------------------------------------------------------------------------- /lustre/kernel_patches/series/4.4-ubuntu14+16.series: -------------------------------------------------------------------------------- 1 | dev_read_only-3.8.patch 2 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/.gitignore: -------------------------------------------------------------------------------- 1 | /*.target 2 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/2.6-fc11.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="2.6.29.4" 2 | lnxrel="167.fc11" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES="" 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | BASE_ARCHS="i686 x86_64" 9 | BIGMEM_ARCHS="" 10 | BOOT_ARCHS="" 11 | JENSEN_ARCHS="" 12 | SMP_ARCHS="" 13 | UP_ARCHS="" 14 | 15 | 16 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/2.6-fc12.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="2.6.31.5" 2 | lnxrel="127.fc12" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES="" 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | BASE_ARCHS="i686 x86_64" 9 | BIGMEM_ARCHS="" 10 | BOOT_ARCHS="" 11 | JENSEN_ARCHS="" 12 | SMP_ARCHS="" 13 | UP_ARCHS="" 14 | 15 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/2.6-fc15.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="2.6.38.6" 2 | lnxrel="26.rc1.fc15" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES="" 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | BASE_ARCHS="i686 x86_64" 9 | BIGMEM_ARCHS="" 10 | BOOT_ARCHS="" 11 | JENSEN_ARCHS="" 12 | SMP_ARCHS="" 13 | UP_ARCHS="" 14 | 15 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/2.6-rhel5.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="2.6.18" 2 | lnxrel="348.3.1.el5" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=2.6-rhel5.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | OFED_VERSION=inkernel 10 | 11 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 12 | BIGMEM_ARCHS="" 13 | BOOT_ARCHS="" 14 | JENSEN_ARCHS="" 15 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 16 | # RHEL5 doesn't use smp specific kernels 17 | SMP_ARCHS="" 18 | UP_ARCHS="" 19 | 20 | for cc in gcc ; do 21 | if which $cc >/dev/null 2>/dev/null ; then 22 | export CC=$cc 23 | break 24 | fi 25 | done 26 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/2.6-rhel6.6.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="2.6.32" 2 | lnxrel="504.30.3.el6" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=2.6-rhel6.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL5 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/2.6-rhel6.7.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="2.6.32" 2 | lnxrel="573.26.1.el6" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=2.6-rhel6.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL5 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/2.6-rhel6.8.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="2.6.32" 2 | lnxrel="642.15.1.el6" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=2.6-rhel6.8.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL5 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/2.6-rhel6.9.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="2.6.32" 2 | lnxrel="696.18.7.el6" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=2.6-rhel6.8.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL5 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/2.6-rhel6.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="2.6.32" 2 | lnxrel="431.29.2.el6" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=2.6-rhel6.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL5 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/2.6-sles11.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="2.6.32" 2 | lnxmin=".36" 3 | lnxrel="0.5" 4 | # use this when there is an "RPM fix" which means that the name of the 5 | # (source) RPM has been updated but the version of the kernel inside the 6 | # RPM is not also updated 7 | rpmfix=".2" 8 | 9 | # this is the delimeter that goes before the "smp" at the end of the version 10 | # defaults to empty 11 | FLAVOR_DELIMITER="-" 12 | 13 | KERNEL_SRPM=kernel-source-${lnxmaj}${lnxmin}-${lnxrel}${rpmfix}.src.rpm 14 | SERIES=2.6-sles11.series 15 | VERSION=$lnxmaj 16 | EXTRA_VERSION="${lnxmin#.}-${lnxrel}_lustre.@VERSION@" 17 | LUSTRE_VERSION=@VERSION@ 18 | 19 | OFED_VERSION=inkernel 20 | 21 | BASE_ARCHS="i686 ppc x86_64 ia64 ppc64" 22 | BIGMEM_ARCHS="" 23 | BOOT_ARCHS="" 24 | JENSEN_ARCHS="" 25 | DEFAULT_ARCHS="i686 x86_64 ia64 ppc64" 26 | BIGSMP_ARCHS="" 27 | PSERIES64_ARCHS="ppc" 28 | UP_ARCHS="" 29 | SRC_ARCHS="" 30 | #RPMSMPTYPE="smp" 31 | 32 | for cc in gcc ; do 33 | if which $cc >/dev/null 2>/dev/null ; then 34 | export CC=$cc 35 | break 36 | fi 37 | done 38 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/3.0-sles11.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="3.0" 2 | lnxmin=".101" 3 | lnxrel="0.7.15" 4 | # use this when there is an "RPM fix" which means that the name of the 5 | # (source) RPM has been updated but the version of the kernel inside the 6 | # RPM is not also updated 7 | rpmfix=".1" 8 | 9 | # this is the delimeter that goes before the "smp" at the end of the version 10 | # defaults to empty 11 | FLAVOR_DELIMITER="-" 12 | 13 | KERNEL_SRPM=kernel-source-${lnxmaj}${lnxmin}-${lnxrel}${rpmfix}.src.rpm 14 | SERIES=3.0-sles11.series 15 | VERSION=$lnxmaj 16 | EXTRA_VERSION="${lnxmin#.}-${lnxrel}_lustre.@VERSION@" 17 | LUSTRE_VERSION=@VERSION@ 18 | 19 | OFED_VERSION=inkernel 20 | 21 | BASE_ARCHS="i686 ppc x86_64 ia64 ppc64" 22 | BIGMEM_ARCHS="" 23 | BOOT_ARCHS="" 24 | JENSEN_ARCHS="" 25 | DEFAULT_ARCHS="i686 x86_64 ia64 ppc64" 26 | BIGSMP_ARCHS="" 27 | PSERIES64_ARCHS="ppc" 28 | UP_ARCHS="" 29 | SRC_ARCHS="" 30 | #RPMSMPTYPE="smp" 31 | 32 | for cc in gcc ; do 33 | if which $cc >/dev/null 2>/dev/null ; then 34 | export CC=$cc 35 | break 36 | fi 37 | done 38 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/3.0-sles11sp3.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="3.0" 2 | lnxmin=".101" 3 | lnxrel="0.47.71" 4 | # use this when there is an "RPM fix" which means that the name of the 5 | # (source) RPM has been updated but the version of the kernel inside the 6 | # RPM is not also updated 7 | rpmfix=".1" 8 | 9 | # this is the delimeter that goes before the "smp" at the end of the version 10 | # defaults to empty 11 | FLAVOR_DELIMITER="-" 12 | 13 | KERNEL_SRPM=kernel-source-${lnxmaj}${lnxmin}-${lnxrel}${rpmfix}.src.rpm 14 | SERIES=3.0-sles11sp3.series 15 | VERSION=$lnxmaj 16 | EXTRA_VERSION="${lnxmin#.}-${lnxrel}_lustre.@VERSION@" 17 | LUSTRE_VERSION=@VERSION@ 18 | 19 | OFED_VERSION=inkernel 20 | 21 | BASE_ARCHS="i686 ppc x86_64 ia64 ppc64" 22 | BIGMEM_ARCHS="" 23 | BOOT_ARCHS="" 24 | JENSEN_ARCHS="" 25 | DEFAULT_ARCHS="i686 x86_64 ia64 ppc64" 26 | BIGSMP_ARCHS="" 27 | PSERIES64_ARCHS="ppc" 28 | UP_ARCHS="" 29 | SRC_ARCHS="" 30 | #RPMSMPTYPE="smp" 31 | 32 | for cc in gcc ; do 33 | if which $cc >/dev/null 2>/dev/null ; then 34 | export CC=$cc 35 | break 36 | fi 37 | done 38 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/3.0-sles11sp4.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="3.0" 2 | lnxmin=".101" 3 | lnxrel="107" 4 | # use this when there is an "RPM fix" which means that the name of the 5 | # (source) RPM has been updated but the version of the kernel inside the 6 | # RPM is not also updated 7 | rpmfix=".1" 8 | 9 | # this is the delimeter that goes before the "smp" at the end of the version 10 | # defaults to empty 11 | FLAVOR_DELIMITER="-" 12 | 13 | KERNEL_SRPM=kernel-source-${lnxmaj}${lnxmin}-${lnxrel}${rpmfix}.src.rpm 14 | SERIES=3.0-sles11sp3.series 15 | VERSION=$lnxmaj 16 | EXTRA_VERSION="${lnxmin#.}-${lnxrel}_lustre.@VERSION@" 17 | LUSTRE_VERSION=@VERSION@ 18 | 19 | OFED_VERSION=inkernel 20 | 21 | BASE_ARCHS="i686 ppc x86_64 ia64 ppc64" 22 | BIGMEM_ARCHS="" 23 | BOOT_ARCHS="" 24 | JENSEN_ARCHS="" 25 | DEFAULT_ARCHS="i686 x86_64 ia64 ppc64" 26 | BIGSMP_ARCHS="" 27 | PSERIES64_ARCHS="ppc" 28 | UP_ARCHS="" 29 | SRC_ARCHS="" 30 | #RPMSMPTYPE="smp" 31 | 32 | for cc in gcc ; do 33 | if which $cc >/dev/null 2>/dev/null ; then 34 | export CC=$cc 35 | break 36 | fi 37 | done 38 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/3.10-rhel7.5.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="3.10.0" 2 | lnxrel="862.14.4.el7" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=3.10-rhel7.5.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL5 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/3.10-rhel7.6.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="3.10.0" 2 | lnxrel="957.27.2.el7" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=3.10-rhel7.6.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL5 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/3.10-rhel7.7.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="3.10.0" 2 | lnxrel="1062.18.1.el7" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=3.10-rhel7.7.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL5 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/3.10-rhel7.8.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="3.10.0" 2 | lnxrel="1127.19.1.el7" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=3.10-rhel7.8.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL5 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/3.10-rhel7.9.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="3.10.0" 2 | lnxrel="1160.25.1.el7" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=3.10-rhel7.9.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL5 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/3.x-fc18.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="3.6.10" 2 | lnxrel="4.fc18" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES="" 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | BASE_ARCHS="i686 x86_64" 9 | BIGMEM_ARCHS="" 10 | BOOT_ARCHS="" 11 | JENSEN_ARCHS="" 12 | SMP_ARCHS="" 13 | UP_ARCHS="" 14 | 15 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/4.12-sles12sp4.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="4.12" 2 | lnxmin=".14" 3 | lnxrel="95.54" 4 | # use this when there is an "RPM fix" which means that the name of the 5 | # (source) RPM has been updated but the version of the kernel inside the 6 | # RPM is not also updated 7 | rpmfix=".1" 8 | 9 | # this is the delimeter that goes before the "smp" at the end of the version 10 | # defaults to empty 11 | FLAVOR_DELIMITER="-" 12 | 13 | KERNEL_SRPM=kernel-source-${lnxmaj}${lnxmin}-${lnxrel}${rpmfix}.src.rpm 14 | SERIES="" 15 | VERSION=$lnxmaj 16 | EXTRA_VERSION="${lnxmin#.}-${lnxrel}_lustre.@VERSION@" 17 | LUSTRE_VERSION=@VERSION@ 18 | 19 | OFED_VERSION=inkernel 20 | 21 | BASE_ARCHS="i686 ppc x86_64 ia64 ppc64" 22 | BIGMEM_ARCHS="" 23 | BOOT_ARCHS="" 24 | JENSEN_ARCHS="" 25 | DEFAULT_ARCHS="i686 x86_64 ia64 ppc64" 26 | BIGSMP_ARCHS="" 27 | PSERIES64_ARCHS="ppc" 28 | UP_ARCHS="" 29 | SRC_ARCHS="" 30 | #RPMSMPTYPE="smp" 31 | 32 | for cc in gcc ; do 33 | if which $cc >/dev/null 2>/dev/null ; then 34 | export CC=$cc 35 | break 36 | fi 37 | done 38 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/4.12-sles12sp5.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="4.12" 2 | lnxmin=".14" 3 | lnxrel="122.66" 4 | # use this when there is an "RPM fix" which means that the name of the 5 | # (source) RPM has been updated but the version of the kernel inside the 6 | # RPM is not also updated 7 | rpmfix=".2" 8 | 9 | # this is the delimeter that goes before the "smp" at the end of the version 10 | # defaults to empty 11 | FLAVOR_DELIMITER="-" 12 | 13 | KERNEL_SRPM=kernel-source-${lnxmaj}${lnxmin}-${lnxrel}${rpmfix}.src.rpm 14 | SERIES="" 15 | VERSION=$lnxmaj 16 | EXTRA_VERSION="${lnxmin#.}-${lnxrel}_lustre.@VERSION@" 17 | LUSTRE_VERSION=@VERSION@ 18 | 19 | OFED_VERSION=inkernel 20 | 21 | BASE_ARCHS="i686 ppc x86_64 ia64 ppc64" 22 | BIGMEM_ARCHS="" 23 | BOOT_ARCHS="" 24 | JENSEN_ARCHS="" 25 | DEFAULT_ARCHS="i686 x86_64 ia64 ppc64" 26 | BIGSMP_ARCHS="" 27 | PSERIES64_ARCHS="ppc" 28 | UP_ARCHS="" 29 | SRC_ARCHS="" 30 | #RPMSMPTYPE="smp" 31 | 32 | for cc in gcc ; do 33 | if which $cc >/dev/null 2>/dev/null ; then 34 | export CC=$cc 35 | break 36 | fi 37 | done 38 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/4.14-rhel7.5.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="4.14.0" 2 | lnxrel="49.13.1.el7a" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=4.14-rhel7.5.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64 aarch64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL5 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/4.14-rhel7.6.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="4.14.0" 2 | lnxrel="115.2.2.el7a" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES=4.14-rhel7.6.series 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64 aarch64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL5 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/4.18-rhel8.1.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="4.18.0" 2 | lnxrel="147.8.1.el8_1" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES="" 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL8 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/4.18-rhel8.2.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="4.18.0" 2 | lnxrel="193.28.1.el8_2" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES="" 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL8 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/4.18-rhel8.3.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="4.18.0" 2 | lnxrel="240.22.1.el8_3" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES="" 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL8 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/4.18-rhel8.4.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="4.18.0" 2 | lnxrel="305.3.1.el8_4" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES="" 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL8 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/4.18-rhel8.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="4.18.0" 2 | lnxrel="80.11.2.el8_0" 3 | 4 | KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm 5 | SERIES="" 6 | EXTRA_VERSION=${lnxrel}_lustre.@VERSION@ 7 | LUSTRE_VERSION=@VERSION@ 8 | 9 | DEVEL_PATH_ARCH_DELIMETER="." 10 | OFED_VERSION=inkernel 11 | 12 | BASE_ARCHS="i686 x86_64 ia64 ppc64" 13 | BIGMEM_ARCHS="" 14 | BOOT_ARCHS="" 15 | JENSEN_ARCHS="" 16 | #SMP_ARCHS="i686 x86_64 ia64 ppc64" 17 | # RHEL8 doesn't use smp specific kernels 18 | SMP_ARCHS="" 19 | UP_ARCHS="" 20 | 21 | for cc in gcc ; do 22 | if which $cc >/dev/null 2>/dev/null ; then 23 | export CC=$cc 24 | break 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /lustre/kernel_patches/targets/4.4-sles12sp3.target.in: -------------------------------------------------------------------------------- 1 | lnxmaj="4.4" 2 | lnxmin=".180" 3 | lnxrel="94.97" 4 | # use this when there is an "RPM fix" which means that the name of the 5 | # (source) RPM has been updated but the version of the kernel inside the 6 | # RPM is not also updated 7 | rpmfix=".1" 8 | 9 | # this is the delimeter that goes before the "smp" at the end of the version 10 | # defaults to empty 11 | FLAVOR_DELIMITER="-" 12 | 13 | KERNEL_SRPM=kernel-source-${lnxmaj}${lnxmin}-${lnxrel}${rpmfix}.src.rpm 14 | SERIES=4.4-sles12sp3.series 15 | VERSION=$lnxmaj 16 | EXTRA_VERSION="${lnxmin#.}-${lnxrel}_lustre.@VERSION@" 17 | LUSTRE_VERSION=@VERSION@ 18 | 19 | OFED_VERSION=inkernel 20 | 21 | BASE_ARCHS="i686 ppc x86_64 ia64 ppc64" 22 | BIGMEM_ARCHS="" 23 | BOOT_ARCHS="" 24 | JENSEN_ARCHS="" 25 | DEFAULT_ARCHS="i686 x86_64 ia64 ppc64" 26 | BIGSMP_ARCHS="" 27 | PSERIES64_ARCHS="ppc" 28 | UP_ARCHS="" 29 | SRC_ARCHS="" 30 | #RPMSMPTYPE="smp" 31 | 32 | for cc in gcc ; do 33 | if which $cc >/dev/null 2>/dev/null ; then 34 | export CC=$cc 35 | break 36 | fi 37 | done 38 | -------------------------------------------------------------------------------- /lustre/kernel_patches/txt/dev_read_only.txt: -------------------------------------------------------------------------------- 1 | DESC 2 | (undescribed patch) 3 | EDESC 4 | -------------------------------------------------------------------------------- /lustre/kernel_patches/txt/exports.txt: -------------------------------------------------------------------------------- 1 | DESC 2 | Required kernel function exports for Lustre. 3 | EDESC 4 | -------------------------------------------------------------------------------- /lustre/kernel_patches/txt/exports_hp.txt: -------------------------------------------------------------------------------- 1 | DESC 2 | Required kernel function exports for Lustre. 3 | EDESC 4 | -------------------------------------------------------------------------------- /lustre/kernel_patches/txt/ext3-2.4.20-fixes.txt: -------------------------------------------------------------------------------- 1 | DESC 2 | Fix for block allocation errors if block bitmap or inode block list is corrupt. 3 | EDESC 4 | -------------------------------------------------------------------------------- /lustre/kernel_patches/txt/ext3-map_inode_page.txt: -------------------------------------------------------------------------------- 1 | DESC 2 | (undescribed patch) 3 | EDESC 4 | -------------------------------------------------------------------------------- /lustre/kernel_patches/txt/ext3-map_inode_page_2.4.18.txt: -------------------------------------------------------------------------------- 1 | DESC 2 | (undescribed patch) 3 | EDESC 4 | -------------------------------------------------------------------------------- /lustre/kernel_patches/txt/invalidate_show.txt: -------------------------------------------------------------------------------- 1 | DESC 2 | Prints which inodes are busy at filesystem unmount time. 3 | EDESC 4 | -------------------------------------------------------------------------------- /lustre/kernel_patches/txt/kmem_cache_validate.txt: -------------------------------------------------------------------------------- 1 | DESC 2 | (undescribed patch) 3 | EDESC 4 | -------------------------------------------------------------------------------- /lustre/kernel_patches/txt/lustre_version.txt: -------------------------------------------------------------------------------- 1 | DESC 2 | (undescribed patch) 3 | EDESC 4 | -------------------------------------------------------------------------------- /lustre/kernel_patches/txt/uml_check_get_page.txt: -------------------------------------------------------------------------------- 1 | DESC 2 | (undescribed patch) 3 | EDESC 4 | -------------------------------------------------------------------------------- /lustre/kernel_patches/txt/uml_no_panic.txt: -------------------------------------------------------------------------------- 1 | DESC 2 | (undescribed patch) 3 | EDESC 4 | -------------------------------------------------------------------------------- /lustre/ldlm/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lustre/lfsck/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := lfsck 2 | lfsck-objs := lfsck_lib.o lfsck_engine.o lfsck_bookmark.o lfsck_namespace.o 3 | lfsck-objs += lfsck_layout.o lfsck_striped_dir.o 4 | 5 | @INCLUDE_RULES@ 6 | -------------------------------------------------------------------------------- /lustre/lfsck/autoMakefile.am: -------------------------------------------------------------------------------- 1 | # 2 | # GPL HEADER START 3 | # 4 | # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 | # 6 | # This program is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License version 2 only, 8 | # as published by the Free Software Foundation. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License version 2 for more details. A copy is 14 | # included in the COPYING file that accompanied this code. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with this program; if not, write to the Free Software 18 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | # 20 | # GPL HEADER END 21 | # 22 | 23 | if MODULES 24 | modulefs_DATA = lfsck$(KMODEXT) 25 | endif 26 | 27 | MOSTLYCLEANFILES := @MOSTLYCLEANFILES@ 28 | EXTRA_DIST := $(lfsck-objs:%.o=%.c) lfsck_internal.h 29 | -------------------------------------------------------------------------------- /lustre/llite/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := lustre 2 | lustre-objs := dcache.o dir.o file.o llite_lib.o llite_nfs.o 3 | lustre-objs += rw.o lproc_llite.o namei.o symlink.o llite_mmap.o 4 | @XATTR_HANDLER_TRUE@lustre-objs += xattr.o 5 | @XATTR_HANDLER_FALSE@lustre-objs += xattr26.o 6 | lustre-objs += xattr_cache.o 7 | lustre-objs += rw26.o super25.o statahead.o xattr_security.o 8 | lustre-objs += glimpse.o 9 | lustre-objs += lcommon_cl.o 10 | lustre-objs += lcommon_misc.o 11 | lustre-objs += vvp_dev.o vvp_page.o vvp_io.o vvp_object.o 12 | lustre-objs += range_lock.o 13 | 14 | EXTRA_DIST := $(lustre-objs:.o=.c) llite_internal.h rw26.c super25.c 15 | EXTRA_DIST += vvp_internal.h range_lock.h 16 | 17 | @XATTR_HANDLER_TRUE@EXTRA_DIST += xattr26.c 18 | @XATTR_HANDLER_FALSE@EXTRA_DIST += xattr.c 19 | 20 | @INCLUDE_RULES@ 21 | -------------------------------------------------------------------------------- /lustre/lmv/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := lmv 2 | lmv-objs := lmv_obd.o lmv_intent.o lmv_fld.o lproc_lmv.o 3 | 4 | @INCLUDE_RULES@ 5 | -------------------------------------------------------------------------------- /lustre/lod/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := lod 2 | lod-objs := lod_dev.o lod_lov.o lproc_lod.o lod_pool.o lod_object.o lod_qos.o \ 3 | lod_sub_object.o 4 | 5 | EXTRA_DIST = $(lod-objs:.o=.c) lod_internal.h 6 | 7 | @INCLUDE_RULES@ 8 | -------------------------------------------------------------------------------- /lustre/lov/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := lov 2 | lov-objs := lov_dev.o \ 3 | lov_ea.o \ 4 | lov_io.o \ 5 | lov_lock.o \ 6 | lov_merge.o \ 7 | lov_obd.o \ 8 | lov_object.o \ 9 | lov_offset.o \ 10 | lov_pack.o \ 11 | lov_page.o \ 12 | lov_pool.o \ 13 | lov_request.o \ 14 | lovsub_dev.o \ 15 | lovsub_object.o \ 16 | lproc_lov.o 17 | 18 | EXTRA_DIST = $(lov-objs:.o=.c) lov_internal.h lov_cl_internal.h 19 | 20 | @INCLUDE_RULES@ 21 | -------------------------------------------------------------------------------- /lustre/mdc/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := mdc 2 | mdc-objs := mdc_request.o \ 3 | mdc_reint.o \ 4 | lproc_mdc.o \ 5 | mdc_lib.o \ 6 | mdc_locks.o \ 7 | mdc_changelog.o \ 8 | mdc_dev.o 9 | 10 | EXTRA_DIST = $(mdc-objs:.o=.c) mdc_internal.h 11 | 12 | @INCLUDE_RULES@ 13 | -------------------------------------------------------------------------------- /lustre/mdd/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := mdd 2 | mdd-objs := mdd_device.o \ 3 | mdd_dir.o \ 4 | mdd_lock.o \ 5 | mdd_lproc.o \ 6 | mdd_object.o \ 7 | mdd_orphans.o \ 8 | mdd_permission.o \ 9 | mdd_trans.o 10 | @INCLUDE_RULES@ 11 | -------------------------------------------------------------------------------- /lustre/mdt/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := mdt 2 | mdt-objs := mdt_handler.o mdt_lib.o mdt_reint.o mdt_xattr.o mdt_recovery.o 3 | mdt-objs += mdt_open.o mdt_identity.o mdt_lproc.o mdt_fs.o mdt_som.o 4 | mdt-objs += mdt_lvb.o mdt_hsm.o mdt_mds.o mdt_io.o 5 | mdt-objs += mdt_hsm_cdt_actions.o 6 | mdt-objs += mdt_hsm_cdt_requests.o 7 | mdt-objs += mdt_hsm_cdt_client.o 8 | mdt-objs += mdt_hsm_cdt_agent.o 9 | mdt-objs += mdt_coordinator.o 10 | 11 | @INCLUDE_RULES@ 12 | -------------------------------------------------------------------------------- /lustre/mgc/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := mgc 2 | mgc-objs := mgc_request.o lproc_mgc.o 3 | 4 | EXTRA_DIST := $(mgc-objs:%.o=%.c) mgc_internal.h 5 | 6 | @INCLUDE_RULES@ 7 | -------------------------------------------------------------------------------- /lustre/mgs/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := mgs 2 | mgs-objs := mgs_handler.o mgs_fs.o mgs_llog.o lproc_mgs.o mgs_nids.o 3 | mgs-objs += mgs_barrier.o 4 | 5 | EXTRA_DIST := $(mgs-objs:%.o=%.c) mgs_internal.h 6 | 7 | @INCLUDE_RULES@ 8 | -------------------------------------------------------------------------------- /lustre/nodist: -------------------------------------------------------------------------------- 1 | obd-*/obd-* 2 | CVS 3 | *~ 4 | make.rules 5 | config.* 6 | *.o 7 | *.orig 8 | *.backup 9 | .depfiles 10 | -------------------------------------------------------------------------------- /lustre/obdclass/autoMakefile.am: -------------------------------------------------------------------------------- 1 | if MODULES 2 | 3 | if LINUX 4 | modulefs_DATA = obdclass$(KMODEXT) 5 | if TESTS 6 | modulefs_DATA += llog_test$(KMODEXT) 7 | endif # TESTS 8 | endif # LINUX 9 | 10 | endif # MODULES 11 | 12 | MOSTLYCLEANFILES := @MOSTLYCLEANFILES@ 13 | -------------------------------------------------------------------------------- /lustre/obdecho/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := obdecho 2 | obdecho-objs := echo_client.o 3 | @SERVER_TRUE@obdecho-objs += echo.o 4 | 5 | EXTRA_DIST = $(obdecho-objs:%.o=%.c) echo_internal.h 6 | @SERVER_FALSE@EXTRA_DIST += echo.c 7 | 8 | @INCLUDE_RULES@ 9 | -------------------------------------------------------------------------------- /lustre/ofd/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := ofd 2 | 3 | ofd-objs := ofd_dev.o ofd_obd.o ofd_fs.o ofd_trans.o ofd_objects.o ofd_io.o 4 | ofd-objs += lproc_ofd.o ofd_dlm.o ofd_lvb.o 5 | 6 | EXTRA_DIST = $(ofd-objs:%.o=%.c) ofd_internal.h 7 | 8 | @INCLUDE_RULES@ 9 | -------------------------------------------------------------------------------- /lustre/osc/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := osc 2 | osc-objs := osc_request.o lproc_osc.o osc_dev.o osc_object.o osc_page.o osc_lock.o osc_io.o osc_quota.o osc_cache.o 3 | 4 | EXTRA_DIST = $(osc-objs:%.o=%.c) osc_internal.h 5 | 6 | @INCLUDE_RULES@ 7 | -------------------------------------------------------------------------------- /lustre/osd-ldiskfs/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := osd_ldiskfs 2 | osd_ldiskfs-objs = osd_handler.o osd_oi.o osd_lproc.o osd_iam.o \ 3 | osd_iam_lfix.o osd_iam_lvar.o osd_io.o osd_compat.o \ 4 | osd_scrub.o osd_dynlocks.o osd_quota.o osd_quota_fmt.o 5 | 6 | @PATCHED_INTEGRITY_INTF@osd_ldiskfs-objs += osd_integrity.o 7 | 8 | EXTRA_PRE_CFLAGS := -I@LINUX@/fs -I@abs_top_builddir@ -I@abs_top_builddir@/ldiskfs 9 | 10 | @INCLUDE_RULES@ 11 | -------------------------------------------------------------------------------- /lustre/osd-ldiskfs/osd_dynlocks.h: -------------------------------------------------------------------------------- 1 | #ifndef _OSD_DYNLOCKS_H 2 | #define _OSD_DYNLOCKS_H 3 | 4 | #include 5 | #include 6 | 7 | /* 8 | * lock's namespace: 9 | * - list of locks 10 | * - lock to protect this list 11 | */ 12 | struct dynlock { 13 | unsigned dl_magic; 14 | struct list_head dl_list; 15 | spinlock_t dl_list_lock; 16 | }; 17 | 18 | enum dynlock_type { 19 | DLT_WRITE, 20 | DLT_READ 21 | }; 22 | 23 | struct dynlock_handle { 24 | unsigned dh_magic; 25 | struct list_head dh_list; 26 | unsigned long dh_value; /* lock value */ 27 | int dh_refcount; /* number of users */ 28 | int dh_readers; 29 | int dh_writers; 30 | int dh_pid; /* holder of the lock */ 31 | wait_queue_head_t dh_wait; 32 | }; 33 | 34 | void dynlock_init(struct dynlock *dl); 35 | struct dynlock_handle *dynlock_lock(struct dynlock *dl, unsigned long value, 36 | enum dynlock_type lt, gfp_t gfp); 37 | void dynlock_unlock(struct dynlock *dl, struct dynlock_handle *lock); 38 | int dynlock_is_locked(struct dynlock *dl, unsigned long value); 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /lustre/osd-zfs/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := osd_zfs 2 | osd_zfs-objs := osd_handler.o osd_lproc.o osd_quota.o 3 | osd_zfs-objs += osd_object.o osd_io.o osd_oi.o osd_xattr.o osd_index.o 4 | osd_zfs-objs += osd_scrub.o 5 | 6 | @SPL_ENABLED_TRUE@EXTRA_PRE_CFLAGS += -include @SPL_OBJ@/spl_config.h 7 | @SPL_ENABLED_TRUE@EXTRA_PRE_CFLAGS += -I@SPL@ -I@SPL@/include 8 | EXTRA_PRE_CFLAGS += -include @ZFS_OBJ@/zfs_config.h 9 | EXTRA_PRE_CFLAGS += -I@ZFS@ -I@ZFS@/include 10 | @SPL_ENABLED_FALSE@EXTRA_PRE_CFLAGS += -I@ZFS@/include/spl 11 | 12 | @INCLUDE_RULES@ 13 | -------------------------------------------------------------------------------- /lustre/osp/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES = osp 2 | osp-objs = osp_dev.o osp_object.o osp_precreate.o osp_sync.o lproc_osp.o 3 | osp-objs += lwp_dev.o osp_md_object.o osp_trans.o 4 | 5 | EXTRA_DIST = $(osp-objs:.o=.c) osp_internal.h 6 | 7 | @INCLUDE_RULES@ 8 | -------------------------------------------------------------------------------- /lustre/ost/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := ost 2 | ost-objs := ost_handler.o 3 | 4 | EXTRA_DIST = $(ost-objs:%.o=%.c) ost_internal.h 5 | 6 | @INCLUDE_RULES@ 7 | -------------------------------------------------------------------------------- /lustre/ptlrpc/gss/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := ptlrpc_gss 2 | 3 | ptlrpc_gss-objs := sec_gss.o gss_bulk.o gss_cli_upcall.o gss_svc_upcall.o \ 4 | gss_rawobj.o lproc_gss.o \ 5 | gss_generic_token.o gss_mech_switch.o gss_krb5_mech.o \ 6 | gss_null_mech.o gss_crypto.o 7 | 8 | @GSS_SSK_TRUE@ptlrpc_gss-objs += gss_sk_mech.o 9 | @GSS_KEYRING_TRUE@ptlrpc_gss-objs += gss_keyring.o 10 | @GSS_PIPEFS_TRUE@ptlrpc_gss-objs += gss_pipefs.o 11 | 12 | default: all 13 | 14 | @INCLUDE_RULES@ 15 | -------------------------------------------------------------------------------- /lustre/quota/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := lquota 2 | 3 | quota-objs := lproc_quota.o lquota_lib.o lquota_disk.o lquota_entry.o 4 | 5 | qmt-objs := qmt_dev.o qmt_handler.o qmt_lock.o qmt_entry.o qmt_pool.o 6 | 7 | qsd-objs := qsd_lib.o qsd_request.o qsd_entry.o qsd_lock.o 8 | qsd-objs += qsd_reint.o qsd_writeback.o qsd_config.o qsd_handler.o 9 | 10 | lquota-objs := $(quota-objs) $(qsd-objs) $(qmt-objs) 11 | 12 | EXTRA_DIST := $(lquota-objs:%.o=%.c) 13 | EXTRA_DIST += lquota_internal.h qsd_internal.h qmt_internal.h 14 | 15 | @INCLUDE_RULES@ 16 | -------------------------------------------------------------------------------- /lustre/scripts/.gitignore: -------------------------------------------------------------------------------- 1 | /lustre.spec 2 | /Makefile.in 3 | /version_tag.pl 4 | /lc_net.sh 5 | /lc_modprobe.sh 6 | /lc_hb.sh 7 | /lc_cluman.sh 8 | /lc_md.sh 9 | /lc_lvm.sh 10 | /lc_cluman 11 | /lc_hb 12 | /lc_lvm 13 | /lc_md 14 | /lc_modprobe 15 | /lc_net 16 | /lnet 17 | /lustre 18 | /lustre_start 19 | /tree_status.pl 20 | -------------------------------------------------------------------------------- /lustre/scripts/bash-completion/lctl: -------------------------------------------------------------------------------- 1 | lustre -------------------------------------------------------------------------------- /lustre/scripts/bash-completion/lfs: -------------------------------------------------------------------------------- 1 | lustre -------------------------------------------------------------------------------- /lustre/scripts/haconfig: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # haconfig - config helper to process heartbeat V1 config skel files 4 | 5 | local=`uname -n` 6 | 7 | [ -x /usr/sbin/ldev ] || exit 0 8 | foreign=`/usr/sbin/ldev -p` 9 | [ -n "$foreign" ] || exit 0 10 | 11 | 12 | umask 022 13 | 14 | for file in /etc/ha.d/haresources /etc/ha.d/ha.cf; do 15 | if [ -r ${file}.in ]; then 16 | sed -e "s!@LOCAL@!$local!g" -e "s!@FOREIGN@!$foreign!g" \ 17 | < ${file}.in >${file} 18 | fi 19 | done 20 | 21 | exit 0 22 | -------------------------------------------------------------------------------- /lustre/scripts/ko2iblnd-probe: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # flags of IB devices which present 4 | HFI=0 5 | QIB=0 6 | 7 | # no profile name by default 8 | PROFILE="" 9 | 10 | INFINIBAND="/sys/class/infiniband" 11 | 12 | if [ -d $INFINIBAND ]; then 13 | for dev in `ls -d $INFINIBAND/* | sed -e "s#^$INFINIBAND/##" -e 's#_[0-9]*$##'`; do 14 | ver=`echo $dev | sed -ne 's#[^0-9]*##p'` 15 | case $dev in 16 | hfi*) HFI=1 ;; 17 | qib*) QIB=1 ;; 18 | esac 19 | done 20 | 21 | # Set profile name according priority 22 | if [ $HFI -ne 0 ]; then 23 | PROFILE="-opa" 24 | elif [ $QIB -ne 0 ]; then 25 | PROFILE="-opa" 26 | fi 27 | fi 28 | 29 | exec /sbin/modprobe --ignore-install ko2iblnd$PROFILE $CMDLINE_OPTS 30 | -------------------------------------------------------------------------------- /lustre/scripts/license-status: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # license-status - Display the status of files in the current directory 3 | # Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. 4 | # 5 | # This code is issued under the GNU General Public License. 6 | # See the file COPYING in this distribution 7 | # 8 | # Gordon Matzigkeit , 2001-09-27 9 | 10 | for f in `find . -type f | sort`; do 11 | case "$f" in 12 | *~ | *.orig | *.gz | */config.* | *.o | \ 13 | */CVS/* | */.cvsignore | */.depfiles/* | \ 14 | */COPYING | */ChangeLog) 15 | continue 16 | ;; 17 | esac 18 | 19 | if head -20 "$f" | egrep -e 'GNU' > /dev/null; then 20 | echo "gpled $f" 21 | elif head -20 "$f" | egrep -e '\([Cc]\)' > /dev/null; then 22 | echo "copyrighted $f" 23 | else 24 | echo "bare $f" 25 | fi 26 | done | sort 27 | -------------------------------------------------------------------------------- /lustre/scripts/lsvcgss: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # lsvcgss Lustre GSS daemon 4 | # 5 | # chkconfig: 2345 10 90 6 | # description: start and stop the lsvcgssd daemon 7 | # 8 | 9 | # Source function library. 10 | . /etc/init.d/functions 11 | 12 | LOCKFILE="/var/lock/subsys/lsvcgssd" 13 | # -k -- Enable kerberos support 14 | # -s -- Enable shared key support 15 | LSVCGSSDARGS="-k -s" 16 | 17 | # Check for and source configuration file 18 | [ -f /etc/sysconfig/lsvcgss ] && . /etc/sysconfig/lsvcgss 19 | 20 | # See how we were called. 21 | case "$1" in 22 | start) 23 | echo $"Starting lsvcgssd" 24 | /usr/sbin/lsvcgssd ${LSVCGSSDARGS} 25 | RETVAL=$? 26 | [ $RETVAL -eq 0 ] && touch $LOCKFILE 27 | ;; 28 | stop) 29 | echo $"Stopping lsvcgssd" 30 | killall lsvcgssd 31 | RETVAL=$? 32 | [ $RETVAL -eq 0 ] && rm -f $LOCKFILE 33 | ;; 34 | status) 35 | status lsvcgssd 36 | RETVAL=$? 37 | ;; 38 | restart|reload) 39 | $0 stop 40 | $0 start 41 | RETVAL=$? 42 | ;; 43 | *) 44 | echo $"Usage: $0 {start|stop|restart|reload|status}" 45 | exit 1 46 | esac 47 | 48 | exit $RETVAL 49 | -------------------------------------------------------------------------------- /lustre/scripts/systemd/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | /lnet.service 3 | -------------------------------------------------------------------------------- /lustre/scripts/systemd/Makefile.am: -------------------------------------------------------------------------------- 1 | # These are scripts that are generated from .in files 2 | genunitfiles = lnet.service 3 | 4 | if HAVE_SYSTEMD 5 | systemdsystemunit_DATA = lnet.service 6 | endif 7 | 8 | EXTRA_DIST = $(addsuffix .in,$(genunitfiles)) 9 | 10 | CLEANFILES = $(genunitfiles) 11 | 12 | $(genunitfiles): %: %.in 13 | sed -e 's,@sbindir\@,$(sbindir),g' \ 14 | -e 's,@sysconfdir\@,$(sysconfdir),g' $< > $@ 15 | -------------------------------------------------------------------------------- /lustre/scripts/systemd/lnet.service.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=lnet management 3 | 4 | Requires=network-online.target 5 | After=network-online.target openibd.service rdma.service opa.service 6 | 7 | ConditionPathExists=!/proc/sys/lnet/ 8 | 9 | [Service] 10 | Type=oneshot 11 | RemainAfterExit=true 12 | ExecStart=/sbin/modprobe lnet 13 | ExecStart=@sbindir@/lnetctl lnet configure 14 | ExecStart=@sbindir@/lnetctl import @sysconfdir@/lnet.conf 15 | ExecStop=@sbindir@/lustre_rmmod ptlrpc 16 | ExecStop=@sbindir@/lnetctl lnet unconfigure 17 | ExecStop=@sbindir@/lustre_rmmod libcfs ldiskfs 18 | 19 | [Install] 20 | WantedBy=multi-user.target 21 | -------------------------------------------------------------------------------- /lustre/scripts/vdev_attach-lustre.sh: -------------------------------------------------------------------------------- 1 | statechange-lustre.sh -------------------------------------------------------------------------------- /lustre/scripts/vdev_clear-lustre.sh: -------------------------------------------------------------------------------- 1 | statechange-lustre.sh -------------------------------------------------------------------------------- /lustre/scripts/vdev_remove-lustre.sh: -------------------------------------------------------------------------------- 1 | statechange-lustre.sh -------------------------------------------------------------------------------- /lustre/target/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /lustre/tests/.RC_CURRENT.tag: -------------------------------------------------------------------------------- 1 | RC_1_3_0_30 2 | -------------------------------------------------------------------------------- /lustre/tests/acceptance-small.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # usage: acceptance-small.sh [test list] 4 | # if no tests are specified, they are taken from test-groups/regression 5 | # if {TEST_NAME}=no is set, that test script is skipped 6 | DEFAULT_SUITES="${@:-$ACC_SM_ONLY}" 7 | DEFAULT_SUITES="${DEFAULT_SUITES:-$(cat test-groups/regression)}" 8 | for SUB in $DEFAULT_SUITES; do 9 | ENV=$(echo $SUB | tr "[:lower:]-" "[:upper:]_") 10 | [ "$(eval echo \$$ENV)" = "no" ] && continue 11 | SUITES="$SUITES $SUB" 12 | done 13 | sh auster -r -R -v -f ${NAME:-lustre} $SUITES 14 | -------------------------------------------------------------------------------- /lustre/tests/acl/2561.test: -------------------------------------------------------------------------------- 1 | LU-2561 newly created file is same size as directory 2 | 3 | $ mkdir -p 2561 4 | $ cd 2561 5 | $ getfacl --access . | setfacl -d -M- . 6 | $ touch f1 7 | $ stat -c '%s' f1 8 | > 0 9 | $ cd .. 10 | $ rm -rf 2561 11 | 12 | -------------------------------------------------------------------------------- /lustre/tests/acl/2561_zfs.test: -------------------------------------------------------------------------------- 1 | LU-2561 newly created file is same size as directory 2 | 3 | $ mkdir -p 2561 4 | $ cd 2561 5 | $ getfacl --access . | setfacl -d -M- . 6 | $ touch f1 7 | $ stat -c '%s' f1 8 | > 0 9 | $ cd .. 10 | $ rm -rf 2561 11 | 12 | -------------------------------------------------------------------------------- /lustre/tests/acl/4924.test: -------------------------------------------------------------------------------- 1 | LU-4924 - chmod g+s, touch should not clear sgid bit 2 | 3 | $ mkdir 4924 4 | $ cd 4924 5 | $ touch f 6 | $ chmod u=rwx,g=rwxs f 7 | $ ls -l f | awk -- '{sub(/\\./, "", $1); print $1, $3, $4 }' 8 | > -rwxrwsr-- root root 9 | $ touch f 10 | $ ls -l f | awk -- '{sub(/\\./, "", $1); print $1, $3, $4 }' 11 | > -rwxrwsr-- root root 12 | $ cd .. 13 | $ rm -rf 4924 14 | -------------------------------------------------------------------------------- /lustre/tests/acl/974.test: -------------------------------------------------------------------------------- 1 | LU-974 ignore umask when default acl with mask is set 2 | 3 | $ umask 022 4 | $ mkdir 974 5 | 6 | $ touch 974/f1 7 | $ ls -dl 974/f1 | awk '{sub(/\\./, "", $1); print $1 }' 8 | > -rw-r--r-- 9 | 10 | $ setfacl -R -d -m mask:007 974 11 | $ touch 974/f2 12 | $ ls -dl 974/f2 | awk '{ print $1 }' 13 | > -rw-rw-r--+ 14 | 15 | $ umask 077 16 | $ touch f3 17 | $ ls -dl f3 | awk '{sub(/\\./, "", $1); print $1 }' 18 | > -rw------- 19 | 20 | $ rm -rf 974 21 | -------------------------------------------------------------------------------- /lustre/tests/acl/974_remote.test: -------------------------------------------------------------------------------- 1 | LU-974 ignore umask when default acl with mask is set 2 | # Need to remove trailing '.' when SELinux is enabled 3 | 4 | $ umask 022 5 | $ lfs mkdir -i 1 974 6 | 7 | $ touch 974/f1 8 | $ ls -dl 974/f1 | awk '{ sub(/\\.$/, "", $1); print $1 }' 9 | > -rw-r--r-- 10 | 11 | $ setfacl -R -d -m mask:007 974 12 | $ touch 974/f2 13 | $ ls -dl 974/f2 | awk '{ sub(/\\.$/, "", $1); print $1 }' 14 | > -rw-rw-r--+ 15 | 16 | $ umask 077 17 | $ touch f3 18 | $ ls -dl f3 | awk '{ sub(/\\.$/, "", $1); print $1 }' 19 | > -rw------- 20 | 21 | $ rm -rf 974 22 | 23 | -------------------------------------------------------------------------------- /lustre/tests/acl/README: -------------------------------------------------------------------------------- 1 | - copied from acl-2.2.23/test/ 2 | - add inheritance.test from HP 3 | - some tests are depend on enviroment. e.g. some succeed on FC2 but fail on 4 | FC3 etc. We comment out those items, maybe more will be commented out. 5 | -------------------------------------------------------------------------------- /lustre/tests/acl/cp.test: -------------------------------------------------------------------------------- 1 | The cp utility should only copy ACLs if `-p' is given. 2 | 3 | $ umask 022 4 | $ mkdir d 5 | $ cd d 6 | $ touch f 7 | $ setfacl -m u:bin:rw f 8 | $ ls -l f | awk -- '{ print $1 }' 9 | > -rw-rw-r--+ 10 | 11 | $ cp f g 12 | $ ls -l g | awk -- '{sub(/\\./, "", $1); print $1 }' 13 | > -rw-r--r-- 14 | 15 | $ rm g 16 | $ cp -p f g 17 | $ ls -l f | awk -- '{ print $1 }' 18 | > -rw-rw-r--+ 19 | 20 | $ mkdir h 21 | $ echo blubb > h/x 22 | $ cp -rp h i 23 | $ cat i/x 24 | > blubb 25 | 26 | $ rm -r i 27 | 28 | Use to be "$setfacl -R -m u:bin:rwX h", but RHEL4 uncorrectly set the x flag, 29 | so we change to the following test 30 | 31 | $ setfacl -R -m u:bin:rwx h 32 | $ getfacl --omit-header h/x 33 | > user::rw- 34 | > user:bin:rwx 35 | > group::r-- 36 | > mask::rwx 37 | > other::r-- 38 | > 39 | 40 | $ cp -rp h i 41 | $ getfacl --omit-header i/x 42 | > user::rw- 43 | > user:bin:rwx 44 | > group::r-- 45 | > mask::rwx 46 | > other::r-- 47 | > 48 | 49 | $ cd .. 50 | $ rm -r d 51 | -------------------------------------------------------------------------------- /lustre/tests/acl/make-tree: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # reduce LEVELS from 3 => 2 by CFS 4 | LEVELS=2 ; [ -z "$1" ] || LEVELS=$1 5 | DIRS=10 ; [ -z "$2" ] || DIRS=$2 6 | FILES=10 ; [ -z "$2" ] || FILES=$3 7 | NUMBER_OF_ACLS=50 ; [ -z "$3" ] || NUMBER_OF_ACLS=$4 8 | 9 | function random_dir() { 10 | mkdir -p $1 11 | #setfacl -s "u::rwx,u:$[($RANDOM % $NUMBER_OF_ACLS)+1000]:rwx,g::rx,o:-" $1 12 | } 13 | 14 | function random_file() { 15 | touch $1 16 | #setfacl -s "u::rw,u:$[($RANDOM % $NUMBER_OF_ACLS)+1000]:rw,g::r,o:-" $1 17 | } 18 | 19 | function create () { 20 | local LEVEL=$1 21 | if [ $LEVEL -eq 0 ]; then 22 | local I=0 23 | while [ $I -lt $FILES ]; do 24 | random_file file$I 25 | I=$[$I+1] 26 | done 27 | else 28 | local I=0 29 | while [ $I -lt $DIRS ]; do 30 | random_dir dir$I 31 | cd dir$I 32 | create $[$LEVEL-1] 33 | cd .. 34 | I=$[$I+1] 35 | done 36 | fi 37 | return 38 | } 39 | 40 | mkdir -p tree 41 | cd tree 42 | create $LEVELS 43 | cd .. 44 | exit 0 45 | 46 | -------------------------------------------------------------------------------- /lustre/tests/compile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -evx 3 | 4 | MOUNT=${MOUNT:-/mnt/lustre} 5 | DIR=${DIR:-$MOUNT} 6 | SRC=${SRC:-`dirname $0`/../..} 7 | export CC=${CC:-gcc} 8 | while date; do 9 | for i in lustre; do 10 | TGT=$DIR/$i 11 | [ -d $TGT ] || cp -av $SRC/$i/ $TGT 12 | make -C $TGT clean 13 | make -C $TGT -j2 14 | make -C $TGT clean 15 | done 16 | done 17 | -------------------------------------------------------------------------------- /lustre/tests/disk2_4-ldiskfs.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/disk2_4-ldiskfs.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/disk2_4-zfs.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/disk2_4-zfs.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/disk2_5-ldiskfs.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/disk2_5-ldiskfs.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/disk2_7-ldiskfs.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/disk2_7-ldiskfs.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/disk2_7-zfs.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/disk2_7-zfs.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/disk2_9-ldiskfs.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/disk2_9-ldiskfs.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/disk2_9-zfs.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/disk2_9-zfs.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/iam_ut: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/iam_ut -------------------------------------------------------------------------------- /lustre/tests/kernel/Makefile.in: -------------------------------------------------------------------------------- 1 | MODULES := kinode 2 | 3 | EXTRA_DIST = kinode.c 4 | 5 | @INCLUDE_RULES@ 6 | -------------------------------------------------------------------------------- /lustre/tests/ldiskfs_mdt1_2_11.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/ldiskfs_mdt1_2_11.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/ldiskfs_mdt2_2_11.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/ldiskfs_mdt2_2_11.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/ldiskfs_ost1_2_11.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/ldiskfs_ost1_2_11.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/ldiskfs_ost2_2_11.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/ldiskfs_ost2_2_11.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/llmount.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | LUSTRE=${LUSTRE:-$(dirname $0)/..} 4 | . $LUSTRE/tests/test-framework.sh 5 | init_test_env $@ 6 | 7 | [ -n "$LOAD" ] && load_modules && exit 0 8 | [ -z "$NOFORMAT" ] && formatall 9 | [ -z "$NOSETUP" ] && setupall 10 | -------------------------------------------------------------------------------- /lustre/tests/llmountcleanup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | LUSTRE=${LUSTRE:-$(dirname $0)/..} 4 | . $LUSTRE/tests/test-framework.sh 5 | init_test_env $@ 6 | 7 | cleanupall -f 8 | -------------------------------------------------------------------------------- /lustre/tests/maloo_upload.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | FILENAME=$1 6 | 7 | if [ -r ~/.maloorc ] ; then 8 | source ~/.maloorc 9 | else 10 | echo "Error: ~/.maloorc not found." \ 11 | "Please obtain this file from the maloo web interface," \ 12 | "under 'Upload results'" 13 | exit 1 14 | fi 15 | 16 | if [ -z $FILENAME ] ; then 17 | echo "Usage: ${0} " 18 | exit 2 19 | fi 20 | 21 | if [ ! -r $FILENAME ] ; then 22 | echo "Input file '$FILENAME' not found" 23 | exit 3 24 | fi 25 | 26 | echo Uploading $FILENAME to $MALOO_URL 27 | if [ -d $FILENAME ] ; then 28 | pushd $FILENAME 29 | tar czf upload.tar.gz * | 30 | curl -F "user_id=${MALOO_USER_ID}" -F "upload=@upload.tar.gz" \ 31 | -F "user_upload_token=${MALOO_UPLOAD_TOKEN}" ${MALOO_URL} \ 32 | > /dev/null 33 | popd 34 | else 35 | curl -F "user_id=${MALOO_USER_ID}" -F "upload=@${FILENAME}" \ 36 | -F "user_upload_token=${MALOO_UPLOAD_TOKEN}" ${MALOO_URL} \ 37 | > /dev/null 38 | fi 39 | echo Complete. 40 | -------------------------------------------------------------------------------- /lustre/tests/mmp_mark.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # this will cause debugfs to create the /tmp/debugfs.mark file once it has 3 | # passed the MMP startup, then continue reading input until it is killed 4 | MARKFILE=$(mktemp) 5 | DEBUGFS=${DEBUGFS:-debugfs} 6 | DEVICE=$1 7 | 8 | rm -f $MARKFILE 9 | echo "$DEBUGFS -w $DEVICE" 10 | { echo "dump_inode <2> $MARKFILE"; cat /dev/zero; } | $DEBUGFS -w $DEVICE & 11 | debugfspid=$! 12 | while [ ! -e $MARKFILE ]; do 13 | sleep 1 14 | done 15 | rm -f $MARKFILE 16 | kill -9 $debugfspid 17 | -------------------------------------------------------------------------------- /lustre/tests/mpi/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | /createmany-mpi 3 | /mdsrate 4 | /parallel_grouplock 5 | /rr_alloc 6 | /write_append_truncate 7 | /write_disjoint 8 | /cascading_rw 9 | /createmany_mpi 10 | /*.log 11 | -------------------------------------------------------------------------------- /lustre/tests/mpi/Makefile.am: -------------------------------------------------------------------------------- 1 | # Lustre MPI test Makefile 2 | AM_CFLAGS := -fPIC -D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64 3 | 4 | CC = @MPICC_WRAPPER@ 5 | 6 | THETESTS = parallel_grouplock write_append_truncate createmany_mpi \ 7 | mdsrate write_disjoint cascading_rw rr_alloc 8 | 9 | if TESTS 10 | if MPITESTS 11 | if RHEL 12 | testdir = @MPI_BIN@ 13 | else 14 | testdir = $(libdir)/lustre/tests 15 | endif 16 | test_PROGRAMS = $(THETESTS) 17 | else 18 | noinst_PROGRAMS = $(THETESTS) 19 | endif 20 | endif 21 | 22 | write_append_truncate_SOURCES=write_append_truncate.c 23 | write_disjoint_SOURCES=write_disjoint.c 24 | createmany_mpi_SOURCES=createmany-mpi.c 25 | parallel_grouplock_SOURCES=parallel_grouplock.c lp_utils.c lp_utils.h 26 | rr_alloc_SOURCES=rr_alloc.c 27 | 28 | cascading_rw_SOURCES=cascading_rw.c lp_utils.c lp_utils.h 29 | cascading_rw_LDADD=$(top_builddir)/lustre/utils/liblustreapi.la 30 | 31 | mdsrate_SOURCES=mdsrate.c 32 | mdsrate_LDADD=$(top_builddir)/lustre/utils/liblustreapi.la 33 | -------------------------------------------------------------------------------- /lustre/tests/parallel-scale-nfsv3.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #set -vx 4 | 5 | LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)} 6 | . $LUSTRE/tests/test-framework.sh 7 | init_test_env $@ 8 | 9 | sh $LUSTRE/tests/parallel-scale-nfs.sh 3 10 | -------------------------------------------------------------------------------- /lustre/tests/parallel-scale-nfsv4.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #set -vx 4 | 5 | LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)} 6 | . $LUSTRE/tests/test-framework.sh 7 | init_test_env $@ 8 | 9 | sh $LUSTRE/tests/parallel-scale-nfs.sh 4 10 | -------------------------------------------------------------------------------- /lustre/tests/racer/dir_create.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | create(){ 8 | echo "asdf" > $DIR/$file/$file/$file 9 | } 10 | 11 | while /bin/true ; do 12 | file=$((RANDOM % MAX)) 13 | mkdir -p $DIR/$file/$file/ 2> /dev/null 14 | create 2> /dev/null 15 | done 16 | -------------------------------------------------------------------------------- /lustre/tests/racer/dir_migrate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | MDTCOUNT=${MDSCOUNT:-$($LFS df $DIR 2> /dev/null | grep -c MDT)} 8 | while /bin/true ; do 9 | migrate_dir=$((RANDOM % MAX)) 10 | file=$((RANDOM % MAX)) 11 | mdt_idx=$((RANDOM % MDTCOUNT)) 12 | mkdir -p $DIR/$migrate_dir 2> /dev/null 13 | $LFS mv -M$mdt_idx $DIR/$migrate_dir 2> /dev/null 14 | touch $DIR/$migrate_dir/$file 2> /dev/null 15 | $LFS getdirstripe $DIR/$migrate_dir > /dev/null 2>&1 16 | done 17 | -------------------------------------------------------------------------------- /lustre/tests/racer/dir_remote.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | MDTCOUNT=${MDSCOUNT:-$($LFS df $DIR 2> /dev/null | grep -c MDT)} 8 | while /bin/true ; do 9 | remote_dir=$((RANDOM % MAX)) 10 | file=$((RANDOM % MAX)) 11 | mdt_idx=$((RANDOM % MDTCOUNT)) 12 | 13 | if $RACER_ENABLE_STRIPED_DIRS; then 14 | # stripe_count in range [1,MDTCOUNT] 15 | # $LFS mkdir treats stripe_count 0 and 1 the same 16 | stripe_count_opt="-c$((RANDOM % MDTCOUNT + 1))" 17 | else 18 | stripe_count_opt="" 19 | fi 20 | 21 | $LFS mkdir -i$mdt_idx $stripe_count_opt $DIR/$remote_dir 2> /dev/null 22 | touch $DIR/$remote_dir/$file 2> /dev/null 23 | $LFS getdirstripe $DIR/$remote_dir > /dev/null 2>&1 24 | done 25 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_chmod.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | while true; do 8 | file=$DIR/$((RANDOM % MAX)) 9 | mode=$(printf '%o' $((RANDOM % 010000))) 10 | chmod $mode $file 2> /dev/null 11 | done 12 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_chown.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | while true; do 8 | file=$DIR/$((RANDOM % MAX)) 9 | chown $RANDOM:$RANDOM $file 2> /dev/null 10 | done 11 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_concat.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | concat(){ 8 | cat $DIR/$file >> $DIR/$new_file 9 | cat $DIR/$file/$file/$file >> $DIR/$new_file 10 | 11 | } 12 | 13 | while /bin/true ; do 14 | file=$((RANDOM % MAX)) 15 | new_file=$((RANDOM % MAX)) 16 | concat 2> /dev/null 17 | done 18 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_delxattr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | while true; do 8 | file=$DIR/$((RANDOM % MAX)) 9 | attr=user.$((RANDOM % MAX)) 10 | setfattr -x $attr $file 2>/dev/null 11 | done 12 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_exec.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | org_LANG=$LANG 5 | export LANG=C 6 | 7 | DIR=$1 8 | MAX=$2 9 | PROG=/bin/sleep 10 | 11 | while /bin/true ; do 12 | file=$((RANDOM % MAX)) 13 | cp -p $PROG $DIR/$file > /dev/null 2>&1 14 | $DIR/$file 0.$((RANDOM % 5 + 1)) 2> /dev/null 15 | sleep $((RANDOM % 3)) 16 | done 2>&1 | egrep -v "Segmentation fault|Bus error" 17 | 18 | export LANG=$org_LANG 19 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_getxattr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | while true; do 8 | file=$DIR/$((RANDOM % MAX)) 9 | getfattr -d -m- $file &> /dev/null 10 | done 11 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_link.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | while true; do 8 | old_path=$DIR/$((RANDOM % MAX)) 9 | new_path=$DIR/$((RANDOM % MAX)) 10 | ln $old_path $new_path 2> /dev/null 11 | done 12 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_list.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | while /bin/true ; do 8 | ls -R $DIR/ > /dev/null 2> /dev/null & 9 | ls -R $DIR/ > /dev/null 2> /dev/null & 10 | ls -R $DIR/ > /dev/null 2> /dev/null & 11 | ls -R $DIR/ > /dev/null 2> /dev/null & 12 | ls -R $DIR/ > /dev/null 2> /dev/null & 13 | 14 | ls -R $DIR/ > /dev/null 2> /dev/null & 15 | ls -R $DIR/ > /dev/null 2> /dev/null & 16 | ls -R $DIR/ > /dev/null 2> /dev/null & 17 | ls -R $DIR/ > /dev/null 2> /dev/null & 18 | ls -R $DIR/ > /dev/null 2> /dev/null & 19 | 20 | wait 21 | sleep 1 22 | done 23 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_mknod.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | MCREATE=${MCREATE:-$LUSTRE/tests/mcreate} 8 | 9 | while true; do 10 | file=$DIR/$((RANDOM % MAX)) 11 | $MCREATE $file 2> /dev/null 12 | done 13 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_rename.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | while /bin/true ; do 8 | file=$((RANDOM % MAX)) 9 | new_file=$((RANDOM % MAX)) 10 | mv $DIR/$file $DIR/$new_file 2> /dev/null 11 | done 12 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_rm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | while /bin/true ; do 8 | file=$((RANDOM % MAX)) 9 | rm -rf $DIR/$file 2> /dev/null 10 | sleep 1 11 | done 12 | 13 | 14 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_setxattr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | while true; do 8 | file=$DIR/$((RANDOM % MAX)) 9 | attr=user.$((RANDOM % MAX)) 10 | value=$RANDOM$RANDOM$RANDOM$RANDOM$RANDOM$RANDOM$RANDOM$RANDOM$RANDOM 11 | setfattr -n $attr -v $value $file 2> /dev/null 12 | done 13 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_swap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | while : ; do 8 | file=$((RANDOM % $MAX)) 9 | new_file=$((RANDOM % MAX)) 10 | $LFS swap_layouts $DIR/$file $DIR/$new_file 2>/dev/null 11 | done 12 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_symlink.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | while /bin/true ; do 8 | file=$((RANDOM % MAX)) 9 | new_file=$((RANDOM % MAX)) 10 | ln -s $file $DIR/$new_file 2> /dev/null 11 | ln -s $file/$file/$file $DIR/$new_file 2> /dev/null 12 | done 13 | -------------------------------------------------------------------------------- /lustre/tests/racer/file_truncate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | DIR=$1 5 | MAX=$2 6 | 7 | TRUNCATE=${TRUNCATE:-$LUSTRE/tests/truncate} 8 | 9 | while true; do 10 | file=$DIR/$((RANDOM % MAX)) 11 | $TRUNCATE $file $RANDOM 2> /dev/null 12 | done 13 | -------------------------------------------------------------------------------- /lustre/tests/racer/lss_create.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | LUSTRE=${LUSTRE:-$(cd $(dirname $0)/../..; echo $PWD)} 5 | . $LUSTRE/tests/test-framework.sh 6 | . ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} 7 | 8 | while /bin/true; do 9 | lsnapshot_create -n lss_$RANDOM || true 10 | sleep $((RANDOM % 9 + 11)) 11 | done 12 | -------------------------------------------------------------------------------- /lustre/tests/racer/lss_destroy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | trap 'kill $(jobs -p)' EXIT 3 | 4 | LUSTRE=${LUSTRE:-$(cd $(dirname $0)/../..; echo $PWD)} 5 | . $LUSTRE/tests/test-framework.sh 6 | . ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} 7 | 8 | while /bin/true; do 9 | sleep $((RANDOM % 9 + 11)) 10 | ssname=$(do_facet mgs "$LCTL snapshot_list -F $FSNAME 2>/dev/null" | 11 | awk '/snapshot_name.*lss_/ { print $2; exit; }') 12 | [ ! -z "$ssname" ] && lsnapshot_destroy -n $ssname -f || true 13 | done 14 | -------------------------------------------------------------------------------- /lustre/tests/resolveip: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | =pod 3 | 4 | =head1 NAME 5 | 6 | resolveip - Resolve IP address for given hostname 7 | 8 | =head1 DESCRIPTION 9 | 10 | Tries to resolve IP address of given hostname and return its value, 11 | returns empty value if unable to detect it. 12 | 13 | =cut 14 | 15 | use Socket; 16 | $hostname = $ARGV[0]; 17 | 18 | sub resolve_ip { 19 | ($hostname) = @_; 20 | 21 | return unless defined $hostname; 22 | 23 | $packed_ip = gethostbyname($hostname); 24 | if (defined $packed_ip) { 25 | $ip_address = inet_ntoa($packed_ip); 26 | return $ip_address; 27 | } 28 | } 29 | 30 | $ip = resolve_ip($hostname); 31 | 32 | if (not $ip or $ip eq '') { 33 | print STDERR "Unable to detect ip address for host: '$hostname'\n"; 34 | exit 1; 35 | } 36 | 37 | print $ip; 38 | 39 | exit 0; 40 | -------------------------------------------------------------------------------- /lustre/tests/rpc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export PATH=`dirname $0`/../utils:$PATH 3 | NAME=${NAME:-local} 4 | 5 | LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)} 6 | 7 | if [ ! -f $LUSTRE/tests/rpc.sh ]; then 8 | LUSTRE=$(cd $(dirname $(which $0))/..; echo $PWD) 9 | fi 10 | 11 | . $LUSTRE/tests/test-framework.sh 12 | RPC_MODE=true init_test_env 13 | . ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} 14 | 15 | # Reset the trap on ERR set by the framework. Noticing this failure is the 16 | # framework's job. 17 | trap - ERR 18 | 19 | log "$HOSTNAME: executing $@" 20 | # Execute the command 21 | "$@" 22 | -------------------------------------------------------------------------------- /lustre/tests/run-llog.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)} 4 | . $LUSTRE/tests/test-framework.sh 5 | init_test_env $@ 6 | . ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} 7 | 8 | PATH=$(dirname $0):$LUSTRE/utils:$PATH 9 | TMP=${TMP:-/tmp} 10 | 11 | set -x 12 | MGS=$($LCTL dl | awk '/mgs/ { print $4 }') 13 | [ -z "$MGS" ] && echo "$0: SKIP: no MGS available, skipping llog test" && exit 0 14 | 15 | load_module obdclass/llog_test || exit 1 16 | $LCTL modules > $TMP/ogdb-$(hostname) 17 | echo "NOW reload debugging syms.." 18 | 19 | RC=0 20 | # Using ignore_errors will allow lctl to cleanup even if the test fails. 21 | eval "$LCTL <<-EOF || RC=2 22 | attach llog_test llt_name llt_uuid 23 | ignore_errors 24 | setup $MGS 25 | device llt_name 26 | cleanup 27 | detach 28 | EOF" 29 | rmmod -v llog_test || RC2=3 30 | [ $RC -eq 0 -a "$RC2" ] && RC=$RC2 31 | 32 | exit $RC 33 | -------------------------------------------------------------------------------- /lustre/tests/runiozone: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | [ -z "$SIZE" ] && SIZE=5g 3 | [ -z "$COUNT" ] && COUNT=100 4 | [ -z "$VERIFY" ] && VERIFY="-+d" 5 | #[ -z "$ODIR" ] && ODIR="-I" 6 | [ -z "$REC" ] && REC=64 7 | [ -z "$FILE" ] && FILE=/mnt/lustre/iozone.$$ 8 | [ $1 ] && SIZE=$1 9 | LOOP=0 10 | rm -f endiozone 11 | lctl set_param -n debug=0 12 | while date; do 13 | LOOP=`expr $LOOP + 1` 14 | echo "Test #$LOOP" 15 | iozone $VERIFY $ODIR -r $REC -i 0 -i 1 -f $FILE -s $SIZE 2>&1 || exit $? 16 | [ -f endiozone -o $LOOP -ge $COUNT ] && rm -f endiozone && exit 0 17 | done | tee /tmp/iozone.log 18 | -------------------------------------------------------------------------------- /lustre/tests/runmultiop_bg_pause: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Run multiop in the background, but wait for it to print 4 | # "PAUSING" to its stdout before returning from this function. 5 | 6 | PTLDEBUG=${PTLDEBUG:--1} 7 | LUSTRE=${LUSTRE:-`dirname $0`/..} 8 | MULTIOP=${MULTIOP:-multiop} 9 | . $LUSTRE/tests/test-framework.sh 10 | 11 | TMP=${TMP:-/tmp} 12 | MULTIOP_PID_FILE=${MULTIOP_PID_FILE:-$TMP/multiop_bg.pid} 13 | rm -f $MULTIOP_PID_FILE 14 | 15 | multiop_bg_pause $* 16 | rc=$? 17 | [ "$rc" = 0 ] && echo $! > $MULTIOP_PID_FILE 18 | exit $rc 19 | -------------------------------------------------------------------------------- /lustre/tests/runobdstat: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | PATH=`dirname $0`/../utils:$PATH 3 | 4 | llobdstat $1 1 | while read LINE; do 5 | echo "`date +s`: $LINE" 6 | [ "$2" ] && echo "`date +s`: $LINE" >> $2 7 | done 8 | -------------------------------------------------------------------------------- /lustre/tests/runvmstat: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | DELAY=1 3 | null() { 4 | : 5 | } 6 | 7 | case "$1" in 8 | -q) echo "echo off" 9 | ECHO="null" 10 | shift ;; 11 | [1-9]*) 12 | DELAY=$1 13 | ECHO=echo 14 | shift ;; 15 | *) 16 | echo "echo on" 17 | ECHO=echo 18 | esac 19 | 20 | vmstat $DELAY | while read LINE ; do 21 | LINE="`date +%s`: $LINE" 22 | $ECHO "$LINE" 23 | [ "$1" ] && echo "$LINE" >> $1 24 | done 25 | -------------------------------------------------------------------------------- /lustre/tests/socketclient: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | use Socket; 3 | use strict; 4 | my ($rendezvous, $line); 5 | 6 | $rendezvous = shift || <@ARGV>; 7 | socket(SOCK, AF_UNIX, SOCK_STREAM, 0) || die "socket: $!"; 8 | connect(SOCK, sockaddr_un($rendezvous)) || die "connect: $!"; 9 | while (defined($line = )) { 10 | print $line; 11 | } 12 | exit; 13 | -------------------------------------------------------------------------------- /lustre/tests/socketserver: -------------------------------------------------------------------------------- 1 | #! /usr/bin/perl -w 2 | use strict; 3 | use Socket; 4 | 5 | BEGIN { $ENV{PATH} = '/usr/ucb:/bin' } 6 | sub logmsg { print "$0 $$: @_ at ", scalar localtime, "\n" } 7 | 8 | my $NAME = <@ARGV>; 9 | my $uaddr = sockaddr_un($NAME); 10 | 11 | socket(Server,AF_UNIX,SOCK_STREAM,0) || die "socket: $!"; 12 | unlink($NAME); 13 | bind (Server, $uaddr) || die "bind: $!"; 14 | listen(Server,SOMAXCONN) || die "listen: $!"; 15 | 16 | logmsg "server started on $NAME"; 17 | 18 | my $rc = fork(); 19 | if ($rc > 0) { #parent 20 | exit(); 21 | } elsif ($rc < 0) { # error 22 | logmsg "fork failed: $rc"; 23 | exit(); 24 | } 25 | 26 | accept(Client,Server); 27 | logmsg "connection on $NAME"; 28 | print Client "from server\n"; 29 | close Client; 30 | -------------------------------------------------------------------------------- /lustre/tests/test-groups/regression: -------------------------------------------------------------------------------- 1 | runtests 2 | sanity 3 | sanityn 4 | sanity-benchmark 5 | metadata-updates 6 | racer 7 | lnet-selftest 8 | replay-single 9 | conf-sanity 10 | recovery-small 11 | replay-ost-single 12 | replay-dual 13 | replay-vbr 14 | insanity 15 | sanity-quota 16 | sanity-sec 17 | sanity-gss 18 | lustre-rsync-test 19 | ost-pools 20 | mmp 21 | obdfilter-survey 22 | sgpdd-survey 23 | sanity-scrub 24 | sanity-lfsck 25 | sanity-hsm 26 | sanity-lsnapshot 27 | sanity-pfl 28 | sanity-lnet 29 | -------------------------------------------------------------------------------- /lustre/tests/test-groups/regression-mpi: -------------------------------------------------------------------------------- 1 | performance-sanity 2 | large-scale 3 | parallel-scale 4 | -------------------------------------------------------------------------------- /lustre/tests/zfs_mdt1_2_11.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/zfs_mdt1_2_11.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/zfs_mdt2_2_11.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/zfs_mdt2_2_11.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/zfs_ost1_2_11.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/zfs_ost1_2_11.tar.bz2 -------------------------------------------------------------------------------- /lustre/tests/zfs_ost2_2_11.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLNL/lustre/f372cfbea8040b530a58826fe39e3b48dd0fdaed/lustre/tests/zfs_ost2_2_11.tar.bz2 -------------------------------------------------------------------------------- /lustre/utils/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | /mkfs.lustre 3 | /mount.lustre 4 | /tunefs.lustre 5 | /lctl 6 | /lfs 7 | /wirecheck 8 | /wiretest 9 | /llog_reader 10 | /lr_reader 11 | /lload 12 | /llverfs 13 | /llverdev 14 | /l_getidentity 15 | /l_facl 16 | /mkfs_lustre 17 | /mount_lustre 18 | /tunefs_lustre 19 | /lreplicate 20 | /ltrack_stats 21 | /lshowmount 22 | /lustre_rsync 23 | /ll_decode_filter_fid 24 | /ll_decode_linkea 25 | /llsom_sync 26 | /lhsmd_posix 27 | /lhsmtool_posix 28 | /l_tunedisk 29 | /l_getsepol 30 | -------------------------------------------------------------------------------- /lustre/utils/callvpe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * LGPL HEADER START 3 | * 4 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License as 8 | * published by the Free Software Foundation; either version 2.1 of the 9 | * License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, but 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with this library. If not, see . 18 | * 19 | * LGPL HEADER END 20 | * 21 | * Copyright (c) 2018, Intel Corporation. 22 | */ 23 | 24 | #ifndef _CALLVPE_H_ 25 | #define _CALLVPE_H_ 26 | 27 | int callvpe(const char *file, char *const args[], char *const envp[]); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /lustre/utils/gss/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | /lgssd 3 | /lsvcgssd 4 | /l_idmap 5 | /lgss_keyring 6 | /lgss_sk 7 | -------------------------------------------------------------------------------- /lustre/utils/gss/README: -------------------------------------------------------------------------------- 1 | lustre/utils/gss: client & server side gss daemons for Lustre. 2 | 3 | All files came from standard nfs-utils package, applied with patches 4 | created by Sun Microsystems, Inc. 5 | 6 | 1. Stock nfs-utils-1.0.11.tgz 7 | 2. Apply nfs-utils-1.0.11-CITI_NFS4_ALL-1.dif from Center for Information 8 | Technology Integration, University of Michigan 9 | (http://www.citi.umich.edu/projects/nfsv4/linux/) 10 | 3. Apply lustre patch: nfs-utils-1.0.11-lustre.diff 11 | 4. Copy nfs-utils-1.0.10/aclocal/kerberos5.m4 to lustre/autoconf 12 | 5. Copy nfs-utils-1.0.10/utils/gssd/*.[ch] to here 13 | -------------------------------------------------------------------------------- /lustre/utils/gss/krb5_util.h: -------------------------------------------------------------------------------- 1 | #ifndef KRB5_UTIL_H 2 | #define KRB5_UTIL_H 3 | 4 | #include 5 | 6 | /* 7 | * List of principals from our keytab that we 8 | * may try to get credentials for 9 | */ 10 | struct gssd_k5_kt_princ { 11 | struct gssd_k5_kt_princ *next; 12 | krb5_principal princ; 13 | unsigned int fl_root:1, 14 | fl_mds:1; 15 | char *ccname; 16 | char *realm; 17 | krb5_timestamp endtime; 18 | }; 19 | 20 | 21 | void gssd_setup_krb5_user_gss_ccache(uid_t uid, char *servername); 22 | int gssd_get_krb5_machine_cred_list(char ***list); 23 | int gssd_refresh_krb5_machine_creds(void); 24 | void gssd_free_krb5_machine_cred_list(char **list); 25 | void gssd_setup_krb5_machine_gss_ccache(char *servername); 26 | void gssd_destroy_krb5_machine_creds(void); 27 | void gssd_obtain_kernel_krb5_info(void); 28 | 29 | 30 | #endif /* KRB5_UTIL_H */ 31 | -------------------------------------------------------------------------------- /lustre/utils/gss/l_idmap.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | /* For basename() */ 6 | #include 7 | #include "lsupport.h" 8 | 9 | int main(int argc, char **argv) 10 | { 11 | lnet_nid_t nid; 12 | uid_t uid; 13 | int rc; 14 | 15 | if (argc < 3) { 16 | printf("Usage:\n" 17 | "%s \n", 18 | basename(argv[0])); 19 | return 1; 20 | } 21 | 22 | nid = libcfs_str2nid(argv[2]); 23 | if (nid == LNET_NID_ANY) { 24 | printf("parse nid %s failed\n", argv[2]); 25 | return 1; 26 | } 27 | rc = lookup_mapping(argv[1], nid, &uid); 28 | if (rc == -1) { 29 | printf("lookup mapping failed\n"); 30 | return 1; 31 | } 32 | 33 | printf("principal: %s\n" 34 | "nid: %#llx\n" 35 | "uid: %u\n", 36 | argv[1], nid, uid); 37 | 38 | return 0; 39 | } 40 | -------------------------------------------------------------------------------- /lustre/utils/liblustreapi.map: -------------------------------------------------------------------------------- 1 | { 2 | global: 3 | cfs_*; 4 | llapi_*; 5 | libcfs_*; 6 | liblustreapi_initialized; 7 | l_ioctl; 8 | mdt_hash_name; 9 | Parser_*; 10 | register_ioc_*; 11 | local: 12 | *; 13 | }; 14 | -------------------------------------------------------------------------------- /rpm/kmp-lustre-osd-ldiskfs.files: -------------------------------------------------------------------------------- 1 | %defattr(-,root,root) 2 | %{modules_fs_path}/%{lustre_name}-osd-ldiskfs/fs/ldiskfs.ko 3 | %{modules_fs_path}/%{lustre_name}-osd-ldiskfs/fs/osd_ldiskfs.ko 4 | -------------------------------------------------------------------------------- /rpm/kmp-lustre-osd-ldiskfs.preamble: -------------------------------------------------------------------------------- 1 | Requires: %{requires_kmod_name} = %{requires_kmod_version} 2 | Requires: ldiskfsprogs >= 1.44.3.wc1 3 | Requires: %{name}-osd-ldiskfs-mount = %{version} 4 | Provides: %{name}-osd = %{version} 5 | Obsoletes: %{name}-ldiskfs < %{version} 6 | Obsoletes: %{name}-osd-ldiskfs < %{version} 7 | -------------------------------------------------------------------------------- /rpm/kmp-lustre-osd-zfs.files: -------------------------------------------------------------------------------- 1 | %defattr(-,root,root) 2 | %{modules_fs_path}/%{lustre_name}-osd-zfs/fs/osd_zfs.ko 3 | -------------------------------------------------------------------------------- /rpm/kmp-lustre-osd-zfs.preamble: -------------------------------------------------------------------------------- 1 | Requires: zfs-kmod 2 | Requires: %{name}-osd-zfs-mount = %{version} 3 | Provides: %{name}-osd = %{version} 4 | Obsoletes: %{name}-osd-zfs < %{version} 5 | BuildRequires: libzfs2-devel kmod-zfs-devel kmod-spl-devel 6 | -------------------------------------------------------------------------------- /rpm/kmp-lustre-tests.files: -------------------------------------------------------------------------------- 1 | %{modules_fs_path}/%{lustre_name}-tests/fs/llog_test.ko 2 | -------------------------------------------------------------------------------- /rpm/kmp-lustre.files: -------------------------------------------------------------------------------- 1 | %defattr(-,root,root) 2 | %{modules_fs_path}/%{lustre_name}/* 3 | %doc COPYING 4 | %doc ChangeLog-lustre 5 | %doc ChangeLog-lnet 6 | -------------------------------------------------------------------------------- /rpm/kmp-lustre.preamble: -------------------------------------------------------------------------------- 1 | Obsoletes: %{name}-modules < %{version} 2 | -------------------------------------------------------------------------------- /snmp/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /snmp/Makefile.am: -------------------------------------------------------------------------------- 1 | agent_LTLIBRARIES = liblustresnmp.la 2 | mib_DATA = Lustre-MIB.txt 3 | 4 | liblustresnmp_la_SOURCES = \ 5 | lustre-snmp.c \ 6 | lustre-snmp.h \ 7 | lustre-snmp-trap.c \ 8 | lustre-snmp-trap.h \ 9 | lustre-snmp-util.c \ 10 | lustre-snmp-util.h 11 | 12 | LIBCFS = $(top_builddir)/libcfs/libcfs/libcfs.la 13 | 14 | liblustresnmp_la_CFLAGS := $(NET_SNMP_CFLAGS) 15 | liblustresnmp_la_LIBADD := $(NET_SNMP_LIBS) $(LIBCFS) 16 | liblustresnmp_la_LDFLAGS := -version-info 1:0:0 17 | 18 | SUBDIRS = 19 | DIST_SUBDIRS = autoconf 20 | 21 | EXTRA_DIST = $(mib_DATA) 22 | -------------------------------------------------------------------------------- /snmp/README.install: -------------------------------------------------------------------------------- 1 | Steps for installation: 2 | 3 | Update /etc/snmp/snmpd.conf appending the following line: 4 | 5 | dlmod lustresnmp /usr/lib/lustre/snmp/lustresnmp.so 6 | 7 | Or the appropriate path to the snmp module. 8 | 9 | Then, restart the snmpd daemon. 10 | -------------------------------------------------------------------------------- /snmp/autoconf/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile.in 2 | -------------------------------------------------------------------------------- /snmp/autoconf/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = lustre-snmp.m4 2 | --------------------------------------------------------------------------------