diff options
author | Bob Peterson <rpeterso@redhat.com> | 2021-05-19 20:45:56 +0200 |
---|---|---|
committer | Andreas Gruenbacher <agruenba@redhat.com> | 2021-05-20 13:31:37 +0200 |
commit | 4194dec4b4169e5a9a5171db60c2ec00c4d8cf16 (patch) | |
tree | dd13f6b6ccca7f77928bd65b3c66ada3109d805f | |
parent | gfs2: Prevent direct-I/O write fallback errors from getting lost (diff) | |
download | linux-4194dec4b4169e5a9a5171db60c2ec00c4d8cf16.tar.xz linux-4194dec4b4169e5a9a5171db60c2ec00c4d8cf16.zip |
gfs2: Fix I_NEW check in gfs2_dinode_in
Patch 4a378d8a0d96 added a new check for I_NEW inodes, but unfortunately
it used the wrong variable, i_flags. This caused GFS2 to withdraw when
gfs2_lookup_by_inum needed to refresh an I_NEW inode. This patch switches
to use the correct variable, i_state.
Fixes: 4a378d8a0d96 ("gfs2: be careful with inode refresh")
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
-rw-r--r-- | fs/gfs2/glops.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c index 454095e9fedf..54d3fbeb3002 100644 --- a/fs/gfs2/glops.c +++ b/fs/gfs2/glops.c @@ -396,7 +396,7 @@ static int gfs2_dinode_in(struct gfs2_inode *ip, const void *buf) struct timespec64 atime; u16 height, depth; umode_t mode = be32_to_cpu(str->di_mode); - bool is_new = ip->i_inode.i_flags & I_NEW; + bool is_new = ip->i_inode.i_state & I_NEW; if (unlikely(ip->i_no_addr != be64_to_cpu(str->di_num.no_addr))) goto corrupt; |