diff options
Diffstat (limited to 'fs/overlayfs/readdir.c')
-rw-r--r-- | fs/overlayfs/readdir.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/overlayfs/readdir.c b/fs/overlayfs/readdir.c index 0f85ee9c3268..698b74dd750e 100644 --- a/fs/overlayfs/readdir.c +++ b/fs/overlayfs/readdir.c | |||
@@ -1021,13 +1021,12 @@ int ovl_indexdir_cleanup(struct dentry *dentry, struct vfsmount *mnt, | |||
1021 | break; | 1021 | break; |
1022 | } | 1022 | } |
1023 | err = ovl_verify_index(index, lowerstack, numlower); | 1023 | err = ovl_verify_index(index, lowerstack, numlower); |
1024 | if (err) { | 1024 | /* Cleanup stale and orphan index entries */ |
1025 | if (err == -EROFS) | 1025 | if (err && (err == -ESTALE || err == -ENOENT)) |
1026 | break; | ||
1027 | err = ovl_cleanup(dir, index); | 1026 | err = ovl_cleanup(dir, index); |
1028 | if (err) | 1027 | if (err) |
1029 | break; | 1028 | break; |
1030 | } | 1029 | |
1031 | dput(index); | 1030 | dput(index); |
1032 | index = NULL; | 1031 | index = NULL; |
1033 | } | 1032 | } |