Re: [PATH]Fix cow semantic in run_delalloc_nocow()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2008/11/20 Liu Hui <onlyflyer@xxxxxxxxx>:
> Hi,
> I found cow doesn't behave as expected in run_delalloc_nocow(). Now in
> run_delalloc_now(), if it found a regular extent and the NODATACOW is
> set, run_dealloc_now will cow the file range which is not as expected.
> Also, if it find a regular extent and NODATACOW is not set(with
> PREALLOC set), it will not take cow operation. So, the cow semantic is
> opposite to the btrfs design.
>
> I found the problem was introduced by fallocate(), so could Yan please
> verify the fix? Much appreciated!
>
> --
> Thanks & Best Regards
> Liu Hui
> --
>
> diff --git a/inode.c b/inode.c
> index 2c77e09..5525594 100644
> --- a/inode.c
> +++ b/inode.c
> @@ -1003,7 +1003,7 @@ next_slot:
>                                goto out_check;
>                        if (disk_bytenr == 0)
>                                goto out_check;
> -                       if (extent_type == BTRFS_FILE_EXTENT_REG && !force)
> +                       if (extent_type == BTRFS_FILE_EXTENT_REG && force)
>                                goto out_check;
>                        if (btrfs_cross_ref_exist(trans, root, disk_bytenr))
>                                goto out_check;
> --

You are right, thanks. I suggest modifying run_delalloc_range instead of here,
could you please send a new patch.

Yan Zheng
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux