Re: [PATCH 1/5] Btrfs: don't abort the current transaction if there is no enough space for inode cache

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

 



Hi, Miao,

On 2013/05/13 22:55, Miao Xie wrote:
> The filesystem with inode cache was forced to be read-only when we umounted it.
> 
> Steps to reproduce:
>   # mkfs.btrfs -f ${DEV}
>   # mount -o inode_cache ${DEV} ${MNT}
>   # dd if=/dev/zero of=${MNT}/file1 bs=1M count=8192
>   # btrfs fi syn ${MNT}
>   # dd if=${MNT}/file1 of=/dev/null bs=1M
>   # rm -f ${MNT}/file1
>   # btrfs fi syn ${MNT}
>   # umount ${MNT}
> 
> It is because there was no enough space to do inode cache truncation, and then
> we aborted the current transaction.

The problem has not occurred in my testset after applying your patchset.
Your patchset looks good to me. Thanks.

Tested-by: Tsutomu Itoh <t-itoh@xxxxxxxxxxxxxx>

> 
> But no space error is not a serious problem when we write out the inode cache,
> and it is safe that we just skip this step if we meet this problem. So we need
> not abort the current transaction.
> 
> Reported-by: Tsutomu Itoh <t-itoh@xxxxxxxxxxxxxx>
> Signed-off-by: Miao Xie <miaox@xxxxxxxxxxxxxx>
> ---
>   fs/btrfs/inode-map.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c
> index d26f67a..9818d4a 100644
> --- a/fs/btrfs/inode-map.c
> +++ b/fs/btrfs/inode-map.c
> @@ -468,7 +468,8 @@ again:
>   	if (i_size_read(inode) > 0) {
>   		ret = btrfs_truncate_free_space_cache(root, trans, path, inode);
>   		if (ret) {
> -			btrfs_abort_transaction(trans, root, ret);
> +			if (ret != -ENOSPC)
> +				btrfs_abort_transaction(trans, root, ret);
>   			goto out_put;
>   		}
>   	}
> 


--
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