|
|
@@ -196,6 +196,54 @@ runs:
|
|
|
) fs/notify/fdinfo.c
|
|
|
fi
|
|
|
|
|
|
+ - name: Apply Android 13 5.10 Fixes
|
|
|
+ if: inputs.android_version == 'android13' && inputs.kernel_version == '5.10'
|
|
|
+ shell: bash
|
|
|
+ working-directory: ${{ github.workspace }}/kernel/common
|
|
|
+ run: |
|
|
|
+ if [ "${{ inputs.sublevel }}" -le "107" ]; then
|
|
|
+ sed -i '/size_t this_len = min_t(size_t, count, PAGE_SIZE);/r'<(cat <<'EOF'
|
|
|
+ #ifdef CONFIG_KSU_SUSFS_SUS_MOUNT
|
|
|
+ mnt = real_mount(file->f_path.mnt);
|
|
|
+ if (mnt->mnt_id >= DEFAULT_KSU_MNT_ID &&
|
|
|
+ likely(susfs_is_current_proc_umounted()))
|
|
|
+ {
|
|
|
+ struct path path;
|
|
|
+ char *pathname = kmalloc(PAGE_SIZE, GFP_KERNEL);
|
|
|
+ char *dpath;
|
|
|
+ if (!pathname) {
|
|
|
+ goto orig_flow;
|
|
|
+ }
|
|
|
+ dpath = d_path(&file->f_path, pathname, PAGE_SIZE);
|
|
|
+ if (!dpath) {
|
|
|
+ goto out_kfree;
|
|
|
+ }
|
|
|
+ if (kern_path(dpath, 0, &path)) {
|
|
|
+ goto out_kfree;
|
|
|
+ }
|
|
|
+ if (!path.dentry->d_inode) {
|
|
|
+ goto out_path_put;
|
|
|
+ }
|
|
|
+ seq_printf(m, "inotify wd:%x ino:%lx sdev:%x mask:%x ignored_mask:0 ",
|
|
|
+ inode_mark->wd, path.dentry->d_inode->i_ino, path.dentry->d_inode->i_sb->s_dev,
|
|
|
+ inotify_mark_user_mask(mark));
|
|
|
+ show_mark_fhandle(m, path.dentry->d_inode);
|
|
|
+ seq_putc(m, '\n');
|
|
|
+ path_put(&path);
|
|
|
+ kfree(pathname);
|
|
|
+ iput(inode);
|
|
|
+ return;
|
|
|
+ out_path_put:
|
|
|
+ path_put(&path);
|
|
|
+ out_kfree:
|
|
|
+ kfree(pathname);
|
|
|
+ }
|
|
|
+ orig_flow:
|
|
|
+ #endif // #ifdef CONFIG_KSU_SUSFS_SUS_MOUNT
|
|
|
+ EOF
|
|
|
+ ) fs/notify/fdinfo.c
|
|
|
+ fi
|
|
|
+
|
|
|
- name: Apply Android 14 6.1 Fixes
|
|
|
if: inputs.android_version == 'android14' && inputs.kernel_version == '6.1'
|
|
|
shell: bash
|