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

Reply via email to