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