bigfile/virtmem: Don't forget to release fileh->writeout_inprogress on storeblk error
Commit fb4bfb32 (bigfile/virtmem: Do storeblk() with virtmem lock released) added bug-protection to fileh_dirty_writeout() so that it could not be called twice at the same time or in parallel with other functions which modify pages. However it missed the code path when storeblk() call returned with error and whole writeout was thus erroring out, but with fileh->writeout_inprogress still left set to 1 incorrectly. This was leading to things like bigfile/virtmem.c:419: fileh_dirty_discard: Assertion `!(fileh->writeout_inprogress)' failed. and crashes. Fix it.
Showing