On Mon, May 08, 2023 at 10:02:27PM -0700, Eric Biggers wrote: > On Tue, May 09, 2023 at 01:51:08AM +0800, youling257 wrote: > > I using linux mainline kernel on android. https://github.com/youling257/android-mainline/commits/6.4 https://github.com/youling257/android-mainline/commits/6.3 > > "ext4: Stop providing .writepage hook" cause some android app unable to read storage/emulated/0 files, i need to say android esdfs file system storage/emulated is ext4 data/media bind mount. > > I want to ask, why android storage/emulated need .writepage hook? > > "esdfs" doesn't exist upstream, so linux-ext4 can't provide support for it. > > Also, it doesn't exist in the Android Common Kernels either, so the Android team > cannot help you either. The problem with esdfs is that it's based on the old stackable file system paradigm which is filled with races and is inherently unreliable (just for fun, try running fsstress on the upper and lower file systems of a stackable file system simultaneously, and watch the kernel crash and burn). For that reason, some number of us have been working for a while to eliminate the need for stacking file systems, such as sdcardfs. esdfs, etc. from the Android kernel. The other thing I would add is that upstream has been working[1] on getting rid of writepage function. So out-of-tree file systems are going to need to adapt --- or die. [1] https://lore.kernel.org/all/20221202102644.770505-1-hch@xxxxxx/ It looks like esdfs is coming from the Chromium kernel? The latest Chromium kernel I can find is 5.15 based, and it has esdfs in it. I'm sad to see that esdfs hasn't been removed from the Chromium kernel yet, and replaced with something more stable and reliable, but maybe we can find someone who is more familiar with the Chromium kernel to comment. Cheers, - Ted