1. 15 6月, 2018 38 次提交
  2. 14 6月, 2018 2 次提交
    • A
      pstore: Remove bogus format string definition · e264abea
      Arnd Bergmann 提交于
      The pstore conversion to timespec64 introduces its own method of passing
      seconds into sscanf() and sprintf() type functions to work around the
      timespec64 definition on 64-bit systems that redefine it to 'timespec'.
      
      That hack is now finally getting removed, but that means we get a (harmless)
      warning once both patches are merged:
      
      fs/pstore/ram.c: In function 'ramoops_read_kmsg_hdr':
      fs/pstore/ram.c:39:29: error: format '%ld' expects argument of type 'long int *', but argument 3 has type 'time64_t *' {aka 'long long int *'} [-Werror=format=]
       #define RAMOOPS_KERNMSG_HDR "===="
                                   ^~~~~~
      fs/pstore/ram.c:167:21: note: in expansion of macro 'RAMOOPS_KERNMSG_HDR'
      
      This removes the pstore specific workaround and uses the same method that
      we have in place for all other functions that print a timespec64.
      
      Related to this, I found that the kasprintf() output contains an incorrect
      nanosecond values for any number starting with zeroes, and I adapt the
      format string accordingly.
      
      Link: https://lkml.org/lkml/2018/5/19/115
      Link: https://lkml.org/lkml/2018/5/16/1080
      Fixes: 0f0d83b99ef7 ("pstore: Convert internal records to timespec64")
      Acked-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      e264abea
    • A
      Merge branch 'vfs_timespec64' of https://github.com/deepa-hub/vfs into vfs-timespec64 · 15eefe2a
      Arnd Bergmann 提交于
      Pull the timespec64 conversion from Deepa Dinamani:
       "The series aims to switch vfs timestamps to use
        struct timespec64. Currently vfs uses struct timespec,
        which is not y2038 safe.
      
        The flag patch applies cleanly. I've not seen the timestamps
        update logic change often. The series applies cleanly on 4.17-rc6
        and linux-next tip (top commit: next-20180517).
      
        I'm not sure how to merge this kind of a series with a flag patch.
        We are targeting 4.18 for this.
        Let me know if you have other suggestions.
      
        The series involves the following:
        1. Add vfs helper functions for supporting struct timepec64 timestamps.
        2. Cast prints of vfs timestamps to avoid warnings after the switch.
        3. Simplify code using vfs timestamps so that the actual
           replacement becomes easy.
        4. Convert vfs timestamps to use struct timespec64 using a script.
           This is a flag day patch.
      
        I've tried to keep the conversions with the script simple, to
        aid in the reviews. I've kept all the internal filesystem data
        structures and function signatures the same.
      
        Next steps:
        1. Convert APIs that can handle timespec64, instead of converting
           timestamps at the boundaries.
        2. Update internal data structures to avoid timestamp conversions."
      
      I've pulled it into a branch based on top of the NFS changes that
      are now in mainline, so I could resolve the non-obvious conflict
      between the two while merging.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      15eefe2a