Whamcloud - gitweb
LU-17599 ldiskfs: restore ldiskfs patch attribution 47/54247/4
authorShaun Tancheff <shaun.tancheff@hpe.com>
Fri, 8 Mar 2024 11:18:11 +0000 (18:18 +0700)
committerOleg Drokin <green@whamcloud.com>
Tue, 2 Apr 2024 21:02:47 +0000 (21:02 +0000)
Over time various ports of ldiskfs patches to newer kernel
releases and distribution kernels have lost or confused the
original history and author of many patches.  It is also
helpful to have a summary for the reason behind each patch.

Thanks-to: Andreas Dilger <adilger@whamcloud.com>
for digging through the history of these patches.

Test-Parameters: trivial
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Ibf9dd8c9583816251836bd396acd4543116ccc1e
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/54247
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
107 files changed:
ldiskfs/kernel_patches/patches/linux-5.10/ext4-attach-jinode-in-writepages.patch
ldiskfs/kernel_patches/patches/linux-5.10/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/linux-5.10/ext4-fiemap-kernel-data.patch
ldiskfs/kernel_patches/patches/linux-5.10/ext4-misc.patch
ldiskfs/kernel_patches/patches/linux-5.10/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/linux-5.14/ext4-corrupted-inode-block-bitmaps-handling-patches.patch
ldiskfs/kernel_patches/patches/linux-5.14/ext4-ialloc-uid-gid-and-pass-owner-down.patch
ldiskfs/kernel_patches/patches/linux-5.14/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/linux-5.14/ext4-prealloc.patch
ldiskfs/kernel_patches/patches/linux-5.16/ext4-corrupted-inode-block-bitmaps-handling-patches.patch
ldiskfs/kernel_patches/patches/linux-5.18/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/linux-5.18/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/linux-5.18/ext4-mballoc-pa-free-mismatch.patch
ldiskfs/kernel_patches/patches/linux-5.18/ext4-prealloc.patch
ldiskfs/kernel_patches/patches/linux-5.4/ext4-attach-jinode-in-writepages.patch
ldiskfs/kernel_patches/patches/linux-5.4/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/linux-5.4/ext4-lookup-dotdot.patch
ldiskfs/kernel_patches/patches/linux-5.4/ext4-misc.patch
ldiskfs/kernel_patches/patches/linux-5.4/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/linux-5.8/ext4-corrupted-inode-block-bitmaps-handling-patches.patch
ldiskfs/kernel_patches/patches/linux-5.8/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/linux-5.8/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/linux-5.8/ext4-mballoc-pa-free-mismatch.patch
ldiskfs/kernel_patches/patches/linux-5.8/ext4-misc.patch
ldiskfs/kernel_patches/patches/linux-5.8/ext4-prealloc.patch
ldiskfs/kernel_patches/patches/oe2203/ext4-delayed-iput.patch
ldiskfs/kernel_patches/patches/oe2203/ext4-misc.patch
ldiskfs/kernel_patches/patches/oe2203/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/oe2203sp1/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/rhel7.6/ext4-attach-jinode-in-writepages.patch
ldiskfs/kernel_patches/patches/rhel7.6/ext4-corrupted-inode-block-bitmaps-handling-patches.patch
ldiskfs/kernel_patches/patches/rhel7.6/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/rhel7.6/ext4-dont-check-before-replay.patch
ldiskfs/kernel_patches/patches/rhel7.6/ext4-lookup-dotdot.patch
ldiskfs/kernel_patches/patches/rhel7.6/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/rhel7.6/ext4-mballoc-pa-free-mismatch.patch
ldiskfs/kernel_patches/patches/rhel7.6/ext4-nocmtime.patch
ldiskfs/kernel_patches/patches/rhel7.6/ext4-prealloc.patch
ldiskfs/kernel_patches/patches/rhel7.7/ext4-ialloc-uid-gid-and-pass-owner-down.patch
ldiskfs/kernel_patches/patches/rhel7.7/ext4-misc.patch
ldiskfs/kernel_patches/patches/rhel7.9/ext4-delayed-iput.patch
ldiskfs/kernel_patches/patches/rhel7.9/ext4-encdata.patch
ldiskfs/kernel_patches/patches/rhel7.9/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/rhel8.2/ext4-attach-jinode-in-writepages.patch
ldiskfs/kernel_patches/patches/rhel8.3/ext4-corrupted-inode-block-bitmaps-handling-patches.patch
ldiskfs/kernel_patches/patches/rhel8.3/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/rhel8.3/ext4-misc.patch
ldiskfs/kernel_patches/patches/rhel8.4/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/rhel8.4/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/rhel8.7/ext4-corrupted-inode-block-bitmaps-handling-patches.patch
ldiskfs/kernel_patches/patches/rhel8.7/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/rhel8.7/ext4-mballoc-pa-free-mismatch.patch
ldiskfs/kernel_patches/patches/rhel8.7/ext4-misc.patch
ldiskfs/kernel_patches/patches/rhel8.7/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/rhel8/ext4-corrupted-inode-block-bitmaps-handling-patches.patch
ldiskfs/kernel_patches/patches/rhel8/ext4-dont-check-before-replay.patch
ldiskfs/kernel_patches/patches/rhel8/ext4-encdata.patch
ldiskfs/kernel_patches/patches/rhel8/ext4-ialloc-uid-gid-and-pass-owner-down.patch
ldiskfs/kernel_patches/patches/rhel8/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/rhel8/ext4-nocmtime.patch
ldiskfs/kernel_patches/patches/rhel8/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/rhel8/ext4-prealloc.patch
ldiskfs/kernel_patches/patches/rhel9.1/ext4-delayed-iput.patch
ldiskfs/kernel_patches/patches/rhel9.1/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/rhel9.2/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/rhel9.2/ext4-dont-check-before-replay.patch
ldiskfs/kernel_patches/patches/rhel9.2/ext4-encdata.patch
ldiskfs/kernel_patches/patches/rhel9.2/ext4-fiemap-kernel-data.patch
ldiskfs/kernel_patches/patches/rhel9.2/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/rhel9.2/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/rhel9.2/ext4-prealloc.patch
ldiskfs/kernel_patches/patches/rhel9.3/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/rhel9/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/rhel9/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/sles15sp1/ext4-misc.patch
ldiskfs/kernel_patches/patches/sles15sp1/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/sles15sp3/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/sles15sp3/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/sles15sp4/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/sles15sp4/ext4-delayed-iput.patch
ldiskfs/kernel_patches/patches/sles15sp4/ext4-misc.patch
ldiskfs/kernel_patches/patches/sles15sp4/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/suse15/ext4-attach-jinode-in-writepages.patch
ldiskfs/kernel_patches/patches/suse15/ext4-corrupted-inode-block-bitmaps-handling-patches.patch
ldiskfs/kernel_patches/patches/suse15/ext4-dont-check-before-replay.patch
ldiskfs/kernel_patches/patches/suse15/ext4-lookup-dotdot.patch
ldiskfs/kernel_patches/patches/suse15/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/suse15/ext4-misc.patch
ldiskfs/kernel_patches/patches/suse15/ext4-prealloc.patch
ldiskfs/kernel_patches/patches/ubuntu18/ext4-attach-jinode-in-writepages.patch
ldiskfs/kernel_patches/patches/ubuntu18/ext4-corrupted-inode-block-bitmaps-handling-patches.patch
ldiskfs/kernel_patches/patches/ubuntu18/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/ubuntu18/ext4-dont-check-before-replay.patch
ldiskfs/kernel_patches/patches/ubuntu18/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/ubuntu18/ext4-misc.patch
ldiskfs/kernel_patches/patches/ubuntu18/ext4-nocmtime.patch
ldiskfs/kernel_patches/patches/ubuntu18/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/ubuntu19/ext4-misc.patch
ldiskfs/kernel_patches/patches/ubuntu20.04.3/ext4-misc.patch
ldiskfs/kernel_patches/patches/ubuntu20.04.5/ext4-corrupted-inode-block-bitmaps-handling-patches.patch
ldiskfs/kernel_patches/patches/ubuntu20.04.5/ext4-data-in-dirent.patch
ldiskfs/kernel_patches/patches/ubuntu20.04.5/ext4-dont-check-before-replay.patch
ldiskfs/kernel_patches/patches/ubuntu20.04.5/ext4-mballoc-extra-checks.patch
ldiskfs/kernel_patches/patches/ubuntu20.04.5/ext4-prealloc.patch
ldiskfs/kernel_patches/patches/ubuntu20/ext4-pdirop.patch
ldiskfs/kernel_patches/patches/ubuntu2004/ext4-misc.patch
ldiskfs/kernel_patches/patches/ubuntu2004/ext4-pdirop.patch

index 64e9834..c560133 100644 (file)
@@ -1,8 +1,17 @@
-From 01da8ce642e08594db95d940b3352ad7ee153b09 Mon Sep 17 00:00:00 2001
-From: Shaun Tancheff <stancheff@cray.com>
-Date: Tue, 6 Aug 2019 17:11:57 -0500
-Subject: [PATCH] + linux-5.3/ext4-attach-jinode-in-writepages
+commit 66153d87190a3547099446d222f36114d3eeffad
+Author:     Yang Sheng <ys@whamcloud.com>
+AuthorDate: Tue Jan 24 03:31:27 2017 +0800
+Subject: LU-9031 osd: handle jinode change for ldiskfs
 
+We need to take care of jinode for ldiskfs. Since we
+did not get the inode from syscall like sys_open(). So
+we have to initialize it in OSD by ourselves.
+
+Signed-off-by: Yang Sheng <yang.sheng@intel.com>
+Change-Id: Iec6db290c3779a8f7c98e5d1356b71fd928d7c88
+Reviewed-on: https://review.whamcloud.com/24941
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Bob Glossman <bob.glossman@intel.com>
 ---
  fs/ext4/ext4.h  |    1 +
  fs/ext4/inode.c |    8 ++++++++
index 63648b8..e637a68 100644 (file)
@@ -1,12 +1,26 @@
-this patch implements feature which allows ext4 fs users (e.g. Lustre)
-to store data in ext4 dirent.
-data is stored in ext4 dirent after file-name, this space is accounted
-in de->rec_len. flag EXT4_DIRENT_LUFID added to d_type if extra data
-is present.
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
-make use of dentry->d_fsdata to pass fid to ext4. so no
-changes in ext4_add_entry() interface required.
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
 
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/dir.c         |   13 ++-
  fs/ext4/ext4.h        |  100 +++++++++++++++++++++++-
index 4f7cbc9..2103ea6 100644 (file)
@@ -1,9 +1,24 @@
-Subject: [PATCH] ext4-fiemap-kernel-data
+Subject: [PATCH] fiemap on kernel allocated buffers
 
-Pull in enough upstream fiemap handling to conditionally use
-memcpy instead of copy_to_user in fiemap_fill_next_extent.
-Common kernel functions prefixed with ext4_ or _ext4_
+With KERNEL_DS gone lustre needs an alternative for fiemap to
+copy extents to kernel space memory.
 
+Direct in-kernel calls to inode->f_ops->fiemap() can utilize
+an otherwise unused flag on fiemap_extent_info fi_flags
+to indicate the fiemap extent buffer is allocated in kernel space.
+
+Introduce EXT4_FIEMAP_FLAG_MEMCPY and use it.
+
+The patch pulls some common code into ext4:
+   ext4_fiemap_fill_next_extent <--- fiemap_fill_next_extent
+   ext4_iomap_to_fiemap <----------- iomap_to_fiemap
+   ext4_iomap_fiemap_actor <-------- iomap_fiemap_actor
+   ext4_iomap_apply <--------------- iomap_apply
+   _ext4_iomap_fiemap <------------- iomap_fiemap
+and changes ext4_fiemap_fill_next_extent to conditionally
+use memcpy instead of copy_to_user.
+
+Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
 ---
  fs/ext4/ext4.h    |   3 +
  fs/ext4/extents.c | 265 +++++++++++++++++++++++++++++++++++++++++++++-
index 5e14205..cfb44eb 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 ---
  fs/ext4/ext4.h   | 25 ++++++++++++++++++++++++-
  fs/ext4/ialloc.c |  3 ++-
index 2b23d52..077e8cc 100644 (file)
@@ -1,22 +1,26 @@
-From 1a0f7f0b9c13ef0aa86e125f350b6733bff8db3c Mon Sep 17 00:00:00 2001
-From: Liang Zhen <liang@whamcloud.com>
-Date: Fri Jul 8 13:43:08 2011 -0400
-Subject: [PATCH] LU-50 ldiskfs: pdirops patch for ldiskfs
+LU-50 ldiskfs: pdirops patch for ldiskfs
 
- Single directory performance is a critical for HPC workloads.
- In a typical use case an application creates a separate output file for each
- node and task in a job. As nodes and tasks increase, hundreds of thousands of
- files may be created in a single directory within a short window of time.
- Today, both filename lookup and file system modifying operations (such as
- create and unlink) are protected with a single lock for an entire ldiskfs
- directory. PDO project will remove this bottleneck by introducing a parallel
- locking mechanism for entire ldiskfs directories. This work will enable
- multiple application threads to simultaneously lookup, create and unlink in
- parallel.
+Single directory performance is a critical for HPC workloads. In a
+typical use case an application creates a separate output file for
+each node and task in a job. As nodes and tasks increase, hundreds
+of thousands of files may be created in a single directory within
+a short window of time.
+Today, both filename lookup and file system modifying operations
+(such as create and unlink) are protected with a single lock for
+an entire ldiskfs directory. PDO project will remove this
+bottleneck by introducing a parallel locking mechanism for entire
+ldiskfs directories. This work will enable multiple application
+threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
+Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 ---
  fs/ext4/Makefile |    1 
  fs/ext4/ext4.h   |   78 +++++++++
index 562788d..0c53a74 100644 (file)
@@ -1,9 +1,31 @@
-Subject: [PATCH] ext4-corrupted-inode-block-bitmaps-handling-patches
+commit 2963f3d09eb3a0817f87386c0bd7be7ce086809d
+Author:     Wang Shilong <wshilong@whamcloud.com>
+AuthorDate: Tue Sep 8 21:54:29 2015 +0800
+LU-7114 ldiskfs: corrupted bitmaps handling patches
 
-Since we could skip corrupt block groups, this patch
-use ext4_warning() intead of ext4_error() to make FS not
-remount RO in default
+This patch backported following patches from upstream:
 
