summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorBob Peterson <rpeterso@redhat.com>2017-05-26 15:28:56 +0200
committerBob Peterson <rpeterso@redhat.com>2017-06-12 21:38:53 +0200
commitd87d62b75dfd8d33dc1baf0c4d3792788b554661 (patch)
tree3f5df1442104304257b3d52356ce3f6b023a0fb8 /fs
parentMerge tag 'devicetree-for-4.12' of git://git.kernel.org/pub/scm/linux/kernel/... (diff)
downloadlinux-d87d62b75dfd8d33dc1baf0c4d3792788b554661.tar.xz
linux-d87d62b75dfd8d33dc1baf0c4d3792788b554661.zip
GFS2: Withdraw when directory entry inconsistencies are detected
This patch prints an inode consistency error and withdraws the file system when directory entry counts are mismatched. Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/gfs2/dir.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c
index 79113219be5f..96a7487b09b6 100644
--- a/fs/gfs2/dir.c
+++ b/fs/gfs2/dir.c
@@ -1444,7 +1444,7 @@ static int gfs2_dir_read_leaf(struct inode *inode, struct dir_context *ctx,
"g.offset (%u)\n",
(unsigned long long)bh->b_blocknr,
entries2, g.offset);
-
+ gfs2_consist_inode(ip);
error = -EIO;
goto out_free;
}
@@ -1612,6 +1612,7 @@ int gfs2_dir_read(struct inode *inode, struct dir_context *ctx,
(unsigned long long)dip->i_no_addr,
dip->i_entries,
g.offset);
+ gfs2_consist_inode(dip);
error = -EIO;
goto out;
}