)]}'
{
  "commit": "746f1e558bc52b9693c1a1ecdab60f8392e5ff18",
  "tree": "a3253428affed93967c3ec67ba27ce8fe7d333c2",
  "parents": [
    "0293902a4d66fab27d0ddcc0766e05dae68f004e"
  ],
  "author": {
    "name": "Michael Halcrow",
    "email": "mhalcrow@us.ibm.com",
    "time": "Wed Jul 23 21:30:02 2008 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Jul 24 10:47:30 2008 -0700"
  },
  "message": "eCryptfs: Privileged kthread for lower file opens\n\neCryptfs would really like to have read-write access to all files in the\nlower filesystem.  Right now, the persistent lower file may be opened\nread-only if the attempt to open it read-write fails.  One way to keep\nfrom having to do that is to have a privileged kthread that can open the\nlower persistent file on behalf of the user opening the eCryptfs file;\nthis patch implements this functionality.\n\nThis patch will properly allow a less-privileged user to open the eCryptfs\nfile, followed by a more-privileged user opening the eCryptfs file, with\nthe first user only being able to read and the second user being able to\nboth read and write.  eCryptfs currently does this wrong; it will wind up\ncalling vfs_write() on a file that was opened read-only.  This is fixed in\nthis patch.\n\nSigned-off-by: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Eric Sandeen \u003csandeen@redhat.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": "1e34a7fd4884391b5bec9a3de93bc4dfb86d7d2b",
      "old_mode": 33188,
      "old_path": "fs/ecryptfs/Makefile",
      "new_id": "b4755a85996e9d6be9597fb92c05d668ff88713c",
      "new_mode": 33188,
      "new_path": "fs/ecryptfs/Makefile"
    },
    {
      "type": "modify",
      "old_id": "c15c25745e05d4ff5cac6e2595e6039858dff693",
      "old_mode": 33188,
      "old_path": "fs/ecryptfs/ecryptfs_kernel.h",
      "new_id": "b4a0cccfdd7c7302e3eb9795c9f5f4dee64a9433",
      "new_mode": 33188,
      "new_path": "fs/ecryptfs/ecryptfs_kernel.h"
    },
    {
      "type": "modify",
      "old_id": "24749bf0668f0c8d82a887e2b857c347a86a40f5",
      "old_mode": 33188,
      "old_path": "fs/ecryptfs/file.c",
      "new_id": "f0be29051528024d375057cfb6f39fc43568878b",
      "new_mode": 33188,
      "new_path": "fs/ecryptfs/file.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c440c6b58b2da5413ab431198304a5a2820e6891",
      "new_mode": 33188,
      "new_path": "fs/ecryptfs/kthread.c"
    },
    {
      "type": "modify",
      "old_id": "d603631601ebdd364d619b18efdcbafec8b4ac91",
      "old_mode": 33188,
      "old_path": "fs/ecryptfs/main.c",
      "new_id": "f36ab2feea280fb4389ebee7646fa5ff74879726",
      "new_mode": 33188,
      "new_path": "fs/ecryptfs/main.c"
    }
  ]
}
