aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/glops.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/gfs2/glops.c')
-rw-r--r--fs/gfs2/glops.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
index aad45b7a927d..9c2033714b08 100644
--- a/fs/gfs2/glops.c
+++ b/fs/gfs2/glops.c
@@ -305,8 +305,9 @@ static void inode_go_inval(struct gfs2_glock *gl, int flags)
305 int data = (flags & DIO_DATA); 305 int data = (flags & DIO_DATA);
306 306
307 if (meta) { 307 if (meta) {
308 struct gfs2_inode *ip = gl->gl_object;
308 gfs2_meta_inval(gl); 309 gfs2_meta_inval(gl);
309 gl->gl_vn++; 310 set_bit(GIF_INVALID, &ip->i_flags);
310 } 311 }
311 if (data) 312 if (data)
312 gfs2_page_inval(gl); 313 gfs2_page_inval(gl);
@@ -351,7 +352,7 @@ static int inode_go_lock(struct gfs2_holder *gh)
351 if (!ip) 352 if (!ip)
352 return 0; 353 return 0;
353 354
354 if (ip->i_vn != gl->gl_vn) { 355 if (test_bit(GIF_INVALID, &ip->i_flags)) {
355 error = gfs2_inode_refresh(ip); 356 error = gfs2_inode_refresh(ip);
356 if (error) 357 if (error)
357 return error; 358 return error;