mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 03:20:53 +07:00
Revert "gfs2: Ignore journal log writes for jdata holes"
This reverts commit b2a846dbef
.
That commit changed the behavior of function gfs2_block_map to return
-ENODATA in cases where a hole (IOMAP_HOLE) is encountered and create is
false. While that fixed the intended problem for jdata, it also broke
other callers of gfs2_block_map such as some jdata block reads. Before
the patch, an encountered hole would be skipped and the buffer seen as
unmapped by the caller. The patch changed the behavior to return
-ENODATA, which is interpreted as an error by the caller.
The -ENODATA return code should be restricted to the specific case where
jdata holes are encountered during ail1 writes. That will be done in a
later patch.
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
parent
bc923818b1
commit
d3039c0615
@ -1301,12 +1301,8 @@ int gfs2_block_map(struct inode *inode, sector_t lblock,
|
|||||||
trace_gfs2_bmap(ip, bh_map, lblock, create, 1);
|
trace_gfs2_bmap(ip, bh_map, lblock, create, 1);
|
||||||
|
|
||||||
ret = gfs2_iomap_get(inode, pos, length, flags, &iomap, &mp);
|
ret = gfs2_iomap_get(inode, pos, length, flags, &iomap, &mp);
|
||||||
if (!ret && iomap.type == IOMAP_HOLE) {
|
if (create && !ret && iomap.type == IOMAP_HOLE)
|
||||||
if (create)
|
ret = gfs2_iomap_alloc(inode, &iomap, &mp);
|
||||||
ret = gfs2_iomap_alloc(inode, &iomap, &mp);
|
|
||||||
else
|
|
||||||
ret = -ENODATA;
|
|
||||||
}
|
|
||||||
release_metapath(&mp);
|
release_metapath(&mp);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
|
Loading…
Reference in New Issue
Block a user