Details
-
Bug
-
Resolution: Fixed
-
Minor
-
Lustre 2.8.0
-
3
-
16690
Description
There was a bug in Lustre 2.1.0 that caused negative timestamps. In Lustre 2.8, tag 2.7.53 and above, code to correct for bad timestamps in Lustre 2.1.0 will no longer be used.
If we want to continue correcting for negative time stamps, the following code must be modified else it can be removed:
In lustre/include/dt_object.h:
#define LU221_BAD_TIME (0x80000000U + 24 * 3600)
In lustre/ofd/ofd_objects.c routine ofd_attr_get(),
#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 7, 53, 0) /* Try to correct for a bug in 2.1.0 (LU-221) that caused * negative timestamps to appear to be in the far future, * due old timestamp being stored on disk as an unsigned value. * This fixes up any bad values stored on disk before * returning them to the client, and ensures any timestamp * updates are correct. LU-1042 */ if (unlikely(la->la_atime == LU221_BAD_TIME)) la->la_atime = 0; if (unlikely(la->la_mtime == LU221_BAD_TIME)) la->la_mtime = 0; if (unlikely(la->la_ctime == LU221_BAD_TIME)) la->la_ctime = 0; #endif