)]}'
{
  "commit": "b09e0fa4b4ea66266058eead43350bd7d55fec67",
  "tree": "35eed2e1bc39bbbca1c041b69e1e12e826241ccf",
  "parents": [
    "4eb317072be81bd93906f768679f745bc574e6b7"
  ],
  "author": {
    "name": "Eric Paris",
    "email": "eparis@redhat.com",
    "time": "Tue May 24 17:12:39 2011 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed May 25 08:39:31 2011 -0700"
  },
  "message": "tmpfs: implement generic xattr support\n\nImplement generic xattrs for tmpfs filesystems.  The Feodra project, while\ntrying to replace suid apps with file capabilities, realized that tmpfs,\nwhich is used on the build systems, does not support file capabilities and\nthus cannot be used to build packages which use file capabilities.  Xattrs\nare also needed for overlayfs.\n\nThe xattr interface is a bit odd.  If a filesystem does not implement any\n{get,set,list}xattr functions the VFS will call into some random LSM hooks\nand the running LSM can then implement some method for handling xattrs.\nSELinux for example provides a method to support security.selinux but no\nother security.* xattrs.\n\nAs it stands today when one enables CONFIG_TMPFS_POSIX_ACL tmpfs will have\nxattr handler routines specifically to handle acls.  Because of this tmpfs\nwould loose the VFS/LSM helpers to support the running LSM.  To make up\nfor that tmpfs had stub functions that did nothing but call into the LSM\nhooks which implement the helpers.\n\nThis new patch does not use the LSM fallback functions and instead just\nimplements a native get/set/list xattr feature for the full security.* and\ntrusted.* namespace like a normal filesystem.  This means that tmpfs can\nnow support both security.selinux and security.capability, which was not\npreviously possible.\n\nThe basic implementation is that I attach a:\n\nstruct shmem_xattr {\n\tstruct list_head list; /* anchored by shmem_inode_info-\u003exattr_list */\n\tchar *name;\n\tsize_t size;\n\tchar value[0];\n};\n\nInto the struct shmem_inode_info for each xattr that is set.  This\nimplementation could easily support the user.* namespace as well, except\nsome care needs to be taken to prevent large amounts of unswappable memory\nbeing allocated for unprivileged users.\n\n[mszeredi@suse.cz: new config option, suport trusted.*, support symlinks]\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@ubuntu.com\u003e\nTested-by: Serge Hallyn \u003cserge.hallyn@ubuntu.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nTested-by: Jordi Pujol \u003cjordipujolp@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f3aa9b08b228b7287886f418d2291962cf8eef2c",
      "old_mode": 33188,
      "old_path": "fs/Kconfig",
      "new_id": "979992dcb386d68f3fefd1c9edad6e3de9758118",
      "new_mode": 33188,
      "new_path": "fs/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "399be5ad2f996cb0124412d68a9f1b191cc1e685",
      "old_mode": 33188,
      "old_path": "include/linux/shmem_fs.h",
      "new_id": "2b7fec840517ff00ae46d14b0662bbf85bb4dc62",
      "new_mode": 33188,
      "new_path": "include/linux/shmem_fs.h"
    },
    {
      "type": "modify",
      "old_id": "ba4ad28b7db6b81c141915a5d3eb4241fdbfd1a7",
      "old_mode": 33188,
      "old_path": "mm/shmem.c",
      "new_id": "69edb45a9f2830d0919a313e977d35f6a94efdd7",
      "new_mode": 33188,
      "new_path": "mm/shmem.c"
    }
  ]
}
