Hi, Jonathan Panozzo,

> -----Original Message-----
> From: linux-btrfs-ow...@vger.kernel.org
> [mailto:linux-btrfs-ow...@vger.kernel.org] On Behalf Of Chris Murphy
> Sent: Thursday, August 20, 2015 9:56 AM
> To: Jonathan Panozzo <j...@lime-technology.com>; Btrfs BTRFS
> <linux-btrfs@vger.kernel.org>
> Subject: Re: Questions on use of NOCOW impact to subvolumes and snapshots
> 
> On Wed, Aug 19, 2015 at 6:44 PM, Jonathan Panozzo
> <j...@lime-technology.com> wrote:
> > Hello btrfs mailing list!
> >
> > I have a two questions regarding the use of the NOCOW bit and how this
> affects scrub and snapshots.
> >
> > Question 1:  If I apply the NOCOW attribute to a file or directory, how does
> that affect my ability to run btrfs scrub?
> 
> nodatacow includes nodatasum and no compression. So it means these files
> are presently immune from scrub check and repair so long as it's based on
> checksums.
>
In nodatasum case, scrub only try to fix data with io-error.

> I don't know if raid56 scrub compares to parity and recomputes
> parity (assumes data is correct), absent checksums, which would be similar to
> how md raid 56 does it.
> 
For raid56 with no datasum, in current code:
For data strip: If have io error: try to get right data from parity, and 
writeback
For parity strip: check is the parity match data, and try to recovery

Thanks
Zhaolei

> 
> > Question 2:  If I apply the NOCOW attribute recursively to a btrfs
> > subvolume I create,
> 
> There's no such thing as recursive application of this xattr to files.
> Recursivity would only apply to directories (and probably nested subvolumes
> but I haven't tested it).
> 
> 
> > then take a snapshot of that subvolume, make changes to the files in the
> snapshot, and then make changes to the files in the subvolume, does this cause
> data in the snapshot to be corrupted?  It doesn’t appear so, but I’m
> confused how it’s not if COW has been disabled using the NOCOW bit.
> 
> http://www.spinics.net/lists/linux-btrfs/msg31342.html
> 
> Any changes to a snapshot nocow file are cow. Any additional changes to those
> extents are nocow until those extents are likewise snapshot (by the file being
> reflink copied or subvolume is snapshot). So if the change to an extent will 
> only
> affect a particular instance of a nocow file, the write is overwrite (nocow). 
> If it's
> a shared extent, then the write is cow, and that extent is (initially) not 
> shared
> and thus additional writes are nocow.
> 
> 
> --
> Chris Murphy
> --
> 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

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