+163a203ddb36c36d4a1c942aececda0cc8d06aa7
+ext4: mark block group as corrupt on block bitmap error
+
+87a39389be3e3b007d341be510a7e4a0542bdf05
+ext4: mark block group as corrupt on inode bitmap error
+
+bdfb6ff4a255dcebeb09a901250e13a97eff75af
+ext4: mark group corrupt on group descriptor checksum
+
+Also use ext4_warning() instead of ext4_error() so that
+filesystem don't become RO in default, and together
+with these patches,FS wil still be usable even such
+bad things happen.
+
+Signed-off-by: Wang Shilong <wshilong@ddn.com>
+Change-Id: Ib4075aba7df6f7f59e89a90475405080acd43dd0
+Reviewed-on: http://review.whamcloud.com/16312
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Yang Sheng <yang.sheng@intel.com>
+
+NOTE: Ported to linux 5.14 keeps the ext4_warning() updates.
 ---
  fs/ext4/balloc.c  | 10 +++----
  fs/ext4/ialloc.c  |  6 ++---
index 751f297..abdb311 100644 (file)
@@ -1,6 +1,51 @@
-Subject: [PATCH] pass inode timestamps at initial creation
+commit 5bb641fa61175fd0fe63e830219d88304b5162c3
+Author:     Shaun Tancheff <shaun.tancheff@hpe.com>
+AuthorDate: Thu Dec 10 10:31:51 2020 -0600
+LU-13239 ldiskfs: pass inode timestamps at initial creation
 
-pass inode timestamps at initial creation
+A previous patch https://github.com/Cray/lustre/commit/6d4fb6694
+"LUS-4880 osd-ldiskfs: pass uid/gid/xtime directly to ldiskfs"
+was intended to be ported to upstream lustre but was lost.
+
+The patch https://review.whamcloud.com/34685/
+"LU-12151 osd-ldiskfs: pass owner down rather than transfer it"
+passed the inode UID and GID down to ldiskfs at inode allocation
+time to avoid the overhead of transferring quota from the inode
+(initially created as root) over to the actual user of the file.
+
+The two patches differed slightly in that the LUS-4880 included
+passing the a/m/ctimes from osd-ldiskfs to ldiskfs at inode
+creation time avoids overhead of setting the timestamps afterward.
+
+Benchmarks using MDTEST:
+  mdtest -f 32 -l 32 -n 16384 -i 5 -p 120 -t -u -v -d mdtest
+
+                            master                 patched
+   Operation                  Mean    Std Dev         Mean   Std Dev
+   ---------                  ----    -------         ----   -------
+   Directory creation:   17008.593     72.700    17099.863   155.461
+   Directory stat    :  170513.269   1456.002   170105.207  2349.934
+   Directory removal :   80796.147   2633.832    84480.222   892.536
+   File creation     :   39227.419   7014.539    40429.900  6643.868
+   File stat         :  101761.395   2979.802   103818.800  1146.689
+   File read         :   86583.370    871.982    85725.254   965.862
+   File removal      :   74923.504    761.048    75075.180   723.966
+   Tree creation     :     588.570    244.534      608.332   123.939
+   Tree removal      :      39.874      1.873       44.357     2.350
+
+This patch also reorganizes the ldiskfs patch series in
+order to accommodate struct iattr being added to
+ldiskfs_create_inode.
+All supported server platforms RHEL 7.5+, SUSE 12+ and
+ubuntu 18+ are affected.
+
+HPE-bug-id: LUS-7378, LUS-4880, LUS-8042, LUS-9157, LUS-8772, LUS-8769
+Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
+Change-Id: I87e9c792b5240820bfd3a7268e477970ebac8465
+Reviewed-on: https://review.whamcloud.com/37556
+Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com>
+Reviewed-by: Jian Yu <yujian@whamcloud.com>
+Reviewed-by: Wang Shilong <wshilong@whamcloud.com>
 ---
  fs/ext4/ext4.h   |  8 ++++----
  fs/ext4/ialloc.c | 11 ++++++++++-
index fbe20fc..24423f6 100644 (file)
@@ -1,5 +1,15 @@
-Subject: [PATCH] linux-5.14/ext4-mballoc-extra-checks.patch
+commit f2f28f1d09c0a00b3fc569422f881931d857fac9
+Author:     Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Tue Oct 28 17:59:09 2008 +0000
+Subject: ext4: detect on-disk corruption of block bitmap
 
+Detect on-disk corruption of block bitmap and better checking of
+preallocated blocks.
+
+Bugzilla-ID: b=16680
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak.shah@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/ext4.h    |   1 +
  fs/ext4/mballoc.c | 103 ++++++++++++++++++++++++++++++++++++++++------
index f09a2e4..c4e3ba9 100644 (file)
@@ -1,5 +1,15 @@
-Subject: [PATCH] linux-5.14/ext4-prealloc.patch
+commit d8d8fd9192a54c7b8caef8cca9b7a1eb5e5e3298
+Author: Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Thu Oct 23 10:02:19 2008 +0000
 
+Subject: ext4: support for tunable preallocation window
+Add support for tunable preallocation window and new tunables
+for large/small requests.
+
+Bugzilla-ID: b=12800
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak@clusterfs.com>
+Reviewed-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/ext4.h    |   7 +-
  fs/ext4/inode.c   |   3 +
index d64a450..51b9829 100644 (file)
@@ -1,7 +1,31 @@
-Since we could skip corrupt block groups, this patch
-use ext4_warning() intead of ext4_error() to make FS not
-remount RO in default
+commit 2963f3d09eb3a0817f87386c0bd7be7ce086809d
+Author:     Wang Shilong <wshilong@whamcloud.com>
+AuthorDate: Tue Sep 8 21:54:29 2015 +0800
+LU-7114 ldiskfs: corrupted bitmaps handling patches
 
+This patch backported following patches from upstream:
+
+163a203ddb36c36d4a1c942aececda0cc8d06aa7
+ext4: mark block group as corrupt on block bitmap error
+
+87a39389be3e3b007d341be510a7e4a0542bdf05
+ext4: mark block group as corrupt on inode bitmap error
+
+bdfb6ff4a255dcebeb09a901250e13a97eff75af
+ext4: mark group corrupt on group descriptor checksum
+
+Also use ext4_warning() instead of ext4_error() so that
+filesystem don't become RO in default, and together
+with these patches,FS wil still be usable even such
+bad things happen.
+
+Signed-off-by: Wang Shilong <wshilong@ddn.com>
+Change-Id: Ib4075aba7df6f7f59e89a90475405080acd43dd0
+Reviewed-on: http://review.whamcloud.com/16312
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Yang Sheng <yang.sheng@intel.com>
+
+NOTE: Ported to linux 5.16 keeps the ext4_warning() updates.
 ---
  fs/ext4/balloc.c  | 10 ++++----
  fs/ext4/ialloc.c  |  6 ++---
index ee99e93..2eee9cf 100644 (file)
@@ -1,5 +1,26 @@
-Subject: [PATCH] linux-5.18/ext4-data-in-dirent
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
+
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/dir.c         |   9 +-
  fs/ext4/ext4.h        | 107 ++++++++++++++++--
index b664f15..1261785 100644 (file)
@@ -1,8 +1,15 @@
-From 26c43c25b39cab8071fa45c595844320979efd16 Mon Sep 17 00:00:00 2001
-From: Shaun Tancheff <shaun.tancheff@hpe.com>
-Date: Sun, 13 Nov 2022 04:31:54 -0600
-Subject: [PATCH] P: linux-5.14/ext4-mballoc-extra-checks.patch
+commit f2f28f1d09c0a00b3fc569422f881931d857fac9
+Author:     Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Tue Oct 28 17:59:09 2008 +0000
+Subject: ext4: detect on-disk corruption of block bitmap
 
+Detect on-disk corruption of block bitmap and better checking of
+preallocated blocks.
+
+Bugzilla-ID: b=16680
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak.shah@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/ext4.h    |   1 +
  fs/ext4/mballoc.c | 103 ++++++++++++++++++++++++++++++++++++++++------
index 29202e8..5fd6c09 100644 (file)
@@ -1,3 +1,12 @@
+commit 2d3aaef4122c11dcb6d892da89522ffa37036136
+Author:     Fan Yong <yong.fan@whamcloud.com>
+AuthorDate: Thu Feb 25 00:32:12 2010 -0800
+Subject: ext4: diagnostic patch to verify lustre read-only device mechanism
+
+Diagnostic patch to check whether lustre read-only device mechanism works well or not.
+Signed-off-by: Fan Yong <yong.fan@whamcloud.com>
+Reviewed-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Rahul Deshmukh <rahul.deshmukh@sun.com>
 ---
  fs/ext4/mballoc.c | 43 +++++++++++++++++++++++++++++++++++++------
  fs/ext4/mballoc.h |  1 +
index 964ce7e..2fbe3dc 100644 (file)
@@ -1,8 +1,15 @@
-From bdb2b47482f4e525ae0a7bc1334cbeca9115beac Mon Sep 17 00:00:00 2001
-From: Shaun Tancheff <shaun.tancheff@hpe.com>
-Date: Mon, 14 Nov 2022 01:18:58 -0600
-Subject: [PATCH] linux-5.18/ext4-prealloc.patch
+commit d8d8fd9192a54c7b8caef8cca9b7a1eb5e5e3298
+Author: Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Thu Oct 23 10:02:19 2008 +0000
 
+Subject: ext4: support for tunable preallocation window
+Add support for tunable preallocation window and new tunables
+for large/small requests.
+
+Bugzilla-ID: b=12800
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak@clusterfs.com>
+Reviewed-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/ext4.h    |   7 +-
  fs/ext4/inode.c   |   3 +
index b7f5e37..d381c45 100644 (file)
@@ -1,8 +1,17 @@
-From 01da8ce642e08594db95d940b3352ad7ee153b09 Mon Sep 17 00:00:00 2001
-From: Shaun Tancheff <stancheff@cray.com>
-Date: Tue, 6 Aug 2019 17:11:57 -0500
-Subject: [PATCH] + linux-5.3/ext4-attach-jinode-in-writepages
+commit 66153d87190a3547099446d222f36114d3eeffad
+Author:     Yang Sheng <ys@whamcloud.com>
+AuthorDate: Tue Jan 24 03:31:27 2017 +0800
+Subject: LU-9031 osd: handle jinode change for ldiskfs
 
+We need to take care of jinode for ldiskfs. Since we
+did not get the inode from syscall like sys_open(). So
+we have to initialize it in OSD by ourselves.
+
+Signed-off-by: Yang Sheng <yang.sheng@intel.com>
+Change-Id: Iec6db290c3779a8f7c98e5d1356b71fd928d7c88
+Reviewed-on: https://review.whamcloud.com/24941
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Bob Glossman <bob.glossman@intel.com>
 ---
  fs/ext4/ext4.h  | 1 +
  fs/ext4/inode.c | 8 ++++++++
index c347f79..6f34417 100644 (file)
@@ -1,11 +1,26 @@
-this patch implements feature which allows ext4 fs users (e.g. Lustre)
-to store data in ext4 dirent.
-data is stored in ext4 dirent after file-name, this space is accounted
-in de->rec_len. flag EXT4_DIRENT_LUFID added to d_type if extra data
-is present.
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
-make use of dentry->d_fsdata to pass fid to ext4. so no
-changes in ext4_add_entry() interface required.
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
+
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 
 diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c
 index 9fdd2b2..2a73a69 100644
index f825eaa..50c990f 100644 (file)
@@ -1,3 +1,20 @@
+commit 113303973ec9f8484eb2355a1a6ef3c4c7fd6a56
+Author:     Alex Zhuravlev <alex@clusterfs.com>
+AuthorDate: Sat Feb 10 06:33:41 2007 +0000
+Subject: ext4: htree fix for '..' lookup
+
+Avoid looping in directory lookup when ext3_dx_find_entry()
+can't find the '..' entry in a directory and then looks it
+up in the directory.  This results in the ".." (parent
+directory) entry being added as the child of a directory
+in the dcache.  The '..' lookup can happen knfsd is looking
+up the path of a disconnected dentry.
+
+Bugzilla-ID: b=10458
+Signed-off-by: Alex Zhuravlev <alex@clusterfs.com>
+Reviewed-by: Kalpak Shah <kalpak@clusterfs.com>
+Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
+
 diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
 index cd01c4a..0aefa8e 100644
 --- a/fs/ext4/namei.c
index bbcd8ca..f4b1e98 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
 index 1342fe9..22250a4 100644
 --- a/fs/ext4/ext4.h
index 2d7276c..89a3825 100644 (file)
@@ -1,23 +1,26 @@
-From 1a0f7f0b9c13ef0aa86e125f350b6733bff8db3c Mon Sep 17 00:00:00 2001
-From: Liang Zhen <liang.zhen@intel.com>
-Date: Wed, 15 Jan 2020 07:35:13 -0600
-Subject: [PATCH] LU-50 ldiskfs: parallel directory operations for ext4
+LU-50 ldiskfs: pdirops patch for ldiskfs
 
- In a typical use case an application creates a separate output file for each
- node and task in a job. As nodes and tasks increase, hundreds of thousands of
- files may be created in a single directory within a short window of time.
- Today, both filename lookup and file system modifying operations (such as
- create and unlink) are protected with a single lock for an entire ldiskfs
- directory. PDO project will remove this bottleneck by introducing a parallel
- locking mechanism for entire ldiskfs directories. This work will enable
- multiple application threads to simultaneously lookup, create and unlink in
- parallel.
+Single directory performance is a critical for HPC workloads. In a
+typical use case an application creates a separate output file for
+each node and task in a job. As nodes and tasks increase, hundreds
+of thousands of files may be created in a single directory within
+a short window of time.
+Today, both filename lookup and file system modifying operations
+(such as create and unlink) are protected with a single lock for
+an entire ldiskfs directory. PDO project will remove this
+bottleneck by introducing a parallel locking mechanism for entire
+ldiskfs directories. This work will enable multiple application
+threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
-Signed-off-by: Liang Zhen <liang.zhen@intel.com>
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
 Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 ---
  fs/ext4/Makefile           |   1 +
  fs/ext4/ext4.h             |  78 ++++
index db280da..19e56bc 100644 (file)
@@ -1,7 +1,31 @@
-Since we could skip corrupt block groups, this patch
-use ext4_warning() intead of ext4_error() to make FS not
-emount RO in default
+commit 2963f3d09eb3a0817f87386c0bd7be7ce086809d
+Author:     Wang Shilong <wshilong@whamcloud.com>
+AuthorDate: Tue Sep 8 21:54:29 2015 +0800
+LU-7114 ldiskfs: corrupted bitmaps handling patches
 
+This patch backported following patches from upstream:
+
+163a203ddb36c36d4a1c942aececda0cc8d06aa7
+ext4: mark block group as corrupt on block bitmap error
+
+87a39389be3e3b007d341be510a7e4a0542bdf05
+ext4: mark block group as corrupt on inode bitmap error
+
+bdfb6ff4a255dcebeb09a901250e13a97eff75af
+ext4: mark group corrupt on group descriptor checksum
+
+Also use ext4_warning() instead of ext4_error() so that
+filesystem don't become RO in default, and together
+with these patches,FS wil still be usable even such
+bad things happen.
+
+Signed-off-by: Wang Shilong <wshilong@ddn.com>
+Change-Id: Ib4075aba7df6f7f59e89a90475405080acd43dd0
+Reviewed-on: http://review.whamcloud.com/16312
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Yang Sheng <yang.sheng@intel.com>
+
+NOTE: Ported to linux 5.8 keeps the ext4_warning() updates.
 ---
  fs/ext4/balloc.c  |   10 ++++----
  fs/ext4/ialloc.c  |    6 ++--
index 68ee3d4..245ed84 100644 (file)
@@ -1,12 +1,26 @@
-this patch implements feature which allows ext4 fs users (e.g. Lustre)
-to store data in ext4 dirent.
-data is stored in ext4 dirent after file-name, this space is accounted
-in de->rec_len. flag EXT4_DIRENT_LUFID added to d_type if extra data
-is present.
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
-make use of dentry->d_fsdata to pass fid to ext4. so no
-changes in ext4_add_entry() interface required.
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
 
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/dir.c    |   13 ++-
  fs/ext4/ext4.h   |   97 +++++++++++++++++++++++++-
index d43f4a1..712c355 100644 (file)
@@ -1,3 +1,15 @@
+commit f2f28f1d09c0a00b3fc569422f881931d857fac9
+Author:     Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Tue Oct 28 17:59:09 2008 +0000
+Subject: ext4: detect on-disk corruption of block bitmap
+
+Detect on-disk corruption of block bitmap and better checking of
+preallocated blocks.
+
+Bugzilla-ID: b=16680
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak.shah@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/ext4.h    |    1 
  fs/ext4/mballoc.c |  103 +++++++++++++++++++++++++++++++++++++++++++++++-------
index be5ec6f..c2f1a53 100644 (file)
@@ -1,3 +1,12 @@
+commit 2d3aaef4122c11dcb6d892da89522ffa37036136
+Author:     Fan Yong <yong.fan@whamcloud.com>
+AuthorDate: Thu Feb 25 00:32:12 2010 -0800
+Subject: ext4: diagnostic patch to verify lustre read-only device mechanism
+
+Diagnostic patch to check whether lustre read-only device mechanism works well or not.
+Signed-off-by: Fan Yong <yong.fan@whamcloud.com>
+Reviewed-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Rahul Deshmukh <rahul.deshmukh@sun.com>
 ---
  fs/ext4/mballoc.c |   43 +++++++++++++++++++++++++++++++++++++------
  fs/ext4/mballoc.h |    2 ++
index eae17e6..9957810 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 ---
  fs/ext4/ext4.h   |   23 ++++++++++++++++++++++-
  fs/ext4/ext4_jbd2.c | 1 +
index 6aa6261..893bdf9 100644 (file)
@@ -1,3 +1,15 @@
+commit d8d8fd9192a54c7b8caef8cca9b7a1eb5e5e3298
+Author: Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Thu Oct 23 10:02:19 2008 +0000
+
+Subject: ext4: support for tunable preallocation window
+Add support for tunable preallocation window and new tunables
+for large/small requests.
+
+Bugzilla-ID: b=12800
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak@clusterfs.com>
+Reviewed-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/ext4.h    |    7 +
  fs/ext4/inode.c   |    3 
index 8dd44bd..ee80885 100644 (file)
@@ -1,7 +1,7 @@
-From 5230b17f70f7d30161db506d4f631131befb319d Mon Sep 17 00:00:00 2001
-From: Xinliang Liu <xinliang.liu@linaro.org>
-Date: Wed, 10 May 2023 09:46:14 +0000
-Subject: [PATCH] ext4 delayed iput
+commit e239a14001b62d96c186ae2c9f58402f73e63dcc
+Author:     Andrew Perepechko <andrew.perepechko@hpe.com>
+AuthorDate: Mon Jan 31 19:55:31 2022 +0300
+LU-15404 ldiskfs: truncate during setxattr leads to kernel panic
 
 When changing a large xattr value to a different large xattr value,
 the old xattr inode is freed. Truncate during the final iput causes
@@ -15,6 +15,7 @@ Since the setxattr code adds xattr inodes with nlink=0 into the
 orphan list, old xattr inodes will be properly cleaned up in
 any case.
 
+Change-Id: Idd70befa6a83818ece06daccf9bb6256812674b9
 Signed-off-by: Andrew Perepechko <andrew.perepechko@hpe.com>
 HPE-bug-id: LUS-10534
 
@@ -22,7 +23,9 @@ Changes since v1:
 - fixed a bug added during the porting
 - fixed a workqueue related deadlock reported by Tetsuo Handa
 
-Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org>
+Reviewed-on: https://review.whamcloud.com/46358
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
+Reviewed-by: Alexander Zarochentsev <alexander.zarochentsev@hpe.com>
 ---
  fs/ext4/ext4.h    |  7 +++++--
  fs/ext4/page-io.c |  2 +-
index 0d2cfc6..490a0d5 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
 index 57169367362a..f3e369fc4dae 100644
 --- a/fs/ext4/ext4.h
index 183832c..9683e64 100644 (file)
@@ -1,3 +1,5 @@
+LU-50 ldiskfs: pdirops patch for ldiskfs
+
 Single directory performance is a critical for HPC workloads. In a
 typical use case an application creates a separate output file for
 each node and task in a job. As nodes and tasks increase, hundreds
@@ -11,8 +13,14 @@ ldiskfs directories. This work will enable multiple application
 threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
+Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 ---
  fs/ext4/Makefile |   1 +
  fs/ext4/ext4.h   |  78 ++++++++
index 9512f94..df53a43 100644 (file)
@@ -1,18 +1,26 @@
-From ef3b0235735794064352d9b053802b368ecdfcc9 Mon Sep 17 00:00:00 2001
-From: Xinliang Liu <xinliang.liu@linaro.org>
-Date: Thu, 11 May 2023 09:57:05 +0000
-Subject: [PATCH] ext4 data in dirent
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
-this patch implements feature which allows ext4 fs users (e.g. Lustre)
-to store data in ext4 dirent.
-data is stored in ext4 dirent after file-name, this space is accounted
-in de->rec_len. flag EXT4_DIRENT_LUFID added to d_type if extra data
-is present.
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
 
-make use of dentry->d_fsdata to pass fid to ext4. so no
-changes in ext4_add_entry() interface required.
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
 
-Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org>
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/dir.c         |  13 ++-
  fs/ext4/ext4.h        | 100 +++++++++++++++++++--
index 7ec7112..bf4b1c8 100644 (file)
@@ -1,3 +1,22 @@
+commit 66153d87190a3547099446d222f36114d3eeffad
+Author:     Yang Sheng <ys@whamcloud.com>
+AuthorDate: Tue Jan 24 03:31:27 2017 +0800
+Subject: LU-9031 osd: handle jinode change for ldiskfs
+
+We need to take care of jinode for ldiskfs. Since we
+did not get the inode from syscall like sys_open(). So
+we have to initialize it in OSD by ourselves.
+
+Signed-off-by: Yang Sheng <yang.sheng@intel.com>
+Change-Id: Iec6db290c3779a8f7c98e5d1356b71fd928d7c88
+Reviewed-on: https://review.whamcloud.com/24941
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Bob Glossman <bob.glossman@intel.com>
+---
+ fs/ext4/ext4.h  | 1 +
+ fs/ext4/inode.c | 9 ++++++++-
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
 Index: linux-stage/fs/ext4/inode.c
 ===================================================================
 --- linux-stage.orig/fs/ext4/inode.c
index 31cbc2d..a15b0dc 100644 (file)
@@ -1,7 +1,31 @@
-Since we could skip corrupt block groups, this patch
-use ext4_warning() intead of ext4_error() to make FS not
-emount RO in default, also fix a leftover from upstream
-commit 163a203ddb36c36d4a1c942
+commit 2963f3d09eb3a0817f87386c0bd7be7ce086809d
+Author:     Wang Shilong <wshilong@whamcloud.com>
+AuthorDate: Tue Sep 8 21:54:29 2015 +0800
+LU-7114 ldiskfs: corrupted bitmaps handling patches
+
+This patch backported following patches from upstream:
+
+163a203ddb36c36d4a1c942aececda0cc8d06aa7
+ext4: mark block group as corrupt on block bitmap error
+
+87a39389be3e3b007d341be510a7e4a0542bdf05
+ext4: mark block group as corrupt on inode bitmap error
+
+bdfb6ff4a255dcebeb09a901250e13a97eff75af
+ext4: mark group corrupt on group descriptor checksum
+
+Also use ext4_warning() instead of ext4_error() so that
+filesystem don't become RO in default, and together
+with these patches,FS wil still be usable even such
+bad things happen.
+
+Signed-off-by: Wang Shilong <wshilong@ddn.com>
+Change-Id: Ib4075aba7df6f7f59e89a90475405080acd43dd0
+Reviewed-on: http://review.whamcloud.com/16312
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Yang Sheng <yang.sheng@intel.com>
+
+NOTE: Ported to linux 6.6 keeps the ext4_warning() updates.
 ---
 Index: linux-stage/fs/ext4/balloc.c
 ===================================================================
index ca1ee06..89ef4ec 100644 (file)
@@ -1,11 +1,26 @@
-this patch implements feature which allows ext4 fs users (e.g. Lustre)
-to store data in ext4 dirent.
-data is stored in ext4 dirent after file-name, this space is accounted
-in de->rec_len. flag EXT4_DIRENT_LUFID added to d_type if extra data
-is present.
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
-make use of dentry->d_fsdata to pass fid to ext4. so no
-changes in ext4_add_entry() interface required.
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
+
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 
 Index: linux-stage/fs/ext4/dir.c
 ===================================================================
index 74ea752..c7b7d78 100644 (file)
@@ -1,9 +1,21 @@
+commit a70b020e5b2f1bbe3b759232852beaac4f0852b5
+Author:     Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
+AuthorDate: Fri Nov 25 16:17:09 2016 +0530
+LU-8364 ext4: fixes for failover mode.
+
+When ext4 runs in failover mode with read-only disk,
+it may loose part of allocation updates and fail while
+mounting fs due to group descriptor checks before journal
+replay not being valid after journal replay is complete.
+Don't produce panics with on disk checks in read-only mode.
+
+Seagate-bug-id: MRP-797
+Change-Id: I54bee3a0aeb9a15f5ee2a79f7a2a2a905f19af1a
+Signed-off-by: Alexey Lyashkov <alexey_lyashkov@xyratex.com>
+Signed-off-by: Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
+Reviewed-on: https://review.whamcloud.com/21141
+
 Index: linux-stage/fs/ext4/super.c
-When ldiskfs run in failover mode whith read-only disk.
-Part of allocation updates are lost and ldiskfs may fail
-while mounting this is due to inconsistent state of
-group-descriptor. Group-descriptor check is added after
-journal replay.
 ===================================================================
 --- linux-stage/fs/ext4/super.c        2016-11-06 15:15:30.892386878 +0530
 +++ linux-stage.orig.1/fs/ext4/super.c 2016-11-08 10:56:45.579892189 +0530
index 4b9e658..f83b03d 100644 (file)
@@ -1,3 +1,20 @@
+commit 113303973ec9f8484eb2355a1a6ef3c4c7fd6a56
+Author:     Alex Zhuravlev <alex@clusterfs.com>
+AuthorDate: Sat Feb 10 06:33:41 2007 +0000
+Subject: ext4: htree fix for '..' lookup
+
+Avoid looping in directory lookup when ext3_dx_find_entry()
+can't find the '..' entry in a directory and then looks it
+up in the directory.  This results in the ".." (parent
+directory) entry being added as the child of a directory
+in the dcache.  The '..' lookup can happen knfsd is looking
+up the path of a disconnected dentry.
+
+Bugzilla-ID: b=10458
+Signed-off-by: Alex Zhuravlev <alex@clusterfs.com>
+Reviewed-by: Kalpak Shah <kalpak@clusterfs.com>
+Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
+
 Index: linux-3.10.9-200.fc17.x86_64/fs/ext4/namei.c
 ===================================================================
 --- linux-3.10.9-200.fc17.x86_64.orig/fs/ext4/namei.c
index 34bba5c..47322bd 100644 (file)
@@ -1,3 +1,16 @@
+commit f2f28f1d09c0a00b3fc569422f881931d857fac9
+Author:     Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Tue Oct 28 17:59:09 2008 +0000
+Subject: ext4: detect on-disk corruption of block bitmap
+
+Detect on-disk corruption of block bitmap and better checking of
+preallocated blocks.
+
+Bugzilla-ID: b=16680
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak.shah@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
+
 Index: linux-3.10.0-123.el7.x86_64/fs/ext4/ext4.h
 ===================================================================
 --- linux-3.10.0-123.el7.x86_64.orig/fs/ext4/ext4.h
index 1e4fdeb..5d3f7a9 100644 (file)
@@ -1,3 +1,13 @@
+commit 2d3aaef4122c11dcb6d892da89522ffa37036136
+Author:     Fan Yong <yong.fan@whamcloud.com>
+AuthorDate: Thu Feb 25 00:32:12 2010 -0800
+Subject: ext4: diagnostic patch to verify lustre read-only device mechanism
+
+Diagnostic patch to check whether lustre read-only device mechanism works well or not.
+Signed-off-by: Fan Yong <yong.fan@whamcloud.com>
+Reviewed-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Rahul Deshmukh <rahul.deshmukh@sun.com>
+
 Index: linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/mballoc.c
 ===================================================================
 --- linux-3.10.0-123.13.2.el7.x86_64.orig/fs/ext4/mballoc.c
