On Wed, Dec 22, 2010 at 06:47:20PM +0800, Miao Xie wrote: > We cannot write data into files when when there is tiny space in the > filesystem. > > Reproduce steps: > # mkfs.btrfs /dev/sda1 > # mount /dev/sda1 /mnt > # dd if=/dev/zero of=/mnt/tmpfile0 bs=4K count=1 > # dd if=/dev/zero of=/mnt/tmpfile1 bs=4K count=99999999999999 > (fill the filesystem) > # umount /mnt > # mount /dev/sda1 /mnt > # rm -f /mnt/tmpfile0 > # dd if=/dev/zero of=/mnt/tmpfile0 bs=4K count=1 > (failed with nospec) > > But if we do the last step again, we can write data successfully. The reason > of > the problem is that btrfs didn't try to commit the current transaction and > reclaim some space when chunk allocation failed. > > This patch fixes it by committing the current transaction to to reclaim some > space when chunk allocation fails. > > Signed-off-by: Miao Xie <mi...@cn.fujitsu.com>
Reviewed-by: Josef Bacik <jo...@redhat.com> Thanks, Josef -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html