gfs2: Eliminate GIF_INVALID flag
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>
This commit is contained in:
parent
f2e70d8f2f
commit
ec1d398dd7
|
@ -356,7 +356,6 @@ static void inode_go_inval(struct gfs2_glock *gl, int flags)
|
||||||
struct address_space *mapping = gfs2_glock2aspace(gl);
|
struct address_space *mapping = gfs2_glock2aspace(gl);
|
||||||
truncate_inode_pages(mapping, 0);
|
truncate_inode_pages(mapping, 0);
|
||||||
if (ip) {
|
if (ip) {
|
||||||
set_bit(GIF_INVALID, &ip->i_flags);
|
|
||||||
set_bit(GLF_INSTANTIATE_NEEDED, &gl->gl_flags);
|
set_bit(GLF_INSTANTIATE_NEEDED, &gl->gl_flags);
|
||||||
forget_all_cached_acls(&ip->i_inode);
|
forget_all_cached_acls(&ip->i_inode);
|
||||||
security_inode_invalidate_secctx(&ip->i_inode);
|
security_inode_invalidate_secctx(&ip->i_inode);
|
||||||
|
@ -477,8 +476,6 @@ int gfs2_inode_refresh(struct gfs2_inode *ip)
|
||||||
|
|
||||||
error = gfs2_dinode_in(ip, dibh->b_data);
|
error = gfs2_dinode_in(ip, dibh->b_data);
|
||||||
brelse(dibh);
|
brelse(dibh);
|
||||||
clear_bit(GIF_INVALID, &ip->i_flags);
|
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -499,11 +496,9 @@ static int inode_go_instantiate(struct gfs2_holder *gh)
|
||||||
if (!ip) /* no inode to populate - read it in later */
|
if (!ip) /* no inode to populate - read it in later */
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (test_bit(GIF_INVALID, &ip->i_flags)) {
|
error = gfs2_inode_refresh(ip);
|
||||||
error = gfs2_inode_refresh(ip);
|
if (error)
|
||||||
if (error)
|
goto out;
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gh->gh_state != LM_ST_DEFERRED)
|
if (gh->gh_state != LM_ST_DEFERRED)
|
||||||
inode_dio_wait(&ip->i_inode);
|
inode_dio_wait(&ip->i_inode);
|
||||||
|
|
|
@ -373,7 +373,6 @@ struct gfs2_glock {
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
GIF_INVALID = 0,
|
|
||||||
GIF_QD_LOCKED = 1,
|
GIF_QD_LOCKED = 1,
|
||||||
GIF_ALLOC_FAILED = 2,
|
GIF_ALLOC_FAILED = 2,
|
||||||
GIF_SW_PAGED = 3,
|
GIF_SW_PAGED = 3,
|
||||||
|
|
|
@ -182,7 +182,6 @@ struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned int type,
|
||||||
}
|
}
|
||||||
|
|
||||||
glock_set_object(ip->i_gl, ip);
|
glock_set_object(ip->i_gl, ip);
|
||||||
set_bit(GIF_INVALID, &ip->i_flags);
|
|
||||||
set_bit(GLF_INSTANTIATE_NEEDED, &ip->i_gl->gl_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);
|
error = gfs2_glock_nq_init(io_gl, LM_ST_SHARED, GL_EXACT, &ip->i_iopen_gh);
|
||||||
if (unlikely(error))
|
if (unlikely(error))
|
||||||
|
|
|
@ -1244,7 +1244,7 @@ static enum dinode_demise evict_should_delete(struct inode *inode,
|
||||||
if (ret)
|
if (ret)
|
||||||
return SHOULD_NOT_DELETE_DINODE;
|
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);
|
ret = gfs2_instantiate(gh);
|
||||||
if (ret)
|
if (ret)
|
||||||
return SHOULD_NOT_DELETE_DINODE;
|
return SHOULD_NOT_DELETE_DINODE;
|
||||||
|
|
Loading…
Reference in New Issue