[PATCH 67/71] xfs: fail ->bmap for reflink inodes

Christoph Hellwig hch at infradead.org
Tue Sep 6 10:29:48 CDT 2016


On Thu, Aug 25, 2016 at 04:39:13PM -0700, Darrick J. Wong wrote:
> From: Christoph Hellwig <hch at lst.de>
> 
> Have xfs_vm_bmap return zero for reflinked files.  This hack prevents
> using a file with shared blocks as a swap file, because we don't want
> to deal with CoW when we're (probably) low on memory.
> 
> Signed-off-by: Christoph Hellwig <hch at lst.de>
> [darrick.wong at oracle.com: add a more descriptive changelog]

Which happens to be incorrect :)  The swap code uses ->bmap to build
a logical to physical block map at swapon time (to avoid allocations
or even just block mappings under memory pressure I suspect).  This
means we'd get reliable data corruption when COWing a swap file.

> +	 * The swap code (ab-)uses ->bmap to get a block mapping and then
> +	 * bypasse?? the file system for actual I/O.  We really can't allow

Also it seems like I introduced some weird character instead of an
"s" here..



More information about the xfs mailing list