index 2212a34..9f2bd18 100644 (file)
@@ -1,6 +1,22 @@
-We won't change i_xtime in ldiskfs code path. But also
-need keep normal function out of Lustre. So we using
-S_NOCMTIME to indicate invoked from Lustre.
+commit d2c828a32a3b019194051ee24607eafee517cc43
+Author:     Niu Yawei <yawei.niu@intel.com>
+AuthorDate: Mon Feb 9 22:21:00 2015 -0500
+LU-6137 ldiskfs: simplify nocmtime patch
+
+Simplify the nocmtime patch by patching only ext4_current_time(),
+this fixed the defect that original patch doesn't handle setacl
+code path, it can also avoid the risk of future changes adding
+new places that needs to be fixed.
+
+Remove the obsolete xattr-no-update-ctime patch.
+
+Signed-off-by: Niu Yawei <yawei.niu@intel.com>
+Change-Id: I02928c4f867e9476f0bc1815dd3256e3d79dadf7
+Reviewed-on: http://review.whamcloud.com/13705
+Reviewed-by: Bobi Jam <bobijam@hotmail.com>
+Reviewed-by: Bob Glossman <bob.glossman@intel.com>
+Reviewed-by: Fan Yong <fan.yong@intel.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
 
 Index: linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/ext4.h
 ===================================================================
index cb3e1d0..449a875 100644 (file)
@@ -1,3 +1,16 @@
+commit d8d8fd9192a54c7b8caef8cca9b7a1eb5e5e3298
+Author: Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Thu Oct 23 10:02:19 2008 +0000
+
+Subject: ext4: support for tunable preallocation window
+Add support for tunable preallocation window and new tunables
+for large/small requests.
+
+Bugzilla-ID: b=12800
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak@clusterfs.com>
+Reviewed-by: Andreas Dilger <andreas.dilger@sun.com>
+
 Index: linux-stage/fs/ext4/ext4.h
 ===================================================================
 --- linux-stage.orig/fs/ext4/ext4.h
index 50c2e16..001de9f 100644 (file)
@@ -1,9 +1,51 @@
-From 3950e714298eca5bfd4955202c70b390f6f6c679 Mon Sep 17 00:00:00 2001
-From: Shaun Tancheff <shaun.tancheff@hpe.com>
-Date: Wed, 2 Dec 2020 13:23:45 -0600
-Subject: [PATCH] ext4 ialloc uid gid and pass owner down
+commit 5bb641fa61175fd0fe63e830219d88304b5162c3
+Author:     Shaun Tancheff <shaun.tancheff@hpe.com>
+AuthorDate: Thu Dec 10 10:31:51 2020 -0600
+LU-13239 ldiskfs: pass inode timestamps at initial creation
 
-pass inode timestamps at initial creation
+A previous patch https://github.com/Cray/lustre/commit/6d4fb6694
+"LUS-4880 osd-ldiskfs: pass uid/gid/xtime directly to ldiskfs"
+was intended to be ported to upstream lustre but was lost.
+
+The patch https://review.whamcloud.com/34685/
+"LU-12151 osd-ldiskfs: pass owner down rather than transfer it"
+passed the inode UID and GID down to ldiskfs at inode allocation
+time to avoid the overhead of transferring quota from the inode
+(initially created as root) over to the actual user of the file.
+
+The two patches differed slightly in that the LUS-4880 included
+passing the a/m/ctimes from osd-ldiskfs to ldiskfs at inode
+creation time avoids overhead of setting the timestamps afterward.
+
+Benchmarks using MDTEST:
+  mdtest -f 32 -l 32 -n 16384 -i 5 -p 120 -t -u -v -d mdtest
+
+                            master                 patched
+   Operation                  Mean    Std Dev         Mean   Std Dev
+   ---------                  ----    -------         ----   -------
+   Directory creation:   17008.593     72.700    17099.863   155.461
+   Directory stat    :  170513.269   1456.002   170105.207  2349.934
+   Directory removal :   80796.147   2633.832    84480.222   892.536
+   File creation     :   39227.419   7014.539    40429.900  6643.868
+   File stat         :  101761.395   2979.802   103818.800  1146.689
+   File read         :   86583.370    871.982    85725.254   965.862
+   File removal      :   74923.504    761.048    75075.180   723.966
+   Tree creation     :     588.570    244.534      608.332   123.939
+   Tree removal      :      39.874      1.873       44.357     2.350
+
+This patch also reorganizes the ldiskfs patch series in
+order to accommodate struct iattr being added to
+ldiskfs_create_inode.
+All supported server platforms RHEL 7.5+, SUSE 12+ and
+ubuntu 18+ are affected.
+
+HPE-bug-id: LUS-7378, LUS-4880, LUS-8042, LUS-9157, LUS-8772, LUS-8769
+Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
+Change-Id: I87e9c792b5240820bfd3a7268e477970ebac8465
+Reviewed-on: https://review.whamcloud.com/37556
+Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com>
+Reviewed-by: Jian Yu <yujian@whamcloud.com>
+Reviewed-by: Wang Shilong <wshilong@whamcloud.com>
 ---
  fs/ext4/ext4.h   |  9 +++++----
  fs/ext4/ialloc.c | 12 +++++++++++-
index 36ae900..b58b6c1 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 Index: linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/ext4.h
 ===================================================================
 --- linux-3.10.0-123.13.2.el7.x86_64.orig/fs/ext4/ext4.h
index 8db770a..831a8df 100644 (file)
@@ -1,3 +1,8 @@
+commit e239a14001b62d96c186ae2c9f58402f73e63dcc
+Author:     Andrew Perepechko <andrew.perepechko@hpe.com>
+AuthorDate: Mon Jan 31 19:55:31 2022 +0300
+LU-15404 ldiskfs: truncate during setxattr leads to kernel panic
+
 When changing a large xattr value to a different large xattr value,
 the old xattr inode is freed. Truncate during the final iput causes
 current transaction restart. Eventually, parent inode bh is marked
@@ -10,12 +15,17 @@ Since the setxattr code adds xattr inodes with nlink=0 into the
 orphan list, old xattr inodes will be properly cleaned up in
 any case.
 
+Change-Id: Idd70befa6a83818ece06daccf9bb6256812674b9
 Signed-off-by: Andrew Perepechko <andrew.perepechko@hpe.com>
 HPE-bug-id: LUS-10534
 
 Changes since v1:
 - fixed a bug added during the porting
 - fixed a workqueue related deadlock reported by Tetsuo Handa
+
+Reviewed-on: https://review.whamcloud.com/46358
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
+Reviewed-by: Alexander Zarochentsev <alexander.zarochentsev@hpe.com>
 ---
  fs/ext4/ext4.h    |  7 +++++--
  fs/ext4/page-io.c |  2 +-
index f0c8645..b674187 100644 (file)
@@ -1,3 +1,39 @@
+commit d0a722cb8fb886380e24e8261e8efca09a3262d6
+Author:     Sebastien Buisson <sbuisson@ddn.com>
+AuthorDate: Tue Dec 20 15:40:52 2022 +0100
+Commit:     Oleg Drokin <green@whamcloud.com>
+CommitDate: Thu Aug 31 06:28:45 2023 +0000
+LU-16374 ldiskfs: implement security.encdata xattr
+
+security.encdata is a virtual xattr containing information related
+to encrypted files. It is expressed as ASCII text with a "key: value"
+format, and space as field separator. For instance:
+
+   { encoding: base64url, size: 3012, enc_ctx: YWJjZGVmZ2hpamtsbW
+   5vcHFyc3R1dnd4eXphYmNkZWZnaGlqa2xtbg, enc_name: ZmlsZXdpdGh2ZX
+   J5bG9uZ25hbWVmaWxld2l0aHZlcnlsb25nbmFtZWZpbGV3aXRodmVyeWxvbmdu
+   YW1lZmlsZXdpdGg }
+
+'encoding' is the encoding method used for binary data, assume name
+can be up to 255 chars.
+'size' is the clear text file data length in bytes.
+'enc_ctx' is encoded encryption context, 40 bytes for v2.
+'enc_name' is encoded encrypted name, 256 bytes max.
+So on overall, this xattr is at most 727 chars plus terminating '0'.
+
+On get, the value of the security.encdata xattr is computed from
+encrypted file's information.
+On set, encrypted file's information is restored from xattr value.
+The encrypted name is stored temporarily in a dedicated xattr
+LDISKFS_XATTR_NAME_RAWENCNAME, that will be used to set correct name
+at linkat.
+
+Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
+Change-Id: Ia318c39d403b1c448e71bcd5b29862d022d05d0a
+Reviewed-on: https://review.whamcloud.com/49456
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
+Reviewed-by: Li Dongyang <dongyangli@ddn.com>
+
 diff -wur /dev/null b/fs/ext4/encdata.h
 --- /dev/null
 +++ b/fs/ext4/encdata.h
index 72371af..5df59bf 100644 (file)
@@ -1,3 +1,5 @@
+LU-50 ldiskfs: pdirops patch for ldiskfs
+
 Single directory performance is a critical for HPC workloads. In a
 typical use case an application creates a separate output file for
 each node and task in a job. As nodes and tasks increase, hundreds
@@ -11,8 +13,14 @@ ldiskfs directories. This work will enable multiple application
 threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
+Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 
 Index: linux-3.10.0-229.1.2.fc21.x86_64/fs/ext4/Makefile
 ===================================================================
index 1281d4b..5dbdb37 100644 (file)
@@ -1,3 +1,22 @@
+commit 66153d87190a3547099446d222f36114d3eeffad
+Author:     Yang Sheng <ys@whamcloud.com>
+AuthorDate: Tue Jan 24 03:31:27 2017 +0800
+Subject: LU-9031 osd: handle jinode change for ldiskfs
+
+We need to take care of jinode for ldiskfs. Since we
+did not get the inode from syscall like sys_open(). So
+we have to initialize it in OSD by ourselves.
+
+Signed-off-by: Yang Sheng <yang.sheng@intel.com>
+Change-Id: Iec6db290c3779a8f7c98e5d1356b71fd928d7c88
+Reviewed-on: https://review.whamcloud.com/24941
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Bob Glossman <bob.glossman@intel.com>
+---
+ fs/ext4/ext4.h  | 1 +
+ fs/ext4/inode.c | 9 ++++++++-
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
 Index: linux-4.18.0-193.el8/fs/ext4/inode.c
 ===================================================================
 --- linux-4.18.0-193.el8.orig/fs/ext4/inode.c
index a3b2627..06a2d07 100644 (file)
@@ -1,6 +1,31 @@
-Since we could skip corrupt block groups, this patch
-use ext4_warning() intead of ext4_error() to make FS not
-emount RO in default
+commit 2963f3d09eb3a0817f87386c0bd7be7ce086809d
+Author:     Wang Shilong <wshilong@whamcloud.com>
+AuthorDate: Tue Sep 8 21:54:29 2015 +0800
+LU-7114 ldiskfs: corrupted bitmaps handling patches
+
+This patch backported following patches from upstream:
+
+163a203ddb36c36d4a1c942aececda0cc8d06aa7
+ext4: mark block group as corrupt on block bitmap error
+
+87a39389be3e3b007d341be510a7e4a0542bdf05
+ext4: mark block group as corrupt on inode bitmap error
+
+bdfb6ff4a255dcebeb09a901250e13a97eff75af
+ext4: mark group corrupt on group descriptor checksum
+
+Also use ext4_warning() instead of ext4_error() so that
+filesystem don't become RO in default, and together
+with these patches,FS wil still be usable even such
+bad things happen.
+
+Signed-off-by: Wang Shilong <wshilong@ddn.com>
+Change-Id: Ib4075aba7df6f7f59e89a90475405080acd43dd0
+Reviewed-on: http://review.whamcloud.com/16312
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Yang Sheng <yang.sheng@intel.com>
+
+NOTE: Ported to rhel8.3 keeps the ext4_warning() updates.
 
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/balloc.c
 ===================================================================
index 2678de0..5a35765 100644 (file)
@@ -1,3 +1,16 @@
+commit f2f28f1d09c0a00b3fc569422f881931d857fac9
+Author:     Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Tue Oct 28 17:59:09 2008 +0000
+Subject: ext4: detect on-disk corruption of block bitmap
+
+Detect on-disk corruption of block bitmap and better checking of
+preallocated blocks.
+
+Bugzilla-ID: b=16680
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak.shah@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
+
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/ext4.h
 ===================================================================
 --- linux-4.18.0-80.1.2.el8_0.orig/fs/ext4/ext4.h
index 04c9b15..367fe75 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/ext4.h
 ===================================================================
 --- linux-4.18.0-80.1.2.el8_0.orig/fs/ext4/ext4.h
index 08a571e..a705ec1 100644 (file)
@@ -1,11 +1,26 @@
-this patch implements feature which allows ext4 fs users (e.g. Lustre)
-to store data in ext4 dirent.
-data is stored in ext4 dirent after file-name, this space is accounted
-in de->rec_len. flag EXT4_DIRENT_LUFID added to d_type if extra data
-is present.
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
-make use of dentry->d_fsdata to pass fid to ext4. so no
-changes in ext4_add_entry() interface required.
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
+
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 
 diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c
 index 9fdd2b2..2a73a69 100644
index a6be29e..ad22991 100644 (file)
@@ -1,3 +1,5 @@
+LU-50 ldiskfs: pdirops patch for ldiskfs
+
 Single directory performance is a critical for HPC workloads. In a
 typical use case an application creates a separate output file for
 each node and task in a job. As nodes and tasks increase, hundreds
@@ -11,8 +13,14 @@ ldiskfs directories. This work will enable multiple application
 threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
+Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/Makefile
 ===================================================================
