Michal Hocko wrote: > On Wed 25-01-17 11:19:57, Christoph Hellwig wrote: > > On Wed, Jan 25, 2017 at 11:15:17AM +0100, Michal Hocko wrote: > > > I think we are missing a check for fatal_signal_pending in > > > iomap_file_buffered_write. This means that an oom victim can consume the > > > full memory reserves. What do you think about the following? I haven't > > > tested this but it mimics generic_perform_write so I guess it should > > > work. > > > > Hi Michal, > > > > this looks reasonable to me. But we have a few more such loops, > > maybe it makes sense to move the check into iomap_apply? > > I wasn't sure about the expected semantic of iomap_apply but now that > I've actually checked all the callers I believe all of them should be > able to handle EINTR just fine. Well iomap_file_dirty, iomap_zero_range, > iomap_fiemap and iomap_page_mkwriteseem do not follow the standard > pattern to return the number of written pages or an error but it rather > propagates the error out. From my limited understanding of those code > paths that should just be ok. I was not all that sure about iomap_dio_rw > that is just too convoluted for me. If that one is OK as well then > the following patch should be indeed better. Is "length" in written = actor(inode, pos, length, data, &iomap); call guaranteed to be small enough? If not guaranteed, don't we need to check SIGKILL inside "actor" functions? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>