-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 ++++++++
-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 +++++++++++++++++++++++-
-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 +++++++++++++++++++++++++++++++++++++++++++++-
+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 ++-
-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 +++++++++
-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 ++---
-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 ++++++++++-
-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 ++++++++++++++++++++++++++++++++++++++++------
-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 +
-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 ++---
-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 ++++++++++++++++--
-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 ++++++++++++++++++++++++++++++++++++++++------
+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 +
-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 +
-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 ++++++++
-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
+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
+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
-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 ++++
-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 ++--
-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 +++++++++++++++++++++++++-
+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 +++++++++++++++++++++++++++++++++++++++++++++++-------
+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 ++
+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 +
+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
-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
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
- 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 +-
+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
+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
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 ++++++++
-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 +++++++++++++++++++--
+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
-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
===================================================================
-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
===================================================================
+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
+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
+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
+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
-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
===================================================================
+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
-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 +++++++++++-
+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
+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
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 +-
+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
+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
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
===================================================================
+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
-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
===================================================================
+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
+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
-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
+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
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
===================================================================
-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
===================================================================
+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
+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
+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
+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
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
===================================================================
-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
===================================================================
-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
===================================================================
+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
-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 ++++++++++-
+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
+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
+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
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
===================================================================
+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
-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.
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 +-
-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 ++++++++
-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 ++++++++++++++++--
-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(+)
+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
-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 +++++++++++++++++++++++++++++++++++++++++++++-
-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 ++++++++++++++++++++++++++++++++++++++++------
-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 ++++++++
-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 +
-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 ++++++++++++++++--
-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 ++++++++++++++++--
-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 ++++++++
+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 ++-
+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
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 +++
-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 +++++++++++++++++++++--
-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 +
-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 ++++++++++++++++--
-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.
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 +-
-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 ++++++++++++++++++++++++-
-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
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 ++++++++
+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 +++++++
-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 +++++++
-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(-)
+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
+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 ++++++++++++++++++++++++++++++++++++++++++------------
+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 ++-
+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
+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
-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
===================================================================
-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
===================================================================
-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
===================================================================
+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
+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
-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
===================================================================
+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
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
===================================================================
+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
+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
-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
+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
-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
-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 ++++++++++++++++++++++++++++++++++++++++------
-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 +
-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 ++++
+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
-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 ++++