RE: [PATCH] btrfs-progs: convert: Open the fs readonly for rollback

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

 




> -----Original Message-----
> From: linux-btrfs-owner@xxxxxxxxxxxxxxx [mailto:linux-btrfs-owner@xxxxxxxxxxxxxxx] On Behalf Of Qu Wenruo
> Sent: Thursday, October 26, 2017 3:29 PM
> To: linux-btrfs@xxxxxxxxxxxxxxx
> Cc: dsterba@xxxxxxx
> Subject: [PATCH] btrfs-progs: convert: Open the fs readonly for rollback
> 
> For rollback, we only needs to open the fs to check if it meets the condition to rollback.
> And this RW read makes us failed to rollback btrfs with v2 space cache.
> 
> In fact, we don't even start a transaction during rollback.
> 
> So open the fs RO for rollback, to avoid v2 space cache problem.
> 
> Reported-by: Gu Jinxiang <gujx@xxxxxxxxxxxxxx>
> Signed-off-by: Qu Wenruo <wqu@xxxxxxxx>
> ---
>  convert/main.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/convert/main.c b/convert/main.c index 882daf7ced53..3ec10f233915 100644
> --- a/convert/main.c
> +++ b/convert/main.c
> @@ -1529,7 +1529,13 @@ static int do_rollback(const char *devname)
>  		goto free_mem;
>  	}
>  	fsize = lseek(fd, 0, SEEK_END);
> -	root = open_ctree_fd(fd, devname, 0, OPEN_CTREE_WRITES);
> +
> +	/*
> +	 * For rollback, we don't really need write anything into btrfs,
> +	 * so open it RO.
> +	 * The write part will happen after we close the btrfs.
> +	 */
> +	root = open_ctree_fd(fd, devname, 0, 0);
>  	if (!root) {
>  		error("unable to open ctree");
>  		ret = -EIO;

Reviewed-by: Gu JinXiang <gujx@xxxxxxxxxxxxxx>
Tested-by: Gu JinXiang <gujx@xxxxxxxxxxxxxx>

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



?韬{.n?????%??檩??w?{.n???{饼?~镶?^n?■???h?璀?{?夸z罐?+€?zf"?????i?????_璁?:+v??撸?





[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