diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2019-12-12 19:54:33 -0500 |
---|---|---|
committer | Eric Sandeen <sandeen@redhat.com> | 2019-12-12 19:54:33 -0500 |
commit | d4eb45adbe42a4a8a5348d70941d1617527f96cb (patch) | |
tree | 3667a44137c80f6f4898174feb5a2732371d6db3 | |
parent | 60a802ccc8fcc4b7480ab7ce8c4ce7b4a0caa205 (diff) | |
download | xfsprogs-dev-d4eb45adbe42a4a8a5348d70941d1617527f96cb.tar.gz |
xfs: reinitialize rm_flags when unpacking an offset into an rmap irec
Source kernel commit: ffb5696f7555e44c04b7c1212fcd83ddedc43498
In xfs_rmap_irec_offset_unpack, we should always clear the contents of
rm_flags before we begin unpacking the encoded (ondisk) offset into the
incore rm_offset and incore rm_flags fields. Remove the open-coded
field zeroing as this encourages api misuse.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
-rw-r--r-- | libxfs/xfs_rmap.c | 1 | ||||
-rw-r--r-- | libxfs/xfs_rmap.h | 1 |
2 files changed, 1 insertions, 1 deletions
diff --git a/libxfs/xfs_rmap.c b/libxfs/xfs_rmap.c index d9b19c6718..34739ff2ff 100644 --- a/libxfs/xfs_rmap.c +++ b/libxfs/xfs_rmap.c @@ -166,7 +166,6 @@ xfs_rmap_btrec_to_irec( union xfs_btree_rec *rec, struct xfs_rmap_irec *irec) { - irec->rm_flags = 0; irec->rm_startblock = be32_to_cpu(rec->rmap.rm_startblock); irec->rm_blockcount = be32_to_cpu(rec->rmap.rm_blockcount); irec->rm_owner = be64_to_cpu(rec->rmap.rm_owner); diff --git a/libxfs/xfs_rmap.h b/libxfs/xfs_rmap.h index 0c2c3cb734..abe633403f 100644 --- a/libxfs/xfs_rmap.h +++ b/libxfs/xfs_rmap.h @@ -68,6 +68,7 @@ xfs_rmap_irec_offset_unpack( if (offset & ~(XFS_RMAP_OFF_MASK | XFS_RMAP_OFF_FLAGS)) return -EFSCORRUPTED; irec->rm_offset = XFS_RMAP_OFF(offset); + irec->rm_flags = 0; if (offset & XFS_RMAP_OFF_ATTR_FORK) irec->rm_flags |= XFS_RMAP_ATTR_FORK; if (offset & XFS_RMAP_OFF_BMBT_BLOCK) |