index da83d03..39e1514 100644 (file)
@@ -1,6 +1,31 @@
-Since we could skip corrupt block groups, this patch
-use ext4_warning() intead of ext4_error() to make FS not
-emount RO in default
+commit 2963f3d09eb3a0817f87386c0bd7be7ce086809d
+Author:     Wang Shilong <wshilong@whamcloud.com>
+AuthorDate: Tue Sep 8 21:54:29 2015 +0800
+LU-7114 ldiskfs: corrupted bitmaps handling patches
+
+This patch backported following patches from upstream:
+
+163a203ddb36c36d4a1c942aececda0cc8d06aa7
+ext4: mark block group as corrupt on block bitmap error
+
+87a39389be3e3b007d341be510a7e4a0542bdf05
+ext4: mark block group as corrupt on inode bitmap error
+
+bdfb6ff4a255dcebeb09a901250e13a97eff75af
+ext4: mark group corrupt on group descriptor checksum
+
+Also use ext4_warning() instead of ext4_error() so that
+filesystem don't become RO in default, and together
+with these patches,FS wil still be usable even such
+bad things happen.
+
+Signed-off-by: Wang Shilong <wshilong@ddn.com>
+Change-Id: Ib4075aba7df6f7f59e89a90475405080acd43dd0
+Reviewed-on: http://review.whamcloud.com/16312
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Yang Sheng <yang.sheng@intel.com>
+
+NOTE: Ported to rhel8.7 keeps the ext4_warning() updates.
 
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/balloc.c
 ===================================================================
index 34e62c4..aeff447 100644 (file)
@@ -1,3 +1,16 @@
+commit f2f28f1d09c0a00b3fc569422f881931d857fac9
+Author:     Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Tue Oct 28 17:59:09 2008 +0000
+Subject: ext4: detect on-disk corruption of block bitmap
+
+Detect on-disk corruption of block bitmap and better checking of
+preallocated blocks.
+
+Bugzilla-ID: b=16680
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak.shah@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
+
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/ext4.h
 ===================================================================
 --- linux-4.18.0-80.1.2.el8_0.orig/fs/ext4/ext4.h
index 3dc0b10..7a00ba6 100644 (file)
@@ -1,3 +1,13 @@
+commit 2d3aaef4122c11dcb6d892da89522ffa37036136
+Author:     Fan Yong <yong.fan@whamcloud.com>
+AuthorDate: Thu Feb 25 00:32:12 2010 -0800
+Subject: ext4: diagnostic patch to verify lustre read-only device mechanism
+
+Diagnostic patch to check whether lustre read-only device mechanism works well or not.
+Signed-off-by: Fan Yong <yong.fan@whamcloud.com>
+Reviewed-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Rahul Deshmukh <rahul.deshmukh@sun.com>
+
 Index: kernel-4.18.0-423.el8/fs/ext4/mballoc.c
 ===================================================================
 --- kernel-4.18.0-423.el8.orig/fs/ext4/mballoc.c
index dc8f02b..0290cfa 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 Index: kernel-4.18.0-423.el8/fs/ext4/ext4.h
 ===================================================================
 --- kernel-4.18.0-423.el8.orig/fs/ext4/ext4.h
index 6be995d..2da3d4d 100644 (file)
@@ -1,3 +1,5 @@
+LU-50 ldiskfs: pdirops patch for ldiskfs
+
 Single directory performance is a critical for HPC workloads. In a
 typical use case an application creates a separate output file for
 each node and task in a job. As nodes and tasks increase, hundreds
@@ -11,8 +13,14 @@ ldiskfs directories. This work will enable multiple application
 threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
+Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 
 Index: linux-4.18.0-423.el8/fs/ext4/Makefile
 ===================================================================
index a9b02c7..86d669e 100644 (file)
@@ -1,6 +1,31 @@
-Since we could skip corrupt block groups, this patch
-use ext4_warning() intead of ext4_error() to make FS not
-emount RO in default
+commit 2963f3d09eb3a0817f87386c0bd7be7ce086809d
+Author:     Wang Shilong <wshilong@whamcloud.com>
+AuthorDate: Tue Sep 8 21:54:29 2015 +0800
+LU-7114 ldiskfs: corrupted bitmaps handling patches
+
+This patch backported following patches from upstream:
+
+163a203ddb36c36d4a1c942aececda0cc8d06aa7
+ext4: mark block group as corrupt on block bitmap error
+
+87a39389be3e3b007d341be510a7e4a0542bdf05
+ext4: mark block group as corrupt on inode bitmap error
+
+bdfb6ff4a255dcebeb09a901250e13a97eff75af
+ext4: mark group corrupt on group descriptor checksum
+
+Also use ext4_warning() instead of ext4_error() so that
+filesystem don't become RO in default, and together
+with these patches,FS wil still be usable even such
+bad things happen.
+
+Signed-off-by: Wang Shilong <wshilong@ddn.com>
+Change-Id: Ib4075aba7df6f7f59e89a90475405080acd43dd0
+Reviewed-on: http://review.whamcloud.com/16312
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Yang Sheng <yang.sheng@intel.com>
+
+NOTE: Ported to rhel8 keeps the ext4_warning() updates.
 
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/balloc.c
 ===================================================================
index 6413133..8408897 100644 (file)
@@ -1,8 +1,19 @@
-When ldiskfs run in failover mode whith read-only disk.
-Part of allocation updates are lost and ldiskfs may fail
-while mounting this is due to inconsistent state of
-group-descriptor. Group-descriptor check is added after
-journal replay.
+commit a70b020e5b2f1bbe3b759232852beaac4f0852b5
+Author:     Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
+AuthorDate: Fri Nov 25 16:17:09 2016 +0530
+LU-8364 ext4: fixes for failover mode.
+
+When ext4 runs in failover mode with read-only disk,
+it may loose part of allocation updates and fail while
+mounting fs due to group descriptor checks before journal
+replay not being valid after journal replay is complete.
+Don't produce panics with on disk checks in read-only mode.
+
+Seagate-bug-id: MRP-797
+Change-Id: I54bee3a0aeb9a15f5ee2a79f7a2a2a905f19af1a
+Signed-off-by: Alexey Lyashkov <alexey_lyashkov@xyratex.com>
+Signed-off-by: Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
+Reviewed-on: https://review.whamcloud.com/21141
 
 Index: linux-4.18.0-32.el8.x86_64/fs/ext4/super.c
 ===================================================================
index 0140e81..48fdb48 100644 (file)
@@ -1,3 +1,39 @@
+commit d0a722cb8fb886380e24e8261e8efca09a3262d6
+Author:     Sebastien Buisson <sbuisson@ddn.com>
+AuthorDate: Tue Dec 20 15:40:52 2022 +0100
+Commit:     Oleg Drokin <green@whamcloud.com>
+CommitDate: Thu Aug 31 06:28:45 2023 +0000
+LU-16374 ldiskfs: implement security.encdata xattr
+
+security.encdata is a virtual xattr containing information related
+to encrypted files. It is expressed as ASCII text with a "key: value"
+format, and space as field separator. For instance:
+
+   { encoding: base64url, size: 3012, enc_ctx: YWJjZGVmZ2hpamtsbW
+   5vcHFyc3R1dnd4eXphYmNkZWZnaGlqa2xtbg, enc_name: ZmlsZXdpdGh2ZX
+   J5bG9uZ25hbWVmaWxld2l0aHZlcnlsb25nbmFtZWZpbGV3aXRodmVyeWxvbmdu
+   YW1lZmlsZXdpdGg }
+
+'encoding' is the encoding method used for binary data, assume name
+can be up to 255 chars.
+'size' is the clear text file data length in bytes.
+'enc_ctx' is encoded encryption context, 40 bytes for v2.
+'enc_name' is encoded encrypted name, 256 bytes max.
+So on overall, this xattr is at most 727 chars plus terminating '0'.
+
+On get, the value of the security.encdata xattr is computed from
+encrypted file's information.
+On set, encrypted file's information is restored from xattr value.
+The encrypted name is stored temporarily in a dedicated xattr
+LDISKFS_XATTR_NAME_RAWENCNAME, that will be used to set correct name
+at linkat.
+
+Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
+Change-Id: Ia318c39d403b1c448e71bcd5b29862d022d05d0a
+Reviewed-on: https://review.whamcloud.com/49456
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
+Reviewed-by: Li Dongyang <dongyangli@ddn.com>
+
 diff -wur /dev/null b/fs/ext4/encdata.h
 --- /dev/null
 +++ b/fs/ext4/encdata.h
index 0fbddc5..9b6d72a 100644 (file)
@@ -1,9 +1,51 @@
-From ead0a400ed5f3621b2450a5da61c2295a224e002 Mon Sep 17 00:00:00 2001
-From: Shaun Tancheff <shaun.tancheff@hpe.com>
-Date: Wed, 2 Dec 2020 13:02:37 -0600
-Subject: [PATCH] ext4 ialloc uid gid and pass owner down
+commit 5bb641fa61175fd0fe63e830219d88304b5162c3
+Author:     Shaun Tancheff <shaun.tancheff@hpe.com>
+AuthorDate: Thu Dec 10 10:31:51 2020 -0600
+LU-13239 ldiskfs: pass inode timestamps at initial creation
 
-pass inode timestamps at initial creation
+A previous patch https://github.com/Cray/lustre/commit/6d4fb6694
+"LUS-4880 osd-ldiskfs: pass uid/gid/xtime directly to ldiskfs"
+was intended to be ported to upstream lustre but was lost.
+
+The patch https://review.whamcloud.com/34685/
+"LU-12151 osd-ldiskfs: pass owner down rather than transfer it"
+passed the inode UID and GID down to ldiskfs at inode allocation
+time to avoid the overhead of transferring quota from the inode
+(initially created as root) over to the actual user of the file.
+
+The two patches differed slightly in that the LUS-4880 included
+passing the a/m/ctimes from osd-ldiskfs to ldiskfs at inode
+creation time avoids overhead of setting the timestamps afterward.
+
+Benchmarks using MDTEST:
+  mdtest -f 32 -l 32 -n 16384 -i 5 -p 120 -t -u -v -d mdtest
+
+                            master                 patched
+   Operation                  Mean    Std Dev         Mean   Std Dev
+   ---------                  ----    -------         ----   -------
+   Directory creation:   17008.593     72.700    17099.863   155.461
+   Directory stat    :  170513.269   1456.002   170105.207  2349.934
+   Directory removal :   80796.147   2633.832    84480.222   892.536
+   File creation     :   39227.419   7014.539    40429.900  6643.868
+   File stat         :  101761.395   2979.802   103818.800  1146.689
+   File read         :   86583.370    871.982    85725.254   965.862
+   File removal      :   74923.504    761.048    75075.180   723.966
+   Tree creation     :     588.570    244.534      608.332   123.939
+   Tree removal      :      39.874      1.873       44.357     2.350
+
+This patch also reorganizes the ldiskfs patch series in
+order to accommodate struct iattr being added to
+ldiskfs_create_inode.
+All supported server platforms RHEL 7.5+, SUSE 12+ and
+ubuntu 18+ are affected.
+
+HPE-bug-id: LUS-7378, LUS-4880, LUS-8042, LUS-9157, LUS-8772, LUS-8769
+Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
+Change-Id: I87e9c792b5240820bfd3a7268e477970ebac8465
+Reviewed-on: https://review.whamcloud.com/37556
+Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com>
+Reviewed-by: Jian Yu <yujian@whamcloud.com>
+Reviewed-by: Wang Shilong <wshilong@whamcloud.com>
 ---
  fs/ext4/ext4.h   |  8 ++++----
  fs/ext4/ialloc.c | 11 ++++++++++-
index acf7718..edbbf42 100644 (file)
@@ -1,3 +1,16 @@
+commit f2f28f1d09c0a00b3fc569422f881931d857fac9
+Author:     Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Tue Oct 28 17:59:09 2008 +0000
+Subject: ext4: detect on-disk corruption of block bitmap
+
+Detect on-disk corruption of block bitmap and better checking of
+preallocated blocks.
+
+Bugzilla-ID: b=16680
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak.shah@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
+
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/ext4.h
 ===================================================================
 --- linux-4.18.0-80.1.2.el8_0.orig/fs/ext4/ext4.h
index dc4712c..b8272e7 100644 (file)
@@ -1,3 +1,23 @@
+commit d2c828a32a3b019194051ee24607eafee517cc43
+Author:     Niu Yawei <yawei.niu@intel.com>
+AuthorDate: Mon Feb 9 22:21:00 2015 -0500
+LU-6137 ldiskfs: simplify nocmtime patch
+
+Simplify the nocmtime patch by patching only ext4_current_time(),
+this fixed the defect that original patch doesn't handle setacl
+code path, it can also avoid the risk of future changes adding
+new places that needs to be fixed.
+
+Remove the obsolete xattr-no-update-ctime patch.
+
+Signed-off-by: Niu Yawei <yawei.niu@intel.com>
+Change-Id: I02928c4f867e9476f0bc1815dd3256e3d79dadf7
+Reviewed-on: http://review.whamcloud.com/13705
+Reviewed-by: Bobi Jam <bobijam@hotmail.com>
+Reviewed-by: Bob Glossman <bob.glossman@intel.com>
+Reviewed-by: Fan Yong <fan.yong@intel.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
+
 Index: linux-4.18.0-32.el8.x86_64/fs/ext4/ext4.h
 ===================================================================
 --- linux-4.18.0-32.el8.x86_64.orig/fs/ext4/ext4.h
index f183db2..35d8c03 100644 (file)
@@ -1,3 +1,5 @@
+LU-50 ldiskfs: pdirops patch for ldiskfs
+
 Single directory performance is a critical for HPC workloads. In a
 typical use case an application creates a separate output file for
 each node and task in a job. As nodes and tasks increase, hundreds
@@ -11,8 +13,14 @@ ldiskfs directories. This work will enable multiple application
 threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
+Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/Makefile
 ===================================================================
index 1c9a00a..238cea7 100644 (file)
@@ -1,3 +1,16 @@
+commit d8d8fd9192a54c7b8caef8cca9b7a1eb5e5e3298
+Author: Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Thu Oct 23 10:02:19 2008 +0000
+
+Subject: ext4: support for tunable preallocation window
+Add support for tunable preallocation window and new tunables
+for large/small requests.
+
+Bugzilla-ID: b=12800
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak@clusterfs.com>
+Reviewed-by: Andreas Dilger <andreas.dilger@sun.com>
+
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/ext4.h
 ===================================================================
 --- linux-4.18.0-80.1.2.el8_0.orig/fs/ext4/ext4.h
index 79e0d05..0e14a9f 100644 (file)
@@ -1,10 +1,13 @@
-Subject: [PATCH] ext4: delayed iput
+commit e239a14001b62d96c186ae2c9f58402f73e63dcc
+Author:     Andrew Perepechko <andrew.perepechko@hpe.com>
+AuthorDate: Mon Jan 31 19:55:31 2022 +0300
+LU-15404 ldiskfs: truncate during setxattr leads to kernel panic
 
