On Mon, Dec 14, 2020 at 3:06 PM Steven Whitehouse <swhit...@redhat.com> wrote: > On 14/12/2020 14:02, Bob Peterson wrote: > > Hi, > > > > ----- Original Message ----- > >> + ret = __gfs2_trans_begin(sdp, 0, revokes, GFP_NOFS | __GFP_NOFAIL); > > The addition of __GFP_NOFAIL means that this operation can now block. > > Looking at the code, I don't think it will be a problem because it can > > already block in the log_flush operations that precede it, but it > > makes me nervous. Obviously, we need to test this really well. > > > > Bob > > > Not sure of the context here exactly, but why are we adding an instance > of __GFP_NOFAIL? There is already a return code there so that we can > fail in that case if required,
__GFS_NOFAIL is used in {inode,rgrp}_go_sync -> gfs2_ail_empty_gl -> __gfs2_trans_begin, and there isn't any reasonable way to react an -ENOMEM error but to repeat the allocation. Thanks, Andreas