As discussed in IRC, this successfully stopped the disk pager from dereferencing sblock. However, it was still hanging at boot a lot of the time (seemingly if and only if I booted in normal mode ie not recovery mode, but that's probably just a timing thing).
I had a look today at what's happening, and it's that the *file* pager is trying to read from disk. Any thoughts? James > On 14 Jul 2015, at 20:54, Justus Winter <4win...@informatik.uni-hamburg.de> > wrote: > > Hi James :) > > you found a long-standing bug in ext2fs. Fixing it allows us to get > rid of the ugly workaround in daemons/runsystem.sh (look for `XXX'). > > Quoting Richard Braun (2015-07-13 10:16:14) >>> On Sun, Jul 12, 2015 at 12:56:31PM +0100, James Clarke wrote: >>> That doesn’t seem to boot at all. I had tried changing it to inhibiting all >>> RPCs (it looks like you’ve inhibited an extra class?), but it seems that >>> paging is needed? Perhaps part of ext2fs gets paged out, and it needs to be >>> paged in when remounting? >> >> Remounting can require paging out, yes. >> >> See diskfs_reload_global_state in ext2fs : >> >> diskfs_reload_global_state () >> { >> pokel_flush (&global_pokel); >> pager_flush (diskfs_disk_pager, 1); > > So I guess we need to inhibit the RPCs here, not before calling > diskfs_reload_global_state, then do: > > get_hypermetadata (); > map_hypermetadata (); > > And reenable them here. > > return 0; > } > > I guess that means changing the diskfs API. James, do you want to > give it a shot? > > In the mean time, enjoy my hacky workaround: > http://nonmonolithic.org/ext2fs.static > > Cheers, > Justus