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 <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
Bob Peterson 2023-05-04 14:28:51 -04:00 committed by Andreas Gruenbacher
parent 17a5934653
commit f9da18cd46

View File

@ -1332,9 +1332,6 @@ static int evict_unlinked_inode(struct inode *inode)
goto out; 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() * 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 * 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); ret = gfs2_dinode_dealloc(ip);
if (!ret && ip->i_gl)
gfs2_inode_remember_delete(ip->i_gl, ip->i_no_formal_ino);
out: out:
return ret; return ret;
} }