hi Emil,
in view of your answer and after rereading my email, I realize that I was
confused in my request.
here it is, I hope, more clearly reformulated :-)
first of all, I use ArchLinux to, from time to time, compile the slightly
modified LTS kernel, and this from PKGBUILD provided by ArchLinux at some
point.
some technologies such as LVM do not take into account the read-only
applied on a block device.
see the two links provided in the previous exchanges for more details...
until now, I recompiled the kernel by applying a slight modification to the
bio_check_ro function present in the blk-core.c source file.
the last time I made this modification was on the Linux-LTS-5.10.19 kernel :
*(https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/block/...
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/block/...)*
$ diff -u 5.10.19.original/blk-core.c 5.10.19.me/blk-core.c
--- 5.10.19.original/blk-core.c 2023-03-15 13:44:20.176929833 +0100
+++ 5.10.19.me/blk-core.c 2023-03-15 13:44:02.353596114 +0100
@@ -706,7 +706,7 @@
"Trying to write to read-only block-device %s (partno %d)\n",
bio_devname(bio, b), part->partno);
/* Older lvm-tools actually trigger this */
- return false;
+ return true;
}
return false;
the compilation of the modified LTS 5.10.19 kernel went well and the
correction seems to do the job...
since this last time (2022/01), the source file blk-core.c has been
modified a lot and the bio_check_ro function is part of these modifications
:
*(https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/block/...
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/block/...)*
$ diff -u 5.10.19.original/blk-core.c 6.1.15.original/blk-core.c
--- 5.10.19.original/blk-core.c 2023-03-15 13:44:20.176929833 +0100
+++ 6.1.15.original/blk-core.c 2023-03-15 13:50:36.560271323 +0100
@@ -14,11 +14,10 @@
*/
#include
Greetings Pascal,
Couple of suggestions from the peanut gallery, Take them with a heavy pinch of salt: - Is the issue happening with upstream code from kernel.org? - Consider mentioning the commit sha (and URL, if it is missing from kernel.org) in the email - Is "intervened" the right word here - the Cambridge dictionary defines it as "to intentionally become involved in a difficult situation in order to improve it or prevent it from getting worse" - Are you contacting a developer only? Have you considered adding the subsystem maintainer and mailing list in the CC list - scripts/get_maintainer.pl will give you those - Have you considered opening a bug report, or better yet sending a patch? Patch does not have to be perfect and if you have doubts you can mention those in the email/cover-letter.
Hope that helps Emil
[1] https://dictionary.cambridge.org/dictionary/english/intervene
On Wed, 15 Mar 2023 at 08:42, Pascal
wrote: hi,
I come to you for lack of feedback (I think the Linux kernel developers
would one of you have the answer or a track to follow concerning the question below ? the encountered compilation error is behind the forwarded email.
regards, lacsaP.
---------- Forwarded message --------- De : Pascal
Date: mer. 8 mars 2023 à 14:09 Subject: bio_check_ro @ blk-core.c hi,
I'm addressing you because you intervened (commit) in the function bio_check_ro @ blk-core.c @ Linux-LTS-6.1.15. the last time I intervened on this file (@ Linux-LTS-5.10.19 for
with @ Linux-LTS-6.1.15, if I insert "return true;", I now have a compilation error. in your opinion, is there still a need to "fix" blk-core.c to prevent writing to a read-only locked device and if so, can you help me implement
have other cats to whip :-)) personal use), it was to replace "return false;" by "return true;", which theoretically should prevent the possible writing on a device locked in read-only mode (see here or here). this fix?
regards, lacsaP. ---------- End forwarded message ---------
SYNC include/config/auto.conf CC arch/x86/kernel/asm-offsets.s CALL scripts/checksyscalls.sh DESCEND objtool DESCEND bpf/resolve_btfids CC block/bdev.o CC block/fops.o CC block/bio.o CC block/elevator.o CC block/blk-core.o block/blk-core.c: In function 'bio_check_ro': block/blk-core.c:496:24: error: 'return' with a value, in function
returning void [-Werror=return-type]
496 | return true; | ^~~~ block/blk-core.c:488:20: note: declared here 488 | static inline void bio_check_ro(struct bio *bio) | ^~~~~~~~~~~~ cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:250: block/blk-core.o] Error 1 make[1]: *** [scripts/Makefile.build:500: block] Error 2 make: *** [Makefile:2005: .] Error 2