-When changing a large xattr value to a different large xattr
-value, the old xattr inode is freed. Truncate during the final iput causes
-current transaction restart. Eventually, parent inode bh is marked dirty and
-kernel panic happens when jbd2 figures out that this bh belongs to the
-committed transaction.
+When changing a large xattr value to a different large xattr value,
+the old xattr inode is freed. Truncate during the final iput causes
+current transaction restart. Eventually, parent inode bh is marked
+dirty and kernel panic happens when jbd2 figures out that this bh
+belongs to the committed transaction.
 
 A possible fix is to call this final iput in a separate thread.
 This way, setxattr transactions will never be split into two.
@@ -12,8 +15,17 @@ Since the setxattr code adds xattr inodes with nlink=0 into the
 orphan list, old xattr inodes will be properly cleaned up in
 any case.
 
+Change-Id: Idd70befa6a83818ece06daccf9bb6256812674b9
 Signed-off-by: Andrew Perepechko <andrew.perepechko@hpe.com>
 HPE-bug-id: LUS-10534
+
+Changes since v1:
+- fixed a bug added during the porting
+- fixed a workqueue related deadlock reported by Tetsuo Handa
+
+Reviewed-on: https://review.whamcloud.com/46358
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
+Reviewed-by: Alexander Zarochentsev <alexander.zarochentsev@hpe.com>
 ---
  fs/ext4/ext4.h    |  7 +++++--
  fs/ext4/page-io.c |  2 +-
index 9c8d407..ed4242c 100644 (file)
@@ -1,20 +1,26 @@
-Subject: [PATCH] ext4-pdirop
+LU-50 ldiskfs: pdirops patch for ldiskfs
 
- In a typical use case an application creates a separate output file for each
- node and task in a job. As nodes and tasks increase, hundreds of thousands of
- files may be created in a single directory within a short window of time.
- Today, both filename lookup and file system modifying operations (such as
- create and unlink) are protected with a single lock for an entire ldiskfs
- directory. PDO project will remove this bottleneck by introducing a parallel
- locking mechanism for entire ldiskfs directories. This work will enable
- multiple application threads to simultaneously lookup, create and unlink in
- parallel.
+Single directory performance is a critical for HPC workloads. In a
+typical use case an application creates a separate output file for
+each node and task in a job. As nodes and tasks increase, hundreds
+of thousands of files may be created in a single directory within
+a short window of time.
+Today, both filename lookup and file system modifying operations
+(such as create and unlink) are protected with a single lock for
+an entire ldiskfs directory. PDO project will remove this
+bottleneck by introducing a parallel locking mechanism for entire
+ldiskfs directories. This work will enable multiple application
+threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
-Signed-off-by: Liang Zhen <liang.zhen@intel.com>
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
 Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 ---
  fs/ext4/Makefile |   1 +
  fs/ext4/ext4.h   |  78 ++++++++
index a8bf10a..1d269df 100644 (file)
@@ -1,5 +1,26 @@
-Subject: [PATCH] linux-5.18/ext4-data-in-dirent
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
+
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/dir.c         |   9 +-
  fs/ext4/ext4.h        | 107 ++++++++++++++++--
index 671c7a9..6f4e0e7 100644 (file)
@@ -1,8 +1,19 @@
-From 13cc3eebdb3ef14c782cc4772b33448e38ded07a Mon Sep 17 00:00:00 2001
-From: Shaun Tancheff <shaun.tancheff@hpe.com>
-Date: Sat, 21 Jan 2023 06:30:19 -0600
-Subject: [PATCH] P: linux-6.1/ext4-dont-check-before-replay.patch
+commit a70b020e5b2f1bbe3b759232852beaac4f0852b5
+Author:     Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
+AuthorDate: Fri Nov 25 16:17:09 2016 +0530
+LU-8364 ext4: fixes for failover mode.
 
+When ext4 runs in failover mode with read-only disk,
+it may loose part of allocation updates and fail while
+mounting fs due to group descriptor checks before journal
+replay not being valid after journal replay is complete.
+Don't produce panics with on disk checks in read-only mode.
+
+Seagate-bug-id: MRP-797
+Change-Id: I54bee3a0aeb9a15f5ee2a79f7a2a2a905f19af1a
+Signed-off-by: Alexey Lyashkov <alexey_lyashkov@xyratex.com>
+Signed-off-by: Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
+Reviewed-on: https://review.whamcloud.com/21141
 ---
  fs/ext4/super.c | 6 ++++++
  1 file changed, 6 insertions(+)
index a7a71c8..29883d1 100644 (file)
@@ -1,3 +1,47 @@
+commit d0a722cb8fb886380e24e8261e8efca09a3262d6
+Author:     Sebastien Buisson <sbuisson@ddn.com>
+AuthorDate: Tue Dec 20 15:40:52 2022 +0100
+Commit:     Oleg Drokin <green@whamcloud.com>
+CommitDate: Thu Aug 31 06:28:45 2023 +0000
+LU-16374 ldiskfs: implement security.encdata xattr
+
+security.encdata is a virtual xattr containing information related
+to encrypted files. It is expressed as ASCII text with a "key: value"
+format, and space as field separator. For instance:
+
+   { encoding: base64url, size: 3012, enc_ctx: YWJjZGVmZ2hpamtsbW
+   5vcHFyc3R1dnd4eXphYmNkZWZnaGlqa2xtbg, enc_name: ZmlsZXdpdGh2ZX
+   J5bG9uZ25hbWVmaWxld2l0aHZlcnlsb25nbmFtZWZpbGV3aXRodmVyeWxvbmdu
+   YW1lZmlsZXdpdGg }
+
+'encoding' is the encoding method used for binary data, assume name
+can be up to 255 chars.
+'size' is the clear text file data length in bytes.
+'enc_ctx' is encoded encryption context, 40 bytes for v2.
+'enc_name' is encoded encrypted name, 256 bytes max.
+So on overall, this xattr is at most 727 chars plus terminating '0'.
+
+On get, the value of the security.encdata xattr is computed from
+encrypted file's information.
+On set, encrypted file's information is restored from xattr value.
+The encrypted name is stored temporarily in a dedicated xattr
+LDISKFS_XATTR_NAME_RAWENCNAME, that will be used to set correct name
+at linkat.
+
+Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
+Change-Id: Ia318c39d403b1c448e71bcd5b29862d022d05d0a
+Reviewed-on: https://review.whamcloud.com/49456
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
+Reviewed-by: Li Dongyang <dongyangli@ddn.com>
+---
+ fs/ext4/encdata.h        | 128 ++++++++++++++++++++++++
+ fs/ext4/inode.c          |   6 ++
+ fs/ext4/super.c          |   8 ++
+ fs/ext4/xattr.h          |   2 +
+ fs/ext4/xattr_security.c | 209 ++++++++++++++++++++++++++++++++++++++-
+ 5 files changed, 352 insertions(+), 1 deletion(-)
+ create mode 100644 fs/ext4/encdata.h
+
 diff --git a/fs/ext4/encdata.h b/fs/ext4/encdata.h
 new file mode 100644
 index 00000000..aa83832f
index 624305c..3668aa1 100644 (file)
@@ -1,14 +1,22 @@
-Subject: [PATCH] ext4-fiemap-kerenl-data
+Subject: [PATCH] fiemap on kernel allocated buffers
 
-The patch clones:
+With KERNEL_DS gone lustre needs an alternative for fiemap to
+copy extents to kernel space memory.
+
+Direct in-kernel calls to inode->f_ops->fiemap() can utilize
+an otherwise unused flag on fiemap_extent_info fi_flags
+to indicate the fiemap extent buffer is allocated in kernel space.
+
+Introduce EXT4_FIEMAP_FLAG_MEMCPY and use it.
+
+The patch pulls some common code into ext4:
   ext4_iomap_to_fiemap from iomap_to_fiemap
   ext4_iomap_fiemap from iomap_fiemap
   ext4_fiemap_fill_next_extent from fiemap_fill_next_extent
 and changes ext4_fiemap_fill_next_extent to conditionally
 use memcpy instead of copy_to_user.
 
-Signed-off-by: shaun.tancheff@hpe.com
-
+Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
 ---
  fs/ext4/ext4.h    |   3 +
  fs/ext4/extents.c | 239 +++++++++++++++++++++++++++++++++++++++++++++-
index 0531dbb..9d43520 100644 (file)
@@ -1,5 +1,15 @@
-Subject: [PATCH] ext4-mballoc-extra-checks
+commit f2f28f1d09c0a00b3fc569422f881931d857fac9
+Author:     Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Tue Oct 28 17:59:09 2008 +0000
+Subject: ext4: detect on-disk corruption of block bitmap
 
+Detect on-disk corruption of block bitmap and better checking of
+preallocated blocks.
+
+Bugzilla-ID: b=16680
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak.shah@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/ext4.h    |   1 +
  fs/ext4/mballoc.c | 103 ++++++++++++++++++++++++++++++++++++++++------
index 15e4910..28d4bb8 100644 (file)
@@ -1,20 +1,26 @@
-Subject: [PATCH] ext4-pdirop
+LU-50 ldiskfs: pdirops patch for ldiskfs
 
- In a typical use case an application creates a separate output file for each
- node and task in a job. As nodes and tasks increase, hundreds of thousands of
- files may be created in a single directory within a short window of time.
- Today, both filename lookup and file system modifying operations (such as
- create and unlink) are protected with a single lock for an entire ldiskfs
- directory. PDO project will remove this bottleneck by introducing a parallel
- locking mechanism for entire ldiskfs directories. This work will enable
- multiple application threads to simultaneously lookup, create and unlink in
- parallel.
+Single directory performance is a critical for HPC workloads. In a
+typical use case an application creates a separate output file for
+each node and task in a job. As nodes and tasks increase, hundreds
+of thousands of files may be created in a single directory within
+a short window of time.
+Today, both filename lookup and file system modifying operations
+(such as create and unlink) are protected with a single lock for
+an entire ldiskfs directory. PDO project will remove this
+bottleneck by introducing a parallel locking mechanism for entire
+ldiskfs directories. This work will enable multiple application
+threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
-Signed-off-by: Liang Zhen <liang.zhen@intel.com>
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
 Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 ---
  fs/ext4/Makefile |   1 +
  fs/ext4/ext4.h   |  78 ++++++++
index daf91a6..2eb5f05 100644 (file)
@@ -1,5 +1,15 @@
-Subject: [PATCH] ext4-prealloc
+commit d8d8fd9192a54c7b8caef8cca9b7a1eb5e5e3298
+Author: Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Thu Oct 23 10:02:19 2008 +0000
 
+Subject: ext4: support for tunable preallocation window
+Add support for tunable preallocation window and new tunables
+for large/small requests.
+
+Bugzilla-ID: b=12800
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak@clusterfs.com>
+Reviewed-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/ext4.h    |   7 +-
  fs/ext4/inode.c   |   3 +
index 8ee6857..4025ae6 100644 (file)
@@ -1,5 +1,26 @@
-Subject: [PATCH] P: rhel9.3/ext4-data-in-dirent.patch
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
+
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/dir.c         |   9 +-
  fs/ext4/ext4.h        | 107 ++++++++++++++++--
index 11236a5..31ebd76 100644 (file)
@@ -1,12 +1,26 @@
-this patch implements feature which allows ext4 fs users (e.g. Lustre)
-to store data in ext4 dirent.
-data is stored in ext4 dirent after file-name, this space is accounted
-in de->rec_len. flag EXT4_DIRENT_LUFID added to d_type if extra data
-is present.
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
-make use of dentry->d_fsdata to pass fid to ext4. so no
-changes in ext4_add_entry() interface required.
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
 
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/dir.c         |   9 +-
  fs/ext4/ext4.h        | 107 ++++++++++++++++--
index 7cd32cc..22012f9 100644 (file)
@@ -1,19 +1,26 @@
-Subject: [PATCH] LU-50 ldiskfs: pdirops patch for ldiskfs
+LU-50 ldiskfs: pdirops patch for ldiskfs
 
- Single directory performance is a critical for HPC workloads.
- In a typical use case an application creates a separate output file for each
- node and task in a job. As nodes and tasks increase, hundreds of thousands of
- files may be created in a single directory within a short window of time.
- Today, both filename lookup and file system modifying operations (such as
- create and unlink) are protected with a single lock for an entire ldiskfs
- directory. PDO project will remove this bottleneck by introducing a parallel
- locking mechanism for entire ldiskfs directories. This work will enable
- multiple application threads to simultaneously lookup, create and unlink in
- parallel.
+Single directory performance is a critical for HPC workloads. In a
+typical use case an application creates a separate output file for
+each node and task in a job. As nodes and tasks increase, hundreds
+of thousands of files may be created in a single directory within
+a short window of time.
+Today, both filename lookup and file system modifying operations
+(such as create and unlink) are protected with a single lock for
+an entire ldiskfs directory. PDO project will remove this
+bottleneck by introducing a parallel locking mechanism for entire
+ldiskfs directories. This work will enable multiple application
+threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
+Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 ---
  fs/ext4/Makefile |   1 +
  fs/ext4/ext4.h   |  78 ++++++++
index aef0aa7..f44bead 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 ---
  fs/ext4/ext4.h   |   23 ++++++++++++++++++++++-
  fs/ext4/ialloc.c |    3 ++-
index b65c947..eb07fed 100644 (file)
@@ -1,3 +1,5 @@
+LU-50 ldiskfs: pdirops patch for ldiskfs
+
 Single directory performance is a critical for HPC workloads. In a
 typical use case an application creates a separate output file for
 each node and task in a job. As nodes and tasks increase, hundreds
@@ -11,9 +13,14 @@ ldiskfs directories. This work will enable multiple application
 threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
 
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
+Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 ---
  fs/ext4/Makefile           |    1 
  fs/ext4/ext4.h             |   78 +++
index 893fd4c..c016423 100644 (file)
@@ -1,12 +1,26 @@
-Subject: [PATCH] This patch implements feature which allows ext4 fs users 
- (e.g. Lustre) to store data in ext4 dirent.
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
-Data is stored in ext4 dirent after file-name, this space is accounted
-in de->rec_len. Flag EXT4_DIRENT_LUFID is added to d_type when extra
-data is present.
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
 
