Btrfs: fix loop device on top of btrfs
authorMiao Xie <miaox@cn.fujitsu.com>
Mon, 7 Jun 2010 03:38:51 +0000 (03:38 +0000)
committerChris Mason <chris.mason@oracle.com>
Fri, 11 Jun 2010 15:46:11 +0000 (11:46 -0400)
commit4a001071d3549f596c7c3736c5dda8a3a4aba9ed
treef835cbd0779a8912aa65669bbd44ce3f756c919f
parent9aeead73782c4b8e2a91def36dbf95db28605c95
Btrfs: fix loop device on top of btrfs

We cannot use the loop device which has been connected to a file in the btrf

The reproduce steps is following:
 # dd if=/dev/zero of=vdev0 bs=1M count=1024
 # losetup /dev/loop0 vdev0
 # mkfs.btrfs /dev/loop0
 ...
 failed to zero device start -5

The reason is that the btrfs don't implement either ->write_begin or ->write
the VFS API, so we fix it by setting ->write to do_sync_write().

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/file.c