)]}'
{
  "commit": "2f221d6f7b881d95de1f356a3097d755ab1e47d4",
  "tree": "3d136e3ade1492f1ab59e09546ffa6f2d723f76d",
  "parents": [
    "21cb47be6fb9ece7e6ee63f6780986faa384a77c"
  ],
  "author": {
    "name": "Christian Brauner",
    "email": "christian.brauner@ubuntu.com",
    "time": "Thu Jan 21 14:19:26 2021 +0100"
  },
  "committer": {
    "name": "Christian Brauner",
    "email": "christian.brauner@ubuntu.com",
    "time": "Sun Jan 24 14:27:16 2021 +0100"
  },
  "message": "attr: handle idmapped mounts\n\nWhen file attributes are changed most filesystems rely on the\nsetattr_prepare(), setattr_copy(), and notify_change() helpers for\ninitialization and permission checking. Let them handle idmapped mounts.\nIf the inode is accessed through an idmapped mount map it into the\nmount\u0027s user namespace. Afterwards the checks are identical to\nnon-idmapped mounts. If the initial user namespace is passed nothing\nchanges so non-idmapped mounts will see identical behavior as before.\n\nHelpers that perform checks on the ia_uid and ia_gid fields in struct\niattr assume that ia_uid and ia_gid are intended values and have already\nbeen mapped correctly at the userspace-kernelspace boundary as we\nalready do today. If the initial user namespace is passed nothing\nchanges so non-idmapped mounts will see identical behavior as before.\n\nLink: https://lore.kernel.org/r/20210121131959.646623-8-christian.brauner@ubuntu.com\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-fsdevel@vger.kernel.org\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Christian Brauner \u003cchristian.brauner@ubuntu.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "25390569e24cd8bf9e11a7d8202bc572670002fd",
      "old_mode": 33188,
      "old_path": "arch/powerpc/platforms/cell/spufs/inode.c",
      "new_id": "3de526eb22757024315dd28df500da2439d8f4da",
      "new_mode": 33188,
      "new_path": "arch/powerpc/platforms/cell/spufs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "eac184e6d65774da9a39cf70e6f71848a1a373d5",
      "old_mode": 33188,
      "old_path": "drivers/base/devtmpfs.c",
      "new_id": "2e0c3cdb4184bcb2d00860cf774cf4092bff548e",
      "new_mode": 33188,
      "new_path": "drivers/base/devtmpfs.c"
    },
    {
      "type": "modify",
      "old_id": "f66eb3c12c8adeb6e982ba9431738ba742d46b33",
      "old_mode": 33188,
      "old_path": "fs/9p/vfs_inode.c",
      "new_id": "9c3ff6e9ab82b52623902a6b8d01039b39048bfb",
      "new_mode": 33188,
      "new_path": "fs/9p/vfs_inode.c"
    },
    {
      "type": "modify",
      "old_id": "823c2eb5f1bf681a9c79a5f0f565da5989e0ef6a",
      "old_mode": 33188,
      "old_path": "fs/9p/vfs_inode_dotl.c",
      "new_id": "302553101fcbf3659b2694b3ddd3185dc4403e54",
      "new_mode": 33188,
      "new_path": "fs/9p/vfs_inode_dotl.c"
    },
    {
      "type": "modify",
      "old_id": "32620f4a7623ecb5d2d166605ce536b0a3c5b11d",
      "old_mode": 33188,
      "old_path": "fs/adfs/inode.c",
      "new_id": "278dcee6ae225063648ab31bcc1444666f0911c0",
      "new_mode": 33188,
      "new_path": "fs/adfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "044412110b52354f927a49603a6f164785cc8e8c",
      "old_mode": 33188,
      "old_path": "fs/affs/inode.c",
      "new_id": "767e5bdfb7030353f0746be69be88d722a199afc",
      "new_mode": 33188,
      "new_path": "fs/affs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "00ae0b000146f3b717dbfab56160b18129e91395",
      "old_mode": 33188,
      "old_path": "fs/attr.c",
      "new_id": "f4543d2abdfbd1ed516f90c671914a2f7652d8ba",
      "new_mode": 33188,
      "new_path": "fs/attr.c"
    },
    {
      "type": "modify",
      "old_id": "07fe8b2f3babd68a6cdf324f5dfaf31da04b9339",
      "old_mode": 33188,
      "old_path": "fs/btrfs/inode.c",
      "new_id": "792191a8705b06eb5cf9f2d5af13883536b3654b",
      "new_mode": 33188,
      "new_path": "fs/btrfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "4cea5fbf695ea349e9c16da21afeedcd27f32914",
      "old_mode": 33188,
      "old_path": "fs/cachefiles/interface.c",
      "new_id": "5efa6a3702c060feea6d3ef6b6297d76905355fa",
      "new_mode": 33188,
      "new_path": "fs/cachefiles/interface.c"
    },
    {
      "type": "modify",
      "old_id": "e8a15ee09bc1052421dd74b30d88238529d724d0",
      "old_mode": 33188,
      "old_path": "fs/ceph/inode.c",
      "new_id": "285d3baca27ef4c3d29ca7b4ac6ac8fa0fc0e049",
      "new_mode": 33188,
      "new_path": "fs/ceph/inode.c"
    },
    {
      "type": "modify",
      "old_id": "a83b3a8ffaacca690838f66fe4048efe89caf6db",
      "old_mode": 33188,
      "old_path": "fs/cifs/inode.c",
      "new_id": "27554f71f744cb679ba2406cbba6729882649328",
      "new_mode": 33188,
      "new_path": "fs/cifs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "0b346baf110d79e7053b3d113879f698ea37545f",
      "old_mode": 33188,
      "old_path": "fs/ecryptfs/inode.c",
      "new_id": "d3ea0c57b075de49b69bf6d6ea3a5da7513a5d51",
      "new_mode": 33188,
      "new_path": "fs/ecryptfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "a92478eabfa4e43f2198ccf9b62b8632b697c8dc",
      "old_mode": 33188,
      "old_path": "fs/exfat/file.c",
      "new_id": "ace35aa8e64b7f416f26cfa194253d27389dfc7f",
      "new_mode": 33188,
      "new_path": "fs/exfat/file.c"
    },
    {
      "type": "modify",
      "old_id": "78c417d3c8982cc004884afffac14d052f1cc120",
      "old_mode": 33188,
      "old_path": "fs/ext2/inode.c",
      "new_id": "06c0cf28c1a0fe4461da05dba982634ce1e3fecd",
      "new_mode": 33188,
      "new_path": "fs/ext2/inode.c"
    },
    {
      "type": "modify",
      "old_id": "c173c840585618b0be404937154dd8516eccf60a",
      "old_mode": 33188,
      "old_path": "fs/ext4/inode.c",
      "new_id": "8edfa3e226e660339ac04ab39a0e1040df28eddc",
      "new_mode": 33188,
      "new_path": "fs/ext4/inode.c"
    },
    {
      "type": "modify",
      "old_id": "5fc0ff28b5ddb560873545ab221547baa6626e5e",
      "old_mode": 33188,
      "old_path": "fs/f2fs/file.c",
      "new_id": "90d7b89176de8945124ba1f19dea21d91e03d0e2",
      "new_mode": 33188,
      "new_path": "fs/f2fs/file.c"
    },
    {
      "type": "modify",
      "old_id": "f9ee27cf4d7c2f678c67ba61f878d1494b315104",
      "old_mode": 33188,
      "old_path": "fs/fat/file.c",
      "new_id": "805b501467e9f75e3c5eda70a50af7b9b5f3f53b",
      "new_mode": 33188,
      "new_path": "fs/fat/file.c"
    },
    {
      "type": "modify",
      "old_id": "7497009a5a453519fb4e07a5eb5dc3d0fb159f90",
      "old_mode": 33188,
      "old_path": "fs/fuse/dir.c",
      "new_id": "74fdb6a7ebb305e252d3d0e5bd1235ee2b109ff5",
      "new_mode": 33188,
      "new_path": "fs/fuse/dir.c"
    },
    {
      "type": "modify",
      "old_id": "5b2ff0c74b67b47ae926f7fcaf1b532398404300",
      "old_mode": 33188,
      "old_path": "fs/gfs2/inode.c",
      "new_id": "59c25181d108fa049a23993b4216a9d9112f989c",
      "new_mode": 33188,
      "new_path": "fs/gfs2/inode.c"
    },
    {
      "type": "modify",
      "old_id": "f35a37c65e5fffb5a9b0bce1b85420a6d7de4a40",
      "old_mode": 33188,
      "old_path": "fs/hfs/inode.c",
      "new_id": "c646218b72bfa9d471f7ff7e7e5cbd2f212bf968",
      "new_mode": 33188,
      "new_path": "fs/hfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "21357046b0396d949aee02db5aa57b3c0fdcd844",
      "old_mode": 33188,
      "old_path": "fs/hfsplus/inode.c",
      "new_id": "ffa137f8234eda94f614f7abcf674bd8076e25db",
      "new_mode": 33188,
      "new_path": "fs/hfsplus/inode.c"
    },
    {
      "type": "modify",
      "old_id": "b841a05a2b8c9c552cf3a3f19bba5387ec9fab9a",
      "old_mode": 33188,
      "old_path": "fs/hostfs/hostfs_kern.c",
      "new_id": "6970e29a528790185db64cc997153ec7faf6c51c",
      "new_mode": 33188,
      "new_path": "fs/hostfs/hostfs_kern.c"
    },
    {
      "type": "modify",
      "old_id": "eb8b4baf0f2e0630d60a11cbac4d2efc976df209",
      "old_mode": 33188,
      "old_path": "fs/hpfs/inode.c",
      "new_id": "8ba2152a78ba8f7d1bfd04e77c33499eca9e563a",
      "new_mode": 33188,
      "new_path": "fs/hpfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "6737929e443ca4bacdd45b7b504e02c313adb364",
      "old_mode": 33188,
      "old_path": "fs/hugetlbfs/inode.c",
      "new_id": "327e572b4e003dc634830e4d0c43cd8ac0edcb30",
      "new_mode": 33188,
      "new_path": "fs/hugetlbfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "a9ac97a2778487b872fe9c9560094857ff496b3e",
      "old_mode": 33188,
      "old_path": "fs/inode.c",
      "new_id": "49b512592dcd73ce471c3276eb73ef19b94002c8",
      "new_mode": 33188,
      "new_path": "fs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "78858f6e95839cb03859fd36d67dfd85d7c6ba74",
      "old_mode": 33188,
      "old_path": "fs/jffs2/fs.c",
      "new_id": "67993808f4dafef6aa1d4f1ac2881c657b110ec4",
      "new_mode": 33188,
      "new_path": "fs/jffs2/fs.c"
    },
    {
      "type": "modify",
      "old_id": "930d2701f2062bc6801a6fdaf978742c679dc09e",
      "old_mode": 33188,
      "old_path": "fs/jfs/file.c",
      "new_id": "ff49876e9c9b263014e3ae7cb477dbc45bc5fb20",
      "new_mode": 33188,
      "new_path": "fs/jfs/file.c"
    },
    {
      "type": "modify",
      "old_id": "ff5598cc1de0f9b1427cc856b8733df8a4f7d67a",
      "old_mode": 33188,
      "old_path": "fs/kernfs/inode.c",
      "new_id": "86bd4c593b78a0c352746f0e50fdcc9a18aaa23d",
      "new_mode": 33188,
      "new_path": "fs/kernfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "f8b3c02b4f0f98c9da74e1f5194cc00873423e16",
      "old_mode": 33188,
      "old_path": "fs/libfs.c",
      "new_id": "a73fe109403cbc2c979e951a2682eeaa81dc345e",
      "new_mode": 33188,
      "new_path": "fs/libfs.c"
    },
    {
      "type": "modify",
      "old_id": "c50b0a20fcd9c15ecf4a2bd8887bce9a8b6e88f8",
      "old_mode": 33188,
      "old_path": "fs/minix/file.c",
      "new_id": "f07acd268577f8517bb0bd102e51d7104da5a548",
      "new_mode": 33188,
      "new_path": "fs/minix/file.c"
    },
    {
      "type": "modify",
      "old_id": "9473d048efec8fd4363b8f46b63a1443ec9b73ca",
      "old_mode": 33188,
      "old_path": "fs/nfsd/nfsproc.c",
      "new_id": "0ea0554d20d17c7333b1a2a4afbba0fc8c698860",
      "new_mode": 33188,
      "new_path": "fs/nfsd/nfsproc.c"
    },
    {
      "type": "modify",
      "old_id": "0edf11258aaa7329f637ed93b3b09e3125b56f39",
      "old_mode": 33188,
      "old_path": "fs/nfsd/vfs.c",
      "new_id": "1905b39be1c2c4e0c50bf4f8aa0bfc3bb9fd0a08",
      "new_mode": 33188,
      "new_path": "fs/nfsd/vfs.c"
    },
    {
      "type": "modify",
      "old_id": "11225a65973697402f08dfc68115cef1ea90cc13",
      "old_mode": 33188,
      "old_path": "fs/nilfs2/inode.c",
      "new_id": "8aad3c48092a63394144b02ce11776e11775e308",
      "new_mode": 33188,
      "new_path": "fs/nilfs2/inode.c"
    },
    {
      "type": "modify",
      "old_id": "f7e4cbc26eaf954da7febc6164111377ea4e7015",
      "old_mode": 33188,
      "old_path": "fs/ntfs/inode.c",
      "new_id": "38f4cf1d44977241724ec310d60ce46874d02f54",
      "new_mode": 33188,
      "new_path": "fs/ntfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "37c7d03a6284a36a1633ebfec3b02bdfffb6cd28",
      "old_mode": 33188,
      "old_path": "fs/ocfs2/dlmfs/dlmfs.c",
      "new_id": "9fa66cd1f622230042799694a4da7eae16da6579",
      "new_mode": 33188,
      "new_path": "fs/ocfs2/dlmfs/dlmfs.c"
    },
    {
      "type": "modify",
      "old_id": "0c75619adf54676aa1b256774b16a90a013963cb",
      "old_mode": 33188,
      "old_path": "fs/ocfs2/file.c",
      "new_id": "cabf355b148ff19e893c8afefe25bc2a2f1bb173",
      "new_mode": 33188,
      "new_path": "fs/ocfs2/file.c"
    },
    {
      "type": "modify",
      "old_id": "2c7b70ee1388c2b349775be5ca8e0e2f9c0450c3",
      "old_mode": 33188,
      "old_path": "fs/omfs/file.c",
      "new_id": "729339cd79025ead0c357abdff8a1dd70d0c11ac",
      "new_mode": 33188,
      "new_path": "fs/omfs/file.c"
    },
    {
      "type": "modify",
      "old_id": "a6dac6d97988a6abc3116ddaf0c2638c9e5d9751",
      "old_mode": 33188,
      "old_path": "fs/open.c",
      "new_id": "c3e4dc43dd8dd3d62085ded92b742dcc148b69f6",
      "new_mode": 33188,
      "new_path": "fs/open.c"
    },
    {
      "type": "modify",
      "old_id": "4c790cc8042df8590edd4862e6c97d422dd3f48d",
      "old_mode": 33188,
      "old_path": "fs/orangefs/inode.c",
      "new_id": "8ac9491ceb9a9fa3a90f74d2f93ad427e9ae825a",
      "new_mode": 33188,
      "new_path": "fs/orangefs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "e5b616c93e11b673d870a880d5d6233f20da536a",
      "old_mode": 33188,
      "old_path": "fs/overlayfs/copy_up.c",
      "new_id": "3e9957ae19fa348f9e902cb120d3f7a38619c189",
      "new_mode": 33188,
      "new_path": "fs/overlayfs/copy_up.c"
    },
    {
      "type": "modify",
      "old_id": "98a23353b19adf0f33ac1ebd0b169f170fa5395c",
      "old_mode": 33188,
      "old_path": "fs/overlayfs/dir.c",
      "new_id": "29840820a46c670dcf4df4ba1825686a7c826abb",
      "new_mode": 33188,
      "new_path": "fs/overlayfs/dir.c"
    },
    {
      "type": "modify",
      "old_id": "c101ebbb7a7792efd9faaa1494c0233f7122e10f",
      "old_mode": 33188,
      "old_path": "fs/overlayfs/inode.c",
      "new_id": "5aa66881dbd7edadd96a215a0786d2a3b885239f",
      "new_mode": 33188,
      "new_path": "fs/overlayfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "3e925deaa19a78058e97becd0f198fd33a692556",
      "old_mode": 33188,
      "old_path": "fs/overlayfs/super.c",
      "new_id": "39b2e9aa0e5ba3e953bcc27bdab39aea306007ca",
      "new_mode": 33188,
      "new_path": "fs/overlayfs/super.c"
    },
    {
      "type": "modify",
      "old_id": "b4ec9293625e35592431bdc8bb64a26371325881",
      "old_mode": 33188,
      "old_path": "fs/proc/base.c",
      "new_id": "bb4e63a3684f7fe0c4cbddcc8d6896cd1db332f0",
      "new_mode": 33188,
      "new_path": "fs/proc/base.c"
    },
    {
      "type": "modify",
      "old_id": "6c0a05f55d6b12b4551bfd9e5879d01f50209a0e",
      "old_mode": 33188,
      "old_path": "fs/proc/generic.c",
      "new_id": "6d4fabab8aa7db9ba909ff6418d68d00c57ffb8c",
      "new_mode": 33188,
      "new_path": "fs/proc/generic.c"
    },
    {
      "type": "modify",
      "old_id": "317899222d7fdf35b564fc7664311f47194db644",
      "old_mode": 33188,
      "old_path": "fs/proc/proc_sysctl.c",
      "new_id": "ec67dbc1f7058fac0b47c387d42158d029ed7cb2",
      "new_mode": 33188,
      "new_path": "fs/proc/proc_sysctl.c"
    },
    {
      "type": "modify",
      "old_id": "355523f4a4bf3ee2d525fcab44e68809463cc2e8",
      "old_mode": 33188,
      "old_path": "fs/ramfs/file-nommu.c",
      "new_id": "f0358fe410d3b4ed6fd9f36f786158e0869cc05e",
      "new_mode": 33188,
      "new_path": "fs/ramfs/file-nommu.c"
    },
    {
      "type": "modify",
      "old_id": "c76d563dec0e1fae37a4aae748774a1ce33cde9e",
      "old_mode": 33188,
      "old_path": "fs/reiserfs/inode.c",
      "new_id": "944f2b487cf8cac2295b2f86f7556972066224f3",
      "new_mode": 33188,
      "new_path": "fs/reiserfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "45fc79a18594f1a21f9f5234c280187557ae720a",
      "old_mode": 33188,
      "old_path": "fs/sysv/file.c",
      "new_id": "ca7e216b7b9e8e553efbca808349c957f151eab1",
      "new_mode": 33188,
      "new_path": "fs/sysv/file.c"
    },
    {
      "type": "modify",
      "old_id": "2bc7780d2963c8f709d130a4626326fd03f045d0",
      "old_mode": 33188,
      "old_path": "fs/ubifs/file.c",
      "new_id": "76ef392b1e41a619bd39ee2a10b50892b0c03602",
      "new_mode": 33188,
      "new_path": "fs/ubifs/file.c"
    },
    {
      "type": "modify",
      "old_id": "3671a40ed3c3ef19b82e95c48a31834aa7575b68",
      "old_mode": 33188,
      "old_path": "fs/udf/file.c",
      "new_id": "7c7d161315c29f39d71a05429c27a9ddb2d31a2c",
      "new_mode": 33188,
      "new_path": "fs/udf/file.c"
    },
    {
      "type": "modify",
      "old_id": "c843ec858cf7cd0aff4e1dc4b118bbcc9581c7a5",
      "old_mode": 33188,
      "old_path": "fs/ufs/inode.c",
      "new_id": "6b51f3b201437a73927bcaf4b8ff28b7714376ba",
      "new_mode": 33188,
      "new_path": "fs/ufs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "fd3cc42262241f6b39f4f05d8579737403bae27a",
      "old_mode": 33188,
      "old_path": "fs/utimes.c",
      "new_id": "4572b91ddb915800fa1548b58777ee95460b8baa",
      "new_mode": 33188,
      "new_path": "fs/utimes.c"
    },
    {
      "type": "modify",
      "old_id": "67c8dc9de8aa47129c138147cd3be87c631c856a",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_iops.c",
      "new_id": "08a478d25122bd3d384ad59fac3de355d9a9ae41",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_iops.c"
    },
    {
      "type": "modify",
      "old_id": "569525ee8f69725f25aac3dc009aaca49e6aa073",
      "old_mode": 33188,
      "old_path": "fs/zonefs/super.c",
      "new_id": "8a1f696777849c09d0b30f5b93baae8bc96afdc7",
      "new_mode": 33188,
      "new_path": "fs/zonefs/super.c"
    },
    {
      "type": "modify",
      "old_id": "2a9d4af6a64d70b568b057fec7cce3c99bce27c8",
      "old_mode": 33188,
      "old_path": "include/linux/fs.h",
      "new_id": "e3ea1d7c336749adf998b66843e6c0c8e140783c",
      "new_mode": 33188,
      "new_path": "include/linux/fs.h"
    },
    {
      "type": "modify",
      "old_id": "1c68c9edba5e933ed5831d68d2b3077d2b6f4151",
      "old_mode": 33188,
      "old_path": "mm/shmem.c",
      "new_id": "1cb451e131ecea25fb6504c18732ab155a21927b",
      "new_mode": 33188,
      "new_path": "mm/shmem.c"
    }
  ]
}