-This uses dentry->d_fsdata to pass fid to ext4. so no
-changes in ext4_add_entry() interface required.
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/dir.c    |  14 ++--
  fs/ext4/ext4.h   |  97 +++++++++++++++++++++--
index 46439a8..8e1ff81 100644 (file)
@@ -1,7 +1,26 @@
-From ad0056791ac915e164a59c8e8dc6f7eb5648b3c1 Mon Sep 17 00:00:00 2001
-From: Shaun Tancheff <shaun.tancheff@hpe.com>
-Date: Fri, 16 Jun 2023 14:25:38 +0700
-Subject: [PATCH] sles15sp3/ext4-pdirop
+LU-50 ldiskfs: pdirops patch for ldiskfs
+
+Single directory performance is a critical for HPC workloads. In a
+typical use case an application creates a separate output file for
+each node and task in a job. As nodes and tasks increase, hundreds
+of thousands of files may be created in a single directory within
+a short window of time.
+Today, both filename lookup and file system modifying operations
+(such as create and unlink) are protected with a single lock for
+an entire ldiskfs directory. PDO project will remove this
+bottleneck by introducing a parallel locking mechanism for entire
+ldiskfs directories. This work will enable multiple application
+threads to simultaneously lookup, create and unlink in parallel.
+
+This patch contains:
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
+Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 
 ---
  fs/ext4/Makefile |   1 +
index c479056..c492420 100644 (file)
@@ -1,12 +1,27 @@
-Subject: [PATCH] This patch implements feature which allows ext4 fs users 
- (e.g. Lustre) to store data in ext4 dirent.
 
-Data is stored in ext4 dirent after file-name, this space is accounted
-in de->rec_len. Flag EXT4_DIRENT_LUFID is added to d_type when extra
-data is present.
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
-This uses dentry->d_fsdata to pass fid to ext4. so no
-changes in ext4_add_entry() interface required.
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
+
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/dir.c         |   9 +-
  fs/ext4/ext4.h        | 106 ++++++++++++++++--
index 193b561..fb05a07 100644 (file)
@@ -1,10 +1,13 @@
-Subject: [PATCH] ext4: delayed iput
+commit e239a14001b62d96c186ae2c9f58402f73e63dcc
+Author:     Andrew Perepechko <andrew.perepechko@hpe.com>
+AuthorDate: Mon Jan 31 19:55:31 2022 +0300
+LU-15404 ldiskfs: truncate during setxattr leads to kernel panic
 
-When changing a large xattr value to a different large xattr
-value, the old xattr inode is freed. Truncate during the final iput causes
-current transaction restart. Eventually, parent inode bh is marked dirty and
-kernel panic happens when jbd2 figures out that this bh belongs to the
-committed transaction.
+When changing a large xattr value to a different large xattr value,
+the old xattr inode is freed. Truncate during the final iput causes
+current transaction restart. Eventually, parent inode bh is marked
+dirty and kernel panic happens when jbd2 figures out that this bh
+belongs to the committed transaction.
 
 A possible fix is to call this final iput in a separate thread.
 This way, setxattr transactions will never be split into two.
@@ -12,8 +15,17 @@ Since the setxattr code adds xattr inodes with nlink=0 into the
 orphan list, old xattr inodes will be properly cleaned up in
 any case.
 
+Change-Id: Idd70befa6a83818ece06daccf9bb6256812674b9
 Signed-off-by: Andrew Perepechko <andrew.perepechko@hpe.com>
 HPE-bug-id: LUS-10534
+
+Changes since v1:
+- fixed a bug added during the porting
+- fixed a workqueue related deadlock reported by Tetsuo Handa
+
+Reviewed-on: https://review.whamcloud.com/46358
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
+Reviewed-by: Alexander Zarochentsev <alexander.zarochentsev@hpe.com>
 ---
  fs/ext4/ext4.h    |  7 +++++--
  fs/ext4/page-io.c |  2 +-
index e58a993..45f384b 100644 (file)
@@ -1,4 +1,11 @@
-Subject: [PATCH] ext4-misc
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
 
 ---
  fs/ext4/ext4.h   | 25 ++++++++++++++++++++++++-
index 93dfbf7..ea3b185 100644 (file)
@@ -1,4 +1,4 @@
-Subject: [PATCH] sles15sp4/ext4-pdirop.patch
+LU-50 ldiskfs: pdirops patch for ldiskfs
 
 Single directory performance is a critical for HPC workloads. In a
 typical use case an application creates a separate output file for
@@ -13,9 +13,14 @@ ldiskfs directories. This work will enable multiple application
 threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
 
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
+Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 ---
  fs/ext4/Makefile |   1 +
  fs/ext4/ext4.h   |  78 ++++++++
index 254534d..245a723 100644 (file)
@@ -1,3 +1,17 @@
+commit 66153d87190a3547099446d222f36114d3eeffad
+Author:     Yang Sheng <ys@whamcloud.com>
+AuthorDate: Tue Jan 24 03:31:27 2017 +0800
+Subject: LU-9031 osd: handle jinode change for ldiskfs
+
+We need to take care of jinode for ldiskfs. Since we
+did not get the inode from syscall like sys_open(). So
+we have to initialize it in OSD by ourselves.
+
+Signed-off-by: Yang Sheng <yang.sheng@intel.com>
+Change-Id: Iec6db290c3779a8f7c98e5d1356b71fd928d7c88
+Reviewed-on: https://review.whamcloud.com/24941
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Bob Glossman <bob.glossman@intel.com>
 ---
  fs/ext4/ext4.h  |    1 +
  fs/ext4/inode.c |    7 +++++++
index d6a5a7f..fe444a5 100644 (file)
@@ -1,12 +1,31 @@
-Subject: [PATCH] ext4: add new ext4_mark_group_bitmap_corrupted() helper
+commit 2963f3d09eb3a0817f87386c0bd7be7ce086809d
+Author:     Wang Shilong <wshilong@whamcloud.com>
+AuthorDate: Tue Sep 8 21:54:29 2015 +0800
+LU-7114 ldiskfs: corrupted bitmaps handling patches
 
-Since there are many places to set inode/block bitmap
-corrupt bit, add a new helper for it, which will make
-codes more clear.
+This patch backported following patches from upstream:
+
+163a203ddb36c36d4a1c942aececda0cc8d06aa7
+ext4: mark block group as corrupt on block bitmap error
+
+87a39389be3e3b007d341be510a7e4a0542bdf05
+ext4: mark block group as corrupt on inode bitmap error
+
+bdfb6ff4a255dcebeb09a901250e13a97eff75af
+ext4: mark group corrupt on group descriptor checksum
+
+Also use ext4_warning() instead of ext4_error() so that
+filesystem don't become RO in default, and together
+with these patches,FS wil still be usable even such
+bad things happen.
 
 Signed-off-by: Wang Shilong <wshilong@ddn.com>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Reviewed-by: Andreas Dilger <adilger@dilger.ca>
+Change-Id: Ib4075aba7df6f7f59e89a90475405080acd43dd0
+Reviewed-on: http://review.whamcloud.com/16312
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Yang Sheng <yang.sheng@intel.com>
+
+NOTE: Ported to linux SUSE15 keeps the ext4_warning() updates.
 ---
  fs/ext4/balloc.c  | 29 +++++++----------------------
  fs/ext4/ext4.h    |  7 +++++++
index f7de42a..6a26a59 100644 (file)
@@ -1,15 +1,19 @@
-Subject: [PATCH] ext4: don't verify group descriptors until after journal
- replay
+commit a70b020e5b2f1bbe3b759232852beaac4f0852b5
+Author:     Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
+AuthorDate: Fri Nov 25 16:17:09 2016 +0530
+LU-8364 ext4: fixes for failover mode.
 
-When ldiskfs runs in failover mode with read-only disk, it may
-lose part of allocation updates and fail while mounting the
-filesystem due to group descriptor checks before journal replay.
-Don't panic with on-disk checks in read-only mode.
+When ext4 runs in failover mode with read-only disk,
+it may loose part of allocation updates and fail while
+mounting fs due to group descriptor checks before journal
+replay not being valid after journal replay is complete.
+Don't produce panics with on disk checks in read-only mode.
 
 Seagate-bug-id: MRP-797
+Change-Id: I54bee3a0aeb9a15f5ee2a79f7a2a2a905f19af1a
 Signed-off-by: Alexey Lyashkov <alexey_lyashkov@xyratex.com>
 Signed-off-by: Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
-Lustre-change: https://review.whamcloud.com/21141
+Reviewed-on: https://review.whamcloud.com/21141
 ---
  fs/ext4/super.c | 12 +++++++-----
  1 file changed, 7 insertions(+), 5 deletions(-)
index c6f0371..4b28bc3 100644 (file)
@@ -1,3 +1,20 @@
+commit 113303973ec9f8484eb2355a1a6ef3c4c7fd6a56
+Author:     Alex Zhuravlev <alex@clusterfs.com>
+AuthorDate: Sat Feb 10 06:33:41 2007 +0000
+Subject: ext4: htree fix for '..' lookup
+
+Avoid looping in directory lookup when ext3_dx_find_entry()
+can't find the '..' entry in a directory and then looks it
+up in the directory.  This results in the ".." (parent
+directory) entry being added as the child of a directory
+in the dcache.  The '..' lookup can happen knfsd is looking
+up the path of a disconnected dentry.
+
+Bugzilla-ID: b=10458
+Signed-off-by: Alex Zhuravlev <alex@clusterfs.com>
+Reviewed-by: Kalpak Shah <kalpak@clusterfs.com>
+Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
+
 Index: linux-3.10.9-200.fc17.x86_64/fs/ext4/namei.c
 ===================================================================
 --- linux-3.10.9-200.fc17.x86_64.orig/fs/ext4/namei.c
index f10d267..5af9a1d 100644 (file)
@@ -1,3 +1,15 @@
+commit f2f28f1d09c0a00b3fc569422f881931d857fac9
+Author:     Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Tue Oct 28 17:59:09 2008 +0000
+Subject: ext4: detect on-disk corruption of block bitmap
+
+Detect on-disk corruption of block bitmap and better checking of
+preallocated blocks.
+
+Bugzilla-ID: b=16680
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak.shah@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/ext4.h    |    1 
  fs/ext4/mballoc.c |  123 ++++++++++++++++++++++++++++++++++++++++++------------
index d9c104c..f31bec3 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 ---
  fs/ext4/ext4.h   |   23 ++++++++++++++++++++++-
  fs/ext4/ialloc.c |    3 ++-
index cf0f42b..8057fd4 100644 (file)
@@ -1,3 +1,16 @@
+commit d8d8fd9192a54c7b8caef8cca9b7a1eb5e5e3298
+Author: Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Thu Oct 23 10:02:19 2008 +0000
+
+Subject: ext4: support for tunable preallocation window
+Add support for tunable preallocation window and new tunables
+for large/small requests.
+
+Bugzilla-ID: b=12800
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak@clusterfs.com>
+Reviewed-by: Andreas Dilger <andreas.dilger@sun.com>
+
 Index: linux-3.10.0-123.el7.x86_64/fs/ext4/ext4.h
 ===================================================================
 --- linux-3.10.0-123.el7.x86_64.orig/fs/ext4/ext4.h
index 8354011..afba1ac 100644 (file)
@@ -1,3 +1,22 @@
+commit 66153d87190a3547099446d222f36114d3eeffad
+Author:     Yang Sheng <ys@whamcloud.com>
+AuthorDate: Tue Jan 24 03:31:27 2017 +0800
+Subject: LU-9031 osd: handle jinode change for ldiskfs
+
+We need to take care of jinode for ldiskfs. Since we
+did not get the inode from syscall like sys_open(). So
+we have to initialize it in OSD by ourselves.
+
+Signed-off-by: Yang Sheng <yang.sheng@intel.com>
+Change-Id: Iec6db290c3779a8f7c98e5d1356b71fd928d7c88
+Reviewed-on: https://review.whamcloud.com/24941
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Bob Glossman <bob.glossman@intel.com>
+---
+ fs/ext4/ext4.h  | 1 +
+ fs/ext4/inode.c | 9 ++++++++-
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
 Index: linux-4.15.0/fs/ext4/inode.c
 ===================================================================
 --- linux-4.15.0.orig/fs/ext4/inode.c
index 9062641..c154f41 100644 (file)
@@ -1,7 +1,29 @@
-Since we could skip corrupt block groups, this patch
-use ext4_warning() intead of ext4_error() to make FS not
-emount RO in default, also fix a leftover from upstream
-commit 163a203ddb36c36d4a1c942
+commit 2963f3d09eb3a0817f87386c0bd7be7ce086809d
+Author:     Wang Shilong <wshilong@whamcloud.com>
+AuthorDate: Tue Sep 8 21:54:29 2015 +0800
+LU-7114 ldiskfs: corrupted bitmaps handling patches
+
+This patch backported following patches from upstream:
+
+163a203ddb36c36d4a1c942aececda0cc8d06aa7
+ext4: mark block group as corrupt on block bitmap error
+
+87a39389be3e3b007d341be510a7e4a0542bdf05
+ext4: mark block group as corrupt on inode bitmap error
+
+bdfb6ff4a255dcebeb09a901250e13a97eff75af
+ext4: mark group corrupt on group descriptor checksum
+
+Also use ext4_warning() instead of ext4_error() so that
+filesystem don't become RO in default, and together
+with these patches,FS wil still be usable even such
+bad things happen.
+
+Signed-off-by: Wang Shilong <wshilong@ddn.com>
+Change-Id: Ib4075aba7df6f7f59e89a90475405080acd43dd0
+Reviewed-on: http://review.whamcloud.com/16312
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Yang Sheng <yang.sheng@intel.com>
 
 Index: linux-4.15.0/fs/ext4/balloc.c
 ===================================================================
index 1d6c6b2..978c3b6 100644 (file)
@@ -1,11 +1,26 @@
-this patch implements feature which allows ext4 fs users (e.g. Lustre)
-to store data in ext4 dirent.
-data is stored in ext4 dirent after file-name, this space is accounted
-in de->rec_len. flag EXT4_DIRENT_LUFID added to d_type if extra data
-is present.
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
 
-make use of dentry->d_fsdata to pass fid to ext4. so no
-changes in ext4_add_entry() interface required.
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
+
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 
 Index: linux-4.15.0/fs/ext4/dir.c
 ===================================================================
