Re: [Question] why not flush device cache at _vg_commit_raw
Zdenek Kabelac <[email protected]> Mon, 22 Jan 2024 13:48:41 +0100
| Newsgroups | dev.linux.lists.linux-lvm |
|---|---|
| Message-ID | <[email protected]> |
Dne 22. 01. 24 v 12:22 Su Yue napsal(a): > Hi lvm folks, > Recently We received a report about the device cache issue after vgchange —deltag. > What confuses me is that lvm never calls fsync on block devices even at the end of commit phase. > > IIRC, it’s common operations for userspace tools to call fsync/O_SYNC/O_DSYNC while writing > critical data. Yes, lvm2 opens devices with O_DIRECT if they support , but O_DIRECT doesn't > provide data was persistent to storage when write returns. The data can still be in the device cache, > If power failure happens in the timing, such critical metadata/data like vg metadata could be lost. > > Is there any particular reason not to flush data cache at VG commit time? > Hi It seems the call to 'dev_flush()' function got somehow lost over the time of conversion to async aio usage - I'll investigate. On the other hand the chance here of losing any data this way would be really really very specific to some oddly behaving device. Regards Zdenek