)]}'
{
  "commit": "50ee9e5d8e3ef15fc4bed781df9a6b2f708230ff",
  "tree": "c0ef04608628aca64e2c89beed4374e930cd876c",
  "parents": [
    "acc9eb0a607300be08639fd4449bf51225239c7d"
  ],
  "author": {
    "name": "Eric Biggers",
    "email": "ebiggers@google.com",
    "time": "Thu Nov 01 15:52:30 2018 -0700"
  },
  "committer": {
    "name": "Theodore Ts\u0027o",
    "email": "tytso@mit.edu",
    "time": "Wed Nov 28 18:14:53 2018 -0500"
  },
  "message": "f2fs: fs-verity support\n\nAdd fs-verity support to f2fs.  fs-verity is a filesystem feature that\nenables transparent integrity protection and authentication of read-only\nfiles.  It uses a dm-verity like mechanism at the file level: a Merkle\ntree is used to verify any block in the file in log(filesize) time.  It\nis implemented mainly by helper functions in fs/verity/.\nSee Documentation/filesystems/fsverity.rst for details.\n\nIn f2fs, the main change is to the I/O path: -\u003ereadpage() and\n-\u003ereadpages() now verify data as it is read from verity files.  Pages\nthat fail verification are set to PG_error \u0026\u0026 !PG_uptodate, causing\napplications to see an I/O error.\n\nHooks are also added to several other f2fs filesystem operations:\n\n* -\u003eopen(), to deny opening verity files for writing and to set up\n  the fsverity_info to prepare for I/O\n\n* -\u003egetattr() to set up the fsverity_info to make stat() show the\n  original data size of verity files\n\n* -\u003esetattr() to deny truncating verity files\n\n* update_inode() to write out the full file size rather than the\n  original data size, since for verity files the in-memory -\u003ei_size is\n  overridden with the original data size.\n\nFinally, the FS_IOC_ENABLE_VERITY and FS_IOC_MEASURE_VERITY ioctls are\nwired up.  On f2fs, these ioctls require that the filesystem has the\n\u0027verity\u0027 feature, i.e. it was created with \u0027mkfs.f2fs -O verity\u0027.\n\nLike we did in ext4, in f2fs we choose to retain the fs-verity metadata\npast the end of the file rather than move it into an xattr, since in\npractice this results in the simplest and most efficient implementation.\nFor example, it avoids needing to add support for external inode xattrs\nand for xattr encryption.\n\nSigned-off-by: Eric Biggers \u003cebiggers@google.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9a20ef42fadde47167dd38f3bd0e467301fafead",
      "old_mode": 33188,
      "old_path": "fs/f2fs/Kconfig",
      "new_id": "c8396c7220f2aa808d32ad9eb8e454becb3a0459",
      "new_mode": 33188,
      "new_path": "fs/f2fs/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "b293cb3e27a228bd4549b71aed643116fb1c80bc",
      "old_mode": 33188,
      "old_path": "fs/f2fs/data.c",
      "new_id": "09d9fc1676a7eb4622cb6661a975899b755a9cd2",
      "new_mode": 33188,
      "new_path": "fs/f2fs/data.c"
    },
    {
      "type": "modify",
      "old_id": "0909a7087d0f6e35ee7049ee82665e1111781824",
      "old_mode": 33188,
      "old_path": "fs/f2fs/f2fs.h",
      "new_id": "3caf971ee0af3b24648910d1041d262f9d65a391",
      "new_mode": 33188,
      "new_path": "fs/f2fs/f2fs.h"
    },
    {
      "type": "modify",
      "old_id": "82f144052fcefe84418cfc30e1906fd190119683",
      "old_mode": 33188,
      "old_path": "fs/f2fs/file.c",
      "new_id": "a147db5353d65a7cdd534206990ad8b8520d010b",
      "new_mode": 33188,
      "new_path": "fs/f2fs/file.c"
    },
    {
      "type": "modify",
      "old_id": "f63d4fe6156d5be0d9f563bc7d32abc0af904063",
      "old_mode": 33188,
      "old_path": "fs/f2fs/inode.c",
      "new_id": "0cbf936530e72deb69ba52020947d665f262e9a8",
      "new_mode": 33188,
      "new_path": "fs/f2fs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "b7121314e91eb047f0114a91454da435c15b1783",
      "old_mode": 33188,
      "old_path": "fs/f2fs/super.c",
      "new_id": "b65775330bf008b6bc760588ac9316cd4e3b90ec",
      "new_mode": 33188,
      "new_path": "fs/f2fs/super.c"
    },
    {
      "type": "modify",
      "old_id": "240e4881279e4f5a0773391dbf53fd95bf109a8c",
      "old_mode": 33188,
      "old_path": "fs/f2fs/sysfs.c",
      "new_id": "5b55c4f96d6ea402155b09f6658c4ec878cd7656",
      "new_mode": 33188,
      "new_path": "fs/f2fs/sysfs.c"
    }
  ]
}
