For _raw_write_mda_header(), the latest codes are same as stable-2.02. And below usage is wrong, should be fixed. ``` if (!dev_write_bytes(mdac->area.dev, write1_start, (size_t)write1_size, write_buf)) { ... ... dev_unset_last_byte(mdac->area.dev); <==== invalid code, this time fd had been released. ... ... } ``` This issue only happened on our customer machine, when updating lvm2 from 2.02.120 (no bcache code) to 2.02.180 (contains bcache). Thanks zhm On 10/11/19 6:38 PM, Zdenek Kabelac wrote: > Dne 11. 10. 19 v 11:22 Heming Zhao napsal(a): >> Only one thing I am confusion all the time. >> When read/write error, lvm will call bcache_invalidate_fd & _scan_dev_close to close fd. >> So the first successfully read (i.e.: f747), which following f748 finally has fc68's fd. >> This will cause f747 metadata overwrite not f748. >> >> > > Hi > > Have you considered checking newer version of lvm2? > > Regards > > Zdenek > > _______________________________________________ linux-lvm mailing list linux-lvm@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/linux-lvm read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/