gfs2: Don't reread inodes unnecessarily

In gfs2_create_inode(), we initialize the inode from scratch and then we
write the result to disk.  Clear the GLF_INSTANTIATE_NEEDED glock flag
to indicate that the inode is up to date.  Otherwise, the next time the
inode glock is acquired, gfs2_instantiate() would reread the inode from
disk, which isn't necessary.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
Andreas Gruenbacher 2025-04-15 08:49:55 +02:00
parent af4044fd0b
commit 84a79ee68f

View File

@ -768,6 +768,7 @@ static int gfs2_create_inode(struct inode *dir, struct dentry *dentry,
error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, GL_SKIP, &gh);
if (error)
goto fail_gunlock3;
clear_bit(GLF_INSTANTIATE_NEEDED, &ip->i_gl->gl_flags);
error = gfs2_trans_begin(sdp, blocks, 0);
if (error)