• Damien George's avatar
    extmod/vfs_lfs: Add mtime support to littlefs files. · 2acc0878
    Damien George authored
    This commit adds support for modification time of files on littlefs v2
    filesystems, using file attributes.  For some background see issue #6114.
    
    Features/properties of this implementation:
    - Only supported on littlefs2 (not littlefs1).
    - Uses littlefs2's general file attributes to store the timestamp.
    - The timestamp is 64-bits and stores nanoseconds since 1970/1/1 (if the
      range to the year 2554 is not enough then additional bits can be added to
      this timestamp by adding another file attribute).
    - mtime is enabled by default but can be disabled in the constructor, eg:
      uos.mount(uos.VfsLfs2(bdev, mtime=False), '/flash')
    - It's fully backwards compatible, existing littlefs2 filesystems will work
      without reformatting and timestamps will be added transparently to
      existing files (once they are opened for writing).
    - Files without timestamps will open correctly, and stat will just return 0
      for their timestamp.
    - mtime can be disabled or enabled each mount time and timestamps will only
      be updated if mtime is enabled (otherwise they will be untouched).
    Signed-off-by: default avatarDamien George <damien@micropython.org>
    2acc0878
vfs_lfs_mtime.py 2.58 KB