index 1d82dc2..8b72387 100644 (file)
@@ -1,8 +1,19 @@
-When ldiskfs run in failover mode whith read-only disk.
-Part of allocation updates are lost and ldiskfs may fail
-while mounting this is due to inconsistent state of
-group-descriptor. Group-descriptor check is added after
-journal replay.
+commit a70b020e5b2f1bbe3b759232852beaac4f0852b5
+Author:     Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
+AuthorDate: Fri Nov 25 16:17:09 2016 +0530
+LU-8364 ext4: fixes for failover mode.
+
+When ext4 runs in failover mode with read-only disk,
+it may loose part of allocation updates and fail while
+mounting fs due to group descriptor checks before journal
+replay not being valid after journal replay is complete.
+Don't produce panics with on disk checks in read-only mode.
+
+Seagate-bug-id: MRP-797
+Change-Id: I54bee3a0aeb9a15f5ee2a79f7a2a2a905f19af1a
+Signed-off-by: Alexey Lyashkov <alexey_lyashkov@xyratex.com>
+Signed-off-by: Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
+Reviewed-on: https://review.whamcloud.com/21141
 
 Index: linux-4.15.0/fs/ext4/super.c
 ===================================================================
index b298d35..c0909dc 100644 (file)
@@ -1,3 +1,16 @@
+commit f2f28f1d09c0a00b3fc569422f881931d857fac9
+Author:     Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Tue Oct 28 17:59:09 2008 +0000
+Subject: ext4: detect on-disk corruption of block bitmap
+
+Detect on-disk corruption of block bitmap and better checking of
+preallocated blocks.
+
+Bugzilla-ID: b=16680
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak.shah@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
+
 Index: linux-4.15.0/fs/ext4/ext4.h
 ===================================================================
 --- linux-4.15.0.orig/fs/ext4/ext4.h
index 1d0c967..cb59661 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 Index: linux-4.15.0/fs/ext4/ext4.h
 ===================================================================
 --- linux-4.15.0.orig/fs/ext4/ext4.h
index 718ee9d..afcd87e 100644 (file)
@@ -1,6 +1,22 @@
-We won't change i_xtime in ldiskfs code path. But also
-need keep normal function out of Lustre. So we using
-S_NOCMTIME to indicate invoked from Lustre.
+commit d2c828a32a3b019194051ee24607eafee517cc43
+Author:     Niu Yawei <yawei.niu@intel.com>
+AuthorDate: Mon Feb 9 22:21:00 2015 -0500
+LU-6137 ldiskfs: simplify nocmtime patch
+
+Simplify the nocmtime patch by patching only ext4_current_time(),
+this fixed the defect that original patch doesn't handle setacl
+code path, it can also avoid the risk of future changes adding
+new places that needs to be fixed.
+
+Remove the obsolete xattr-no-update-ctime patch.
+
+Signed-off-by: Niu Yawei <yawei.niu@intel.com>
+Change-Id: I02928c4f867e9476f0bc1815dd3256e3d79dadf7
+Reviewed-on: http://review.whamcloud.com/13705
+Reviewed-by: Bobi Jam <bobijam@hotmail.com>
+Reviewed-by: Bob Glossman <bob.glossman@intel.com>
+Reviewed-by: Fan Yong <fan.yong@intel.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
 
 Index: linux-4.15.0/fs/ext4/ext4.h
 ===================================================================
index 65b522a..e2351b6 100644 (file)
@@ -1,3 +1,5 @@
+LU-50 ldiskfs: pdirops patch for ldiskfs
+
 Single directory performance is a critical for HPC workloads. In a
 typical use case an application creates a separate output file for
 each node and task in a job. As nodes and tasks increase, hundreds
@@ -11,8 +13,14 @@ ldiskfs directories. This work will enable multiple application
 threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
+Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 
 Index: linux-4.15.0/fs/ext4/Makefile
 ===================================================================
index da2b6c4..3c466b3 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
 index 0df15ed..da97ee5 100644
 --- a/fs/ext4/ext4.h
index fe8d7e6..632e3cd 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 diff -ur a/fs/ext4/ext4.h b/fs/ext4/ext4.h
 --- a/fs/ext4/ext4.h   2022-03-24 16:23:11.725060881 -0600
 +++ b/fs/ext4/ext4.h   2022-03-24 16:24:35.400642866 -0600
index 39af563..ad8db1d 100644 (file)
@@ -1,9 +1,31 @@
-Subject: [PATCH] ext4-corrupted-inode-block-bitmaps-handling-patches
+commit 2963f3d09eb3a0817f87386c0bd7be7ce086809d
+Author:     Wang Shilong <wshilong@whamcloud.com>
+AuthorDate: Tue Sep 8 21:54:29 2015 +0800
+LU-7114 ldiskfs: corrupted bitmaps handling patches
 
-Since we could skip corrupt block groups, this patch
-use ext4_warning() intead of ext4_error() to make FS not
-remount RO in default
+This patch backported following patches from upstream:
 
+163a203ddb36c36d4a1c942aececda0cc8d06aa7
+ext4: mark block group as corrupt on block bitmap error
+
+87a39389be3e3b007d341be510a7e4a0542bdf05
+ext4: mark block group as corrupt on inode bitmap error
+
+bdfb6ff4a255dcebeb09a901250e13a97eff75af
+ext4: mark group corrupt on group descriptor checksum
+
+Also use ext4_warning() instead of ext4_error() so that
+filesystem don't become RO in default, and together
+with these patches,FS wil still be usable even such
+bad things happen.
+
+Signed-off-by: Wang Shilong <wshilong@ddn.com>
+Change-Id: Ib4075aba7df6f7f59e89a90475405080acd43dd0
+Reviewed-on: http://review.whamcloud.com/16312
+Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
+Reviewed-by: Yang Sheng <yang.sheng@intel.com>
+
+NOTE: Ported to ubuntu 20.04 keeps the ext4_warning() updates.
 ---
 diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
 index fadcb94e..f151ba9c 100644
index e6c8aec..0430b27 100644 (file)
@@ -1,3 +1,27 @@
+commit 2db3b2b33ee796f4ea61316773452d936303ad27
+Author:     Pravin Shelar <Pravin.Shelar@sun.com>
+AuthorDate: Sun Oct 4 18:13:14 2009 +0000
+Subject: ext4: add ext4-data-in-dirent patch
+
+Allows ext4 to store extra data records inside the ext4_dirent
+along with the regular directory entry (type, length, filename).
+Data is stored in ext4 dirent after filename, with a bit flag in
+de->file_type to indicate if any record after de->name is used.
+Each in-use record is variable length and must store a 1-byte
+length (including the length byte itself) at the start so that it
+can be skipped if the record type is unknown/uneeded.  The record
+starts after a NUL byte terminator for the filename.  This extra
+space is accounted in de->rec_len but not de->name_len.
+
+Flag EXT4_DIRENT_LUFID is used for a 128-bit file identifier.
+Make use of dentry->d_fsdata to pass LUFID to ext4, so no changes
+in ext4_add_entry() interface are required.
+
+Bugzilla-ID: b=17670
+Signed-off-by: Pravin Shelar <Pravin.Shelar@sun.com>
+Reviewed-by: Huang Hua <h.huang@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
+
 diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c
 index 74b172a4..c6afabcb 100644
 --- a/fs/ext4/dir.c
index 78540fd..e3d5013 100644 (file)
@@ -1,15 +1,19 @@
-Subject: [PATCH] ext4: don't verify group descriptors until after journal
- replay
+commit a70b020e5b2f1bbe3b759232852beaac4f0852b5
+Author:     Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
+AuthorDate: Fri Nov 25 16:17:09 2016 +0530
+LU-8364 ext4: fixes for failover mode.
 
-When ldiskfs runs in failover mode with read-only disk, it may
-lose part of allocation updates and fail while mounting the
-filesystem due to group descriptor checks before journal replay.
-Don't panic with on-disk checks in read-only mode.
+When ext4 runs in failover mode with read-only disk,
+it may loose part of allocation updates and fail while
+mounting fs due to group descriptor checks before journal
+replay not being valid after journal replay is complete.
+Don't produce panics with on disk checks in read-only mode.
 
 Seagate-bug-id: MRP-797
+Change-Id: I54bee3a0aeb9a15f5ee2a79f7a2a2a905f19af1a
 Signed-off-by: Alexey Lyashkov <alexey_lyashkov@xyratex.com>
 Signed-off-by: Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
-Lustre-change: https://review.whamcloud.com/21141
+Reviewed-on: https://review.whamcloud.com/21141
 ---
 
 diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index ada37bb..5ddfcdc 100644 (file)
@@ -1,5 +1,15 @@
-Subject: [PATCH] ubuntu20.04.5/ext4-mballoc-extra-checks
+commit f2f28f1d09c0a00b3fc569422f881931d857fac9
+Author:     Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Tue Oct 28 17:59:09 2008 +0000
+Subject: ext4: detect on-disk corruption of block bitmap
 
+Detect on-disk corruption of block bitmap and better checking of
+preallocated blocks.
+
+Bugzilla-ID: b=16680
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak.shah@sun.com>
+Signed-off-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/ext4.h    |   1 +
  fs/ext4/mballoc.c | 107 ++++++++++++++++++++++++++++++++++++++++------
index d3334b1..1665702 100644 (file)
@@ -1,4 +1,15 @@
-Subject: [PATCH] ext4-encdata
+commit d8d8fd9192a54c7b8caef8cca9b7a1eb5e5e3298
+Author: Alex Zhuravlev <alex.zhuravlev@sun.com>
+AuthorDate: Thu Oct 23 10:02:19 2008 +0000
+
+Subject: ext4: support for tunable preallocation window
+Add support for tunable preallocation window and new tunables
+for large/small requests.
+
+Bugzilla-ID: b=12800
+Signed-off-by: Alex Zhuravlev <alex.zhuravlev@sun.com>
+Reviewed-by: Kalpak Shah <kalpak@clusterfs.com>
+Reviewed-by: Andreas Dilger <andreas.dilger@sun.com>
 ---
  fs/ext4/ext4.h    |   7 +-
  fs/ext4/inode.c   |   3 +
index 2897d35..4a9b87e 100644 (file)
@@ -1,23 +1,26 @@
-From 1a0f7f0b9c13ef0aa86e125f350b6733bff8db3c Mon Sep 17 00:00:00 2001
-From: Liang Zhen <liang.zhen@intel.com>
-Date: Wed, 15 Jan 2020 07:35:13 -0600
-Subject: [PATCH] LU-50 ldiskfs: parallel directory operations for ext4
+LU-50 ldiskfs: pdirops patch for ldiskfs
 
- In a typical use case an application creates a separate output file for each
- node and task in a job. As nodes and tasks increase, hundreds of thousands of
- files may be created in a single directory within a short window of time.
- Today, both filename lookup and file system modifying operations (such as
- create and unlink) are protected with a single lock for an entire ldiskfs
- directory. PDO project will remove this bottleneck by introducing a parallel
- locking mechanism for entire ldiskfs directories. This work will enable
- multiple application threads to simultaneously lookup, create and unlink in
- parallel.
+Single directory performance is a critical for HPC workloads. In a
+typical use case an application creates a separate output file for
+each node and task in a job. As nodes and tasks increase, hundreds
+of thousands of files may be created in a single directory within
+a short window of time.
+Today, both filename lookup and file system modifying operations
+(such as create and unlink) are protected with a single lock for
+an entire ldiskfs directory. PDO project will remove this
+bottleneck by introducing a parallel locking mechanism for entire
+ldiskfs directories. This work will enable multiple application
+threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
-Signed-off-by: Liang Zhen <liang.zhen@intel.com>
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
 Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 ---
  fs/ext4/Makefile           |   1 +
  fs/ext4/ext4.h             |  78 ++++
index 9343e52..1c5d602 100644 (file)
@@ -1,3 +1,12 @@
+commit b175e2441b0cd9fae60341ba92b0f7f192e71446
+Author: girish <girish>
+
+b=16893
+i=adilger
+i=johann
+
+ext4 ldiskfs patches for rhel5
+
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/ext4.h
 ===================================================================
 --- linux-4.18.0-80.1.2.el8_0.orig/fs/ext4/ext4.h
index 6d25a01..13c3608 100644 (file)
@@ -1,23 +1,26 @@
-From 1a0f7f0b9c13ef0aa86e125f350b6733bff8db3c Mon Sep 17 00:00:00 2001
-From: Liang Zhen <liang.zhen@intel.com>
-Date: Wed, 15 Jan 2020 07:35:13 -0600
-Subject: [PATCH] LU-50 ldiskfs: parallel directory operations for ext4
+LU-50 ldiskfs: pdirops patch for ldiskfs
 
- In a typical use case an application creates a separate output file for each
- node and task in a job. As nodes and tasks increase, hundreds of thousands of
- files may be created in a single directory within a short window of time.
- Today, both filename lookup and file system modifying operations (such as
- create and unlink) are protected with a single lock for an entire ldiskfs
- directory. PDO project will remove this bottleneck by introducing a parallel
- locking mechanism for entire ldiskfs directories. This work will enable
- multiple application threads to simultaneously lookup, create and unlink in
- parallel.
+Single directory performance is a critical for HPC workloads. In a
+typical use case an application creates a separate output file for
+each node and task in a job. As nodes and tasks increase, hundreds
+of thousands of files may be created in a single directory within
+a short window of time.
+Today, both filename lookup and file system modifying operations
+(such as create and unlink) are protected with a single lock for
+an entire ldiskfs directory. PDO project will remove this
+bottleneck by introducing a parallel locking mechanism for entire
+ldiskfs directories. This work will enable multiple application
+threads to simultaneously lookup, create and unlink in parallel.
 
 This patch contains:
- - pdirops support for ldiskfs
- - integrate with osd-ldiskfs
-Signed-off-by: Liang Zhen <liang.zhen@intel.com>
+  - pdirops support for ldiskfs
+  - N-level htree directory
+  - integrate with osd-ldiskfs
+
+Signed-off-by: Liang Zhen <liang@whamcloud.com>
 Change-Id: I269c0e3112e68f3acd79e860dab052a68c7d7aaa
+Reviewed-on: http://review.whamcloud.com/375
+Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
 ---
  fs/ext4/Makefile           |   1 +
  fs/ext4/ext4.h             |  78 ++++