>>> On 03.03.16 at 13:39, <bfoster@xxxxxxxxxx> wrote: > XFS uses CRC verification over a sub-range of the head of the log to > detect and handle torn writes. This torn log write detection currently > runs unconditionally at mount time, regardless of whether the log is > dirty or clean. This is problematic in cases where a filesystem might > end up being moved across different, incompatible (i.e., opposite > byte-endianness) architectures. > > The problem lies in the fact that log data is not necessarily written in > an architecture independent format. For example, certain bits of data > are written in native endian format. Further, the size of certain log > data structures differs (i.e., struct xlog_rec_header) depending on the > word size of the cpu. This leads to false positive crc verification > errors and ultimately failed mounts when a cleanly unmounted filesystem > is mounted on a system with an incompatible architecture from data that > was written near the head of the log. > > Update the log head/tail discovery code to run torn write detection only > when the log is not clean. This means something other than an unmount > record resides at the head of the log and log recovery is imminent. It > is a requirement to run log recovery on the same type of host that had > written the content of the dirty log and therefore CRC failures are > legitimate corruptions in that scenario. > > Reported-by: Jan Beulich <JBeulich@xxxxxxxx> > Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx> Tested-by: Jan Beulich <JBeulich@xxxxxxxx> Thank you Brian. Jan _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs