Skip to content

Commit

Permalink
Suggest non-gki kernel users to backport path_umount (#1464)
Browse files Browse the repository at this point in the history
Most kernel builders have to touch their kernel source code anyway, why
not also tell them to backport path_umount so even non-gki users can
benefit from this?

I know this might be a bit controversial as this will raise the barrier
of entry, but the benefits are just so high.

Idea was from OnlyTomInSecond on KernelSU group chat way back, and it
has been on the discussions for some time

references:
https://t.me/KernelSU_group/27237/176515
https://t.me/KernelSU_group/3249/184908

tiann/KernelSU#955 (comment)

OnlyTomInSecond/android_kernel_xiaomi_sdm845@03d233d
tiann/KernelSU#1060

https://elixir.bootlin.com/linux/v5.9.1/source/fs/namespace.c#L1728
https://elixir.bootlin.com/linux/v5.10.9/source/fs/namespace.c#L1730
https://elixir.bootlin.com/linux/v6.5/source/fs/namespace.c#L1887
tiann/KernelSU#1464 (comment)

Kernel side change examples
5.4
natsumerinchan/kernel_oneplus_sm8350@961d978
4.19
backslashxx/android_karnol_ximi_fog@164917f
4.14
crdroidandroid/android_kernel_xiaomi_sm6150@c07c70a
4.9
backslashxx/msm8953-kernel@195f075
4.4
https://github.com/riarumoda/android_kernel_samsung_a9y18qlte/commit/21ea33fe41ce079ec1d663c0bd2201bc00a8084a
tiann/KernelSU#1464 (comment)
ofcourse having someone on 3.18 confirm this will be nice.

**PROS**: umount modules for everyone
**CONS**: barrier of entry +1

---------

Co-authored-by: Christoph Hellwig <[email protected]>
Co-authored-by: Fede2782 <[email protected]>
Co-authored-by: Tom <[email protected]>
  • Loading branch information
4 people authored and diphons committed Oct 18, 2024
1 parent 0237e6f commit 8bee87d
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
7 changes: 7 additions & 0 deletions drivers/kernelsu/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -56,5 +56,12 @@ $(info -- KernelSU Manager signature hash: $(KSU_EXPECTED_HASH))
ccflags-y += -DEXPECTED_SIZE=$(KSU_EXPECTED_SIZE)
ccflags-y += -DEXPECTED_HASH=\"$(KSU_EXPECTED_HASH)\"

ifeq ($(shell grep -q "int path_umount" $(srctree)/fs/namespace.c; echo $$?),0)
ccflags-y += -DKSU_UMOUNT
else
$(info -- Did you know you can backport path_umount to fs/namespace.c from 5.9?)
$(info -- Read: https://kernelsu.org/guide/how-to-integrate-for-non-gki.html#path_umount)
endif

ccflags-y += -Wno-implicit-function-declaration -Wno-strict-prototypes -Wno-int-conversion -Wno-gcc-compat
ccflags-y += -Wno-declaration-after-statement -Wno-unused-function
2 changes: 1 addition & 1 deletion drivers/kernelsu/core_hook.c
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,7 @@ static bool should_umount(struct path *path)

static void ksu_umount_mnt(struct path *path, int flags)
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0) || KSU_UMOUNT
int err = path_umount(path, flags);
if (err) {
pr_info("umount %s failed: %d\n", path->dentry->d_iname, err);
Expand Down

0 comments on commit 8bee87d

Please sign in to comment.