From: Bob Peterson Date: Thu, 4 May 2023 18:28:51 +0000 (-0400) Subject: gfs2: Don't remember delete unless it's successful X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=f9da18cd4616fbc9816347b7b2be188653786058;p=linux.git gfs2: Don't remember delete unless it's successful This patch changes function evict_unlinked_inode so it does not call gfs2_inode_remember_delete until it gets a good return code from gfs2_dinode_dealloc. Signed-off-by: Bob Peterson Signed-off-by: Andreas Gruenbacher --- diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 925bd80d2625c..3a7e7c31eb9cb 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c @@ -1332,9 +1332,6 @@ static int evict_unlinked_inode(struct inode *inode) goto out; } - if (ip->i_gl) - gfs2_inode_remember_delete(ip->i_gl, ip->i_no_formal_ino); - /* * As soon as we clear the bitmap for the dinode, gfs2_create_inode() * can get called to recreate it, or even gfs2_inode_lookup() if the @@ -1348,6 +1345,9 @@ static int evict_unlinked_inode(struct inode *inode) */ ret = gfs2_dinode_dealloc(ip); + if (!ret && ip->i_gl) + gfs2_inode_remember_delete(ip->i_gl, ip->i_no_formal_ino); + out: return ret; }