Skip to content

Commit

Permalink
gfs2: Eliminate GIF_INVALID flag
Browse files Browse the repository at this point in the history
With the addition of the new GLF_INSTANTIATE_NEEDED flag, the
GIF_INVALID flag is now redundant. This patch removes it.
Since inode_instantiate is only called when instantiation is needed,
the check in inode_instantiate is removed too.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
  • Loading branch information
Bob Peterson authored and Andreas Gruenbacher committed Oct 25, 2021
1 parent f2e70d8 commit ec1d398
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 11 deletions.
11 changes: 3 additions & 8 deletions fs/gfs2/glops.c
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,6 @@ static void inode_go_inval(struct gfs2_glock *gl, int flags)
struct address_space *mapping = gfs2_glock2aspace(gl);
truncate_inode_pages(mapping, 0);
if (ip) {
set_bit(GIF_INVALID, &ip->i_flags);
set_bit(GLF_INSTANTIATE_NEEDED, &gl->gl_flags);
forget_all_cached_acls(&ip->i_inode);
security_inode_invalidate_secctx(&ip->i_inode);
Expand Down Expand Up @@ -477,8 +476,6 @@ int gfs2_inode_refresh(struct gfs2_inode *ip)

error = gfs2_dinode_in(ip, dibh->b_data);
brelse(dibh);
clear_bit(GIF_INVALID, &ip->i_flags);

return error;
}

Expand All @@ -499,11 +496,9 @@ static int inode_go_instantiate(struct gfs2_holder *gh)
if (!ip) /* no inode to populate - read it in later */
goto out;

if (test_bit(GIF_INVALID, &ip->i_flags)) {
error = gfs2_inode_refresh(ip);
if (error)
goto out;
}
error = gfs2_inode_refresh(ip);
if (error)
goto out;

if (gh->gh_state != LM_ST_DEFERRED)
inode_dio_wait(&ip->i_inode);
Expand Down
1 change: 0 additions & 1 deletion fs/gfs2/incore.h
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,6 @@ struct gfs2_glock {
};

enum {
GIF_INVALID = 0,
GIF_QD_LOCKED = 1,
GIF_ALLOC_FAILED = 2,
GIF_SW_PAGED = 3,
Expand Down
1 change: 0 additions & 1 deletion fs/gfs2/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,6 @@ struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned int type,
}

glock_set_object(ip->i_gl, ip);
set_bit(GIF_INVALID, &ip->i_flags);
set_bit(GLF_INSTANTIATE_NEEDED, &ip->i_gl->gl_flags);
error = gfs2_glock_nq_init(io_gl, LM_ST_SHARED, GL_EXACT, &ip->i_iopen_gh);
if (unlikely(error))
Expand Down
2 changes: 1 addition & 1 deletion fs/gfs2/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -1244,7 +1244,7 @@ static enum dinode_demise evict_should_delete(struct inode *inode,
if (ret)
return SHOULD_NOT_DELETE_DINODE;

if (test_bit(GIF_INVALID, &ip->i_flags)) {
if (test_bit(GLF_INSTANTIATE_NEEDED, &ip->i_gl->gl_flags)) {
ret = gfs2_instantiate(gh);
if (ret)
return SHOULD_NOT_DELETE_DINODE;
Expand Down

0 comments on commit ec1d398

Please sign in to comment.