-
Eric Sandeen authored
The position calculation in iomap_bmap() shifts bno the wrong way, so we don't progress properly and end up re-mapping block zero over and over, yielding an unchanging physical block range as the logical block advances: # filefrag -Be file ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 0: 21.. 21: 1: merged 1: 1.. 1: 21.. 21: 1: 22: merged Discontinuity: Block 1 is at 21 (was 22) 2: 2.. 2: 21.. 21: 1: 22: merged Discontinuity: Block 2 is at 21 (was 22) 3: 3.. 3: 21.. 21: 1: 22: merged This breaks the FIBMAP interface for anyone using it (XFS), which in turn breaks LILO, zipl, etc. Bug-actually-spotted-by:
Darrick J. Wong <darrick.wong@oracle.com>
Fixes: 89eb1906
("iomap: add an iomap-based bmap implementation")
Cc: stable@vger.kernel.org
Signed-off-by:
Eric Sandeen <sandeen@redhat.com>
Reviewed-by:
Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by:
Darrick J. Wong <darrick.wong@oracle.com>79b3dbe4