Btrfs: stop providing a bmap operation to avoid swapfile corruptions
authorChris Mason <chris.mason@oracle.com>
Wed, 21 Jan 2009 18:11:13 +0000 (13:11 -0500)
committerChris Mason <chris.mason@oracle.com>
Wed, 21 Jan 2009 18:11:13 +0000 (13:11 -0500)
commit35054394c4b3cecd52577c2662c84da1f3e73525
tree83e6e361357a17851a11a97b6984b4c0c0f2ced9
parent7237f1833601dcc435a64176c2c347ec4bd959f9
Btrfs: stop providing a bmap operation to avoid swapfile corruptions

Swapfiles use bmap to build a list of extents belonging to the file,
and they assume these extents won't change over the life of the file.
They also use resulting list to do IO directly to the block device.

This causes problems for btrfs in a few ways:

btrfs returns logical block numbers through bmap, and these are not suitable
for IO.  They might translate to different devices, raid etc.

COW means that file block mappings are going to change frequently.

Using swapfiles on btrfs will lead to corruption, so we're avoiding the
problem for now by dropping bmap support entirely.  A later commit
will add fiemap support for people that really want to know how
a file is laid out.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/inode.c