)]}'
{
  "log": [
    {
      "commit": "3063287053bca5207e121c567b95b2b6f0bdc2c8",
      "tree": "404c92175f536d20576254a43a7a93b3b02343f2",
      "parents": [
        "778aeb42a708d2a57e491d2cbb5a1e74f61270b9"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue May 24 05:11:12 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Sun May 29 14:24:25 2011 -0500"
      },
      "message": "eCryptfs: Remove ecryptfs_header_cache_2\n\nNow that ecryptfs_lookup_interpose() is no longer using\necryptfs_header_cache_2 to read in metadata, the kmem_cache can be\nremoved and the ecryptfs_header_cache_1 kmem_cache can be renamed to\necryptfs_header_cache.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "778aeb42a708d2a57e491d2cbb5a1e74f61270b9",
      "tree": "6651d8a2356b9075e6978285cbcfa7aab16e9b7a",
      "parents": [
        "7a86617e553f47761b10f57de472d7262562b7de"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue May 24 04:56:23 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Sun May 29 14:24:24 2011 -0500"
      },
      "message": "eCryptfs: Cleanup and optimize ecryptfs_lookup_interpose()\n\necryptfs_lookup_interpose() has turned into spaghetti code over the\nyears. This is an effort to clean it up.\n\n - Shorten overly descriptive variable names such as ecryptfs_dentry\n - Simplify gotos and error paths\n - Create helper function for reading plaintext i_size from metadata\n\nIt also includes an optimization when reading i_size from the metadata.\nA complete page-sized kmem_cache_alloc() was being done to read in 16\nbytes of metadata. The buffer for that is now statically declared.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "7a86617e553f47761b10f57de472d7262562b7de",
      "tree": "63ae402692eae9b062b3423b6d081ebe9a192d36",
      "parents": [
        "3b06b3ebf44170c90c893c6c80916db6e922b9f2"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon May 02 00:39:54 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Sun May 29 14:24:24 2011 -0500"
      },
      "message": "eCryptfs: Return useful code from contains_ecryptfs_marker\n\nInstead of having the calling functions translate the true/false return\ncode to either 0 or -EINVAL, have contains_ecryptfs_marker() return 0 or\n-EINVAL so that the calling functions can just reuse the return code.\n\nAlso, rename the function to ecryptfs_validate_marker() to avoid callers\nmistakenly thinking that it returns true/false codes.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "3b06b3ebf44170c90c893c6c80916db6e922b9f2",
      "tree": "1da70b311ad7ec7615f3d44ae269ca56a458fc2d",
      "parents": [
        "5ccf92037c7c6e6f28175fd245284923f939259f"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue May 24 03:49:02 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Sun May 29 14:23:39 2011 -0500"
      },
      "message": "eCryptfs: Fix new inode race condition\n\nOnly unlock and d_add() new inodes after the plaintext inode size has\nbeen read from the lower filesystem. This fixes a race condition that\nwas sometimes seen during a multi-job kernel build in an eCryptfs mount.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d36002\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nReported-by: David \u003cdavid@unsolicited.net\u003e\nTested-by: David \u003cdavid@unsolicited.net\u003e\n"
    },
    {
      "commit": "5ccf92037c7c6e6f28175fd245284923f939259f",
      "tree": "3d9d551131686c9b0f4c6f7ed31ce4db1dbd0327",
      "parents": [
        "c4f790736ca8d7d86883c5aee2ba1caa15cd8da3"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue May 24 02:16:51 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Sun May 29 12:51:17 2011 -0500"
      },
      "message": "eCryptfs: Cleanup inode initialization code\n\nThe eCryptfs inode get, initialization, and dentry interposition code\nhas two separate paths. One is for when dentry interposition is needed\nafter doing things like a mkdir in the lower filesystem and the other\nis needed after a lookup. Unlocking new inodes and doing a d_add() needs\nto happen at different times, depending on which type of dentry\ninterposing is being done.\n\nThis patch cleans up the inode get and initialization code paths and\nsplits them up so that the locking and d_add() differences mentioned\nabove can be handled appropriately in a later patch.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nTested-by: David \u003cdavid@unsolicited.net\u003e\n"
    },
    {
      "commit": "c4f790736ca8d7d86883c5aee2ba1caa15cd8da3",
      "tree": "827e371fb2aff1e9290fbd90ca436d069aaa356d",
      "parents": [
        "139f37f5e14cd883eee2a8a36289f544b5390a44"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon May 23 21:18:20 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Sun May 29 12:49:53 2011 -0500"
      },
      "message": "eCryptfs: Consolidate inode functions into inode.c\n\nThese functions should live in inode.c since their focus is on inodes\nand they\u0027re primarily used by functions in inode.c.\n\nAlso does a simple cleanup of ecryptfs_inode_test() and rolls\necryptfs_init_inode() into ecryptfs_inode_set().\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nTested-by: David \u003cdavid@unsolicited.net\u003e\n"
    },
    {
      "commit": "36947a76826111e661a26cb0f668a5be6cc3ddb4",
      "tree": "ed5d92c9d71f9ca68e6a3583a10ebf911c9c44dd",
      "parents": [
        "a947e23a8ec04bccbfe98c5a2d64cd1f88b612d5",
        "69b4573296469fd3f70cf7044693074980517067"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 13:03:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 13:03:41 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (36 commits)\n  Cache xattr security drop check for write v2\n  fs: block_page_mkwrite should wait for writeback to finish\n  mm: Wait for writeback when grabbing pages to begin a write\n  configfs: remove unnecessary dentry_unhash on rmdir, dir rename\n  fat: remove unnecessary dentry_unhash on rmdir, dir rename\n  hpfs: remove unnecessary dentry_unhash on rmdir, dir rename\n  minix: remove unnecessary dentry_unhash on rmdir, dir rename\n  fuse: remove unnecessary dentry_unhash on rmdir, dir rename\n  coda: remove unnecessary dentry_unhash on rmdir, dir rename\n  afs: remove unnecessary dentry_unhash on rmdir, dir rename\n  affs: remove unnecessary dentry_unhash on rmdir, dir rename\n  9p: remove unnecessary dentry_unhash on rmdir, dir rename\n  ncpfs: fix rename over directory with dangling references\n  ncpfs: document dentry_unhash usage\n  ecryptfs: remove unnecessary dentry_unhash on rmdir, dir rename\n  hostfs: remove unnecessary dentry_unhash on rmdir, dir rename\n  hfsplus: remove unnecessary dentry_unhash on rmdir, dir rename\n  hfs: remove unnecessary dentry_unhash on rmdir, dir rename\n  omfs: remove unnecessary dentry_unhash on rmdir, dir rneame\n  udf: remove unnecessary dentry_unhash from rmdir, dir rename\n  ...\n"
    },
    {
      "commit": "55e5b7e022eaaa805a44e3b6ecd5c8638d862050",
      "tree": "0b0c1b2d61769aef13e74ab54d43ce06e2b0fe0d",
      "parents": [
        "e41a59e0550b7bb40fe8c3438d690712e9fd511c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 27 13:42:08 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 28 01:02:52 2011 -0400"
      },
      "message": "ecryptfs: remove unnecessary dentry_unhash on rmdir, dir rename\n\necryptfs does not have problems with references to unlinked directories.\n\nCC: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nCC: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCC: ecryptfs-devel@lists.launchpad.net\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aaab184276a6e20834f63735d433f94ef52a0497",
      "tree": "89469029763d1fe713960200ac16014fef7c2167",
      "parents": [
        "e52e713ec30a31e9a4663d9aebbaae5ec07466a6",
        "a058bfbbeca576cf7c93ac4f16092f13f414434e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 11:07:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 11:07:50 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:\n  MAINTAINERS: Update eCryptfs mailing list\n  eCryptfs: Allow 2 scatterlist entries for encrypted filenames\n  eCryptfs: Clear i_nlink in rmdir\n"
    },
    {
      "commit": "8d08dab786ad5cc2aca2bf870de370144b78c85a",
      "tree": "dda63612924a6eb53500952e00a2bc4f05f2d150",
      "parents": [
        "07850552b92b3637fa56767b5e460b4238014447"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue May 17 00:50:33 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri May 27 11:46:14 2011 -0500"
      },
      "message": "eCryptfs: Allow 2 scatterlist entries for encrypted filenames\n\nThe buffers allocated while encrypting and decrypting long filenames can\nsometimes straddle two pages. In this situation, virt_to_scatterlist()\nwill return -ENOMEM, causing the operation to fail and the user will get\nscary error messages in their logs:\n\nkernel: ecryptfs_write_tag_70_packet: Internal error whilst attempting\nto convert filename memory to scatterlist; expected rc \u003d 1; got rc \u003d\n[-12]. block_aligned_filename_size \u003d [272]\nkernel: ecryptfs_encrypt_filename: Error attempting to generate tag 70\npacket; rc \u003d [-12]\nkernel: ecryptfs_encrypt_and_encode_filename: Error attempting to\nencrypt filename; rc \u003d [-12]\nkernel: ecryptfs_lookup: Error attempting to encrypt and encode\nfilename; rc \u003d [-12]\n\nThe solution is to allow up to 2 scatterlist entries to be used.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "07850552b92b3637fa56767b5e460b4238014447",
      "tree": "2b3da6ab0f16a77492bb2d42a667f4c21d4b4f45",
      "parents": [
        "61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Apr 29 16:26:27 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri May 27 11:46:14 2011 -0500"
      },
      "message": "eCryptfs: Clear i_nlink in rmdir\n\neCryptfs wasn\u0027t clearing the eCryptfs inode\u0027s i_nlink after a successful\nvfs_rmdir() on the lower directory. This resulted in the inode evict and\ndestroy paths to be missed.\n\nhttps://bugs.launchpad.net/ecryptfs/+bug/723518\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "e4eaac06bcccb2a70bca6a2de9871882dce2aa14",
      "tree": "ca6736d96294cd6e65a1c3055718bfd5adc7336e",
      "parents": [
        "79bf7c732b5ff75b96022ed9d29181afd3d2509c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 24 13:06:07 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:48 2011 -0400"
      },
      "message": "vfs: push dentry_unhash on rename_dir into file systems\n\nOnly a few file systems need this.  Start by pushing it down into each\nrename method (except gfs2 and xfs) so that it can be dealt with on a\nper-fs basis.\n\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79bf7c732b5ff75b96022ed9d29181afd3d2509c",
      "tree": "74b8cc690f9a37fff02d0685464e1c695a25ef94",
      "parents": [
        "64252c75a2196a0cf1e0d3777143ecfe0e3ae650"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 24 13:06:06 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:47 2011 -0400"
      },
      "message": "vfs: push dentry_unhash on rmdir into file systems\n\nOnly a few file systems need this.  Start by pushing it down into each\nfs rmdir method (except gfs2 and xfs) so it can be dealt with on a per-fs\nbasis.\n\nThis does not change behavior for any in-tree file systems.\n\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5be79de2e1ffa19d871a494697cf76cddee93384",
      "tree": "4b6a9e060ba1d33f3573f0ea4b04f950e8027c79",
      "parents": [
        "3aeb86ea4cd15f728147a3bd5469a205ada8c767"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Apr 22 13:08:00 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 25 18:49:46 2011 -0500"
      },
      "message": "eCryptfs: Flush dirty pages in setattr\n\nAfter 57db4e8d73ef2b5e94a3f412108dff2576670a8a changed eCryptfs to\nwrite-back caching, eCryptfs page writeback updates the lower inode\ntimes due to the use of vfs_write() on the lower file.\n\nTo preserve inode metadata changes, such as \u0027cp -p\u0027 does with\nutimensat(), we need to flush all dirty pages early in\necryptfs_setattr() so that the user-updated lower inode metadata isn\u0027t\nclobbered later in writeback.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d33372\n\nReported-by: Rocko \u003crockorequin@hotmail.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "3aeb86ea4cd15f728147a3bd5469a205ada8c767",
      "tree": "6219c664f7938fa8e5e8a2efa93aab7bcc38c12f",
      "parents": [
        "332ab16f830f59e7621ae8eb2c353dc135a316f6"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Mar 15 14:54:00 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 25 18:45:06 2011 -0500"
      },
      "message": "eCryptfs: Handle failed metadata read in lookup\n\nWhen failing to read the lower file\u0027s crypto metadata during a lookup,\neCryptfs must continue on without throwing an error. For example, there\nmay be a plaintext file in the lower mount point that the user wants to\ndelete through the eCryptfs mount.\n\nIf an error is encountered while reading the metadata in lookup(), the\neCryptfs inode\u0027s size could be incorrect. We must be sure to reread the\nplaintext inode size from the metadata when performing an open() or\nsetattr(). The metadata is already being read in those paths, so this\nadds minimal performance overhead.\n\nThis patch introduces a flag which will track whether or not the\nplaintext inode size has been read so that an incorrect i_size can be\nfixed in the open() or setattr() paths.\n\nhttps://bugs.launchpad.net/bugs/509180\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "332ab16f830f59e7621ae8eb2c353dc135a316f6",
      "tree": "c5b249f34dcacf2aa5ee24de8d332d8171398203",
      "parents": [
        "dd55c89852481a0708c3fd4b48f3081f4280d9d3"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Apr 14 15:35:11 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 25 18:32:37 2011 -0500"
      },
      "message": "eCryptfs: Add reference counting to lower files\n\nFor any given lower inode, eCryptfs keeps only one lower file open and\nmultiplexes all eCryptfs file operations through that lower file. The\nlower file was considered \"persistent\" and stayed open from the first\nlookup through the lifetime of the inode.\n\nThis patch keeps the notion of a single, per-inode lower file, but adds\nreference counting around the lower file so that it is closed when not\ncurrently in use. If the reference count is at 0 when an operation (such\nas open, create, etc.) needs to use the lower file, a new lower file is\nopened. Since the file is no longer persistent, all references to the\nterm persistent file are changed to lower file.\n\nLocking is added around the sections of code that opens the lower file\nand assign the pointer in the inode info, as well as the code the fputs\nthe lower file when all eCryptfs users are done with it.\n\nThis patch is needed to fix issues, when mounted on top of the NFSv3\nclient, where the lower file is left silly renamed until the eCryptfs\ninode is destroyed.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "dd55c89852481a0708c3fd4b48f3081f4280d9d3",
      "tree": "36e516d3802f5854a9e25610bdfd2382f497ef0d",
      "parents": [
        "35ffa948b2f7bdf79e488cd496232935d095087a"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Apr 12 11:23:09 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 25 18:32:36 2011 -0500"
      },
      "message": "eCryptfs: dput dentries returned from dget_parent\n\nCall dput on the dentries previously returned by dget_parent() in\necryptfs_rename(). This is needed for supported eCryptfs mounts on top\nof the NFSv3 client.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "35ffa948b2f7bdf79e488cd496232935d095087a",
      "tree": "c9b6ac16421f798813844b7299f6fbb8ee8baa14",
      "parents": [
        "5dd12af05ca6b7d052c06a9ca4ff755fdfa25ae4"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Apr 12 11:21:36 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 25 18:32:35 2011 -0500"
      },
      "message": "eCryptfs: Remove extra d_delete in ecryptfs_rmdir\n\nvfs_rmdir() already calls d_delete() on the lower dentry. That was being\nduplicated in ecryptfs_rmdir() and caused a NULL pointer dereference\nwhen NFSv3 was the lower filesystem.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "b5695d04634fa4ccca7dcbc05bb4a66522f02e0b",
      "tree": "568155380ea1b1fa3b9e68f68dd74cdd9d651229",
      "parents": [
        "950983fc04e02232e0d25717903461578a755ebb"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Mar 21 16:00:55 2011 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:49:43 2011 -0500"
      },
      "message": "eCryptfs: write lock requested keys\n\nA requested key is write locked in order to prevent modifications on the\nauthentication token while it is being used.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "950983fc04e02232e0d25717903461578a755ebb",
      "tree": "e78bd71ecfd12b87237db398116ac2c19082505b",
      "parents": [
        "0e1fc5ef470cc1d157005c437a434868d59fead4"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Mar 21 16:00:54 2011 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:49:42 2011 -0500"
      },
      "message": "eCryptfs: move ecryptfs_find_auth_tok_for_sig() call before mutex_lock\n\nThe ecryptfs_find_auth_tok_for_sig() call is moved before the\nmutex_lock(s-\u003etfm_mutex) instruction in order to avoid possible deadlocks\nthat may occur by holding the lock on the two semaphores \u0027key-\u003esem\u0027 and\n\u0027s-\u003etfm_mutex\u0027 in reverse order.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0e1fc5ef470cc1d157005c437a434868d59fead4",
      "tree": "a15889a237ad7db00ef695d4338286e663127ee0",
      "parents": [
        "7762e230fd31fcc1abc03ba32ee957fadc8eafb4"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Mar 21 16:00:53 2011 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:49:41 2011 -0500"
      },
      "message": "eCryptfs: verify authentication tokens before their use\n\nAuthentication tokens content may change if another requestor calls the\nupdate() method of the corresponding key. The new function\necryptfs_verify_auth_tok_from_key() retrieves the authentication token from\nthe provided key and verifies if it is still valid before being used to\nencrypt or decrypt an eCryptfs file.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\n[tyhicks: Minor formatting changes]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "7762e230fd31fcc1abc03ba32ee957fadc8eafb4",
      "tree": "d49635aa3406a0e3590e1a0886c4aba9e5ed0145",
      "parents": [
        "cf35ca69131d5fc8febb74629d173e0731bf49c0"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Mar 21 16:00:52 2011 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:49:40 2011 -0500"
      },
      "message": "eCryptfs: modified size of keysig in the ecryptfs_key_sig structure\n\nThe size of the \u0027keysig\u0027 array is incremented of one byte in order to make\nroom for the NULL character. The \u0027keysig\u0027 variable is used, in the function\necryptfs_generate_key_packet_set(), to find an authentication token with\nthe given signature and is printed a debug message if it cannot be\nretrieved.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "cf35ca69131d5fc8febb74629d173e0731bf49c0",
      "tree": "894ff15a7806dbe4f7f899b0c92a1ffadacbd719",
      "parents": [
        "1821df040ac3cd6a57518739f345da6d50ea9d3f"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Mar 21 16:00:51 2011 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:49:39 2011 -0500"
      },
      "message": "eCryptfs: removed num_global_auth_toks from ecryptfs_mount_crypt_stat\n\nThis patch removes the \u0027num_global_auth_toks\u0027 field of the\necryptfs_mount_crypt_stat structure, used to count the number of items in\nthe \u0027global_auth_tok_list\u0027 list. This variable is not needed because there\nare no checks based upon it.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1821df040ac3cd6a57518739f345da6d50ea9d3f",
      "tree": "ca353d7cdde5c3bcaa5d9657d8f20d124dbdd3cd",
      "parents": [
        "50f198ae16ac66508d4b8d5a40967a8507ad19ee"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Thu Mar 17 12:48:50 2011 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:49:15 2011 -0500"
      },
      "message": "eCryptfs: ecryptfs_keyring_auth_tok_for_sig() bug fix\n\nThe pointer \u0027(*auth_tok_key)\u0027 is set to NULL in case request_key()\nfails, in order to prevent its use by functions calling\necryptfs_keyring_auth_tok_for_sig().\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "50f198ae16ac66508d4b8d5a40967a8507ad19ee",
      "tree": "cfd582a98eca9b93177fe6e417b82e7c4e345f45",
      "parents": [
        "57db4e8d73ef2b5e94a3f412108dff2576670a8a"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Mar 09 11:49:13 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:47:46 2011 -0500"
      },
      "message": "eCryptfs: Unlock page in write_begin error path\n\nUnlock the page in error path of ecryptfs_write_begin(). This may\nhappen, for example, if decryption fails while bring the page\nup-to-date.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "57db4e8d73ef2b5e94a3f412108dff2576670a8a",
      "tree": "ab6eae8e879cfa41cdb3309d8e6a52de14746ca4",
      "parents": [
        "fed8859b3ab94274c986cbdf7d27130e0545f02c"
      ],
      "author": {
        "name": "Thieu Le",
        "email": "thieule@chromium.org",
        "time": "Tue Mar 08 16:26:03 2011 -0800"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:47:45 2011 -0500"
      },
      "message": "ecryptfs: modify write path to encrypt page in writepage\n\nChange the write path to encrypt the data only when the page is written to\ndisk in ecryptfs_writepage. Previously, ecryptfs encrypts the page in\necryptfs_write_end which means that if there are multiple write requests to\nthe same page, ecryptfs ends up re-encrypting that page over and over again.\nThis patch minimizes the number of encryptions needed.\n\nSigned-off-by: Thieu Le \u003cthieule@chromium.org\u003e\n[tyhicks: Changed NULL .drop_inode sop pointer to generic_drop_inode]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "fed8859b3ab94274c986cbdf7d27130e0545f02c",
      "tree": "01d36d5f87469aa25a7431e0b21ff86b7e524052",
      "parents": [
        "bd4f0fe8bb7c73c738e1e11bc90d6e2cf9c6e20e"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Feb 23 00:54:20 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:47:44 2011 -0500"
      },
      "message": "eCryptfs: Remove ECRYPTFS_NEW_FILE crypt stat flag\n\nNow that grow_file() is not called in the ecryptfs_create() path, the\nECRYPTFS_NEW_FILE flag is no longer needed. It helped\necryptfs_readpage() know not to decrypt zeroes that were read from the\nlower file in the grow_file() path.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "bd4f0fe8bb7c73c738e1e11bc90d6e2cf9c6e20e",
      "tree": "caa1915ec444bbdb52a1646274d73e733979bb44",
      "parents": [
        "40471856f2e38e9bfa8d605295e8234421110dd6"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Feb 23 00:14:19 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:47:43 2011 -0500"
      },
      "message": "eCryptfs: Remove unnecessary grow_file() function\n\nWhen creating a new eCryptfs file, the crypto metadata is written out\nand then the lower file was being \"grown\" with 4 kB of encrypted zeroes.\nI suspect that growing the encrypted file was to prevent an information\nleak that the unencrypted file was empty. However, the unencrypted file\nsize is stored, in plaintext, in the metadata so growing the file is\nunnecessary.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "55f9cf6bbaa682958a7dd2755f883b768270c3ce",
      "tree": "64c105d0d8f361be09f7eb5a771515e16d4e14fa",
      "parents": [
        "323ef68faf1bbd9b1e66aea268fd09d358d7e8ab"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jan 11 12:43:42 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Feb 21 14:46:36 2011 -0600"
      },
      "message": "eCryptfs: Copy up lower inode attrs in getattr\n\nThe lower filesystem may do some type of inode revalidation during a\ngetattr call. eCryptfs should take advantage of that by copying the\nlower inode attributes to the eCryptfs inode after a call to\nvfs_getattr() on the lower inode.\n\nI originally wrote this fix while working on eCryptfs on nfsv3 support,\nbut discovered it also fixed an eCryptfs on ext4 nanosecond timestamp\nbug that was reported.\n\nhttps://bugs.launchpad.net/bugs/613873\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "323ef68faf1bbd9b1e66aea268fd09d358d7e8ab",
      "tree": "d728a47b8345f3d45ee388df51cade09a16137db",
      "parents": [
        "70b8902199003b098fde86d1db02e7465115a02c"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Wed Feb 16 04:49:59 2011 +0000"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Feb 21 14:46:36 2011 -0600"
      },
      "message": "ecryptfs: read on a directory should return EISDIR if not supported\n\nread() calls against a file descriptor connected to a directory are\nincorrectly returning EINVAL rather than EISDIR:\n\n  [EISDIR]\n    [XSI] [Option Start] The fildes argument refers to a directory and the\n    implementation does not allow the directory to be read using read()\n    or pread(). The readdir() function should be used instead. [Option End]\n\nThis occurs because we do not have a .read operation defined for\necryptfs directories.  Connect this up to generic_read_dir().\n\nBugLink: http://bugs.launchpad.net/bugs/719691\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "70b8902199003b098fde86d1db02e7465115a02c",
      "tree": "f0576b1a4df43be528e7cc44a36204090ad1994a",
      "parents": [
        "8787c7a3e0e3f1aa21856d6b6cd6880cc93497e9"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Feb 17 17:35:20 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Feb 21 14:45:57 2011 -0600"
      },
      "message": "eCryptfs: Handle NULL nameidata pointers\n\nAllow for NULL nameidata pointers in eCryptfs create, lookup, and\nd_revalidate functions.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "8787c7a3e0e3f1aa21856d6b6cd6880cc93497e9",
      "tree": "5d8e9c0b3ed94c2a584812ae7223c4f72cc3d8ee",
      "parents": [
        "85e2efbb1db9a18d218006706d6e4fbeb0216213"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Feb 17 18:51:24 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Feb 17 20:30:29 2011 -0600"
      },
      "message": "eCryptfs: Revert \"dont call lookup_one_len to avoid NULL nameidata\"\n\nThis reverts commit 21edad32205e97dc7ccb81a85234c77e760364c8 and commit\n93c3fe40c279f002906ad14584c30671097d4394, which fixed a regression by\nthe former.\n\nAl Viro pointed out bypassed dcache lookups in\necryptfs_new_lower_dentry(), misuse of vfs_path_lookup() in\necryptfs_lookup_one_lower() and a dislike of passing nameidata to the\nlower filesystem.\n\nReported-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "24562486be76cf223b8d911f45e1d26eb3364b13",
      "tree": "7ce33c533c12b4dc66d8afd836c7996d5769e325",
      "parents": [
        "f24b38874e1e37bb70291bbc4c5c3c13f5f9dac8"
      ],
      "author": {
        "name": "Frank Swiderski",
        "email": "fes@chromium.org",
        "time": "Mon Nov 15 10:43:22 2010 -0800"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 13:01:25 2011 -0600"
      },
      "message": "ecryptfs: remove unnecessary decrypt when extending a file\n\nRemoves an unecessary page decrypt from ecryptfs_begin_write when the\npage is beyond the current file size. Previously, the call to\necryptfs_decrypt_page would result in a read of 0 bytes, but still\nattempt to decrypt an entire page. This patch detects that case and\nmerely zeros the page before marking it up-to-date.\n\nSigned-off-by: Frank Swiderski \u003cfes@chromium.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f24b38874e1e37bb70291bbc4c5c3c13f5f9dac8",
      "tree": "f1e41cafb5205403961e98728ade5adfaf5b33a7",
      "parents": [
        "888d57bbc91ebd031451d4ab1c669baee826a06c"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Nov 15 17:36:38 2010 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 13:01:24 2011 -0600"
      },
      "message": "ecryptfs: Fix ecryptfs_printk() size_t warnings\n\nCommit cb55d21f6fa19d8c6c2680d90317ce88c1f57269 revealed a number of\nmissing \u0027z\u0027 length modifiers in calls to ecryptfs_printk() when\nprinting variables of type size_t. This patch fixes those compiler\nwarnings.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "888d57bbc91ebd031451d4ab1c669baee826a06c",
      "tree": "a446e3d6f7134a50d5118702fadba04ab5ee3c14",
      "parents": [
        "0abe1169470571c473ee720c35fe5b3481c46c46"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Nov 10 15:46:16 2010 -0800"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 13:01:23 2011 -0600"
      },
      "message": "fs/ecryptfs: Add printf format/argument verification and fix fallout\n\nAdd __attribute__((format... to __ecryptfs_printk\nMake formats and arguments match.\nAdd casts to (unsigned long long) for %llu.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\n[tyhicks: 80 columns cleanup and fixed typo]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0abe1169470571c473ee720c35fe5b3481c46c46",
      "tree": "3261e72681db07a04a56f31af0edb536b9b7a5e2",
      "parents": [
        "27992890b02d340198a3a22fc210d13684a41564"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Nov 03 11:11:34 2010 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 11:24:43 2011 -0600"
      },
      "message": "ecryptfs: fixed testing of file descriptor flags\n\nThis patch replaces the check (lower_file-\u003ef_flags \u0026 O_RDONLY) with\n((lower_file \u0026 O_ACCMODE) \u003d\u003d O_RDONLY).\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "27992890b02d340198a3a22fc210d13684a41564",
      "tree": "7ece682994e705791c2c96a02cb139c1f42b0239",
      "parents": [
        "070baa51286e5cf59dde6be52fa23647ffb5d32d"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Nov 03 11:11:28 2010 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 11:24:42 2011 -0600"
      },
      "message": "ecryptfs: test lower_file pointer when lower_file_mutex is locked\n\nThis patch prevents the lower_file pointer in the \u0027ecryptfs_inode_info\u0027\nstructure to be checked when the mutex \u0027lower_file_mutex\u0027 is not locked.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "070baa51286e5cf59dde6be52fa23647ffb5d32d",
      "tree": "ea0b6bc104a0717f1ae37ddff7620f9cd31a50a6",
      "parents": [
        "2a8652f4e0d11ee27b1d2870c600fd1300661a6e"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Nov 03 11:11:22 2010 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 11:23:01 2011 -0600"
      },
      "message": "ecryptfs: missing initialization of the superblock \u0027magic\u0027 field\n\nThis patch initializes the \u0027magic\u0027 field of ecryptfs filesystems to\nECRYPTFS_SUPER_MAGIC.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\n[tyhicks: merge with 66cb76666d69]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2a8652f4e0d11ee27b1d2870c600fd1300661a6e",
      "tree": "f7ee0d8614b60a8733bcf0cfba8ac94776925ed5",
      "parents": [
        "38a708d7759476318d0eec64af174513032ec67a"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Nov 03 11:11:15 2010 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 10:44:31 2011 -0600"
      },
      "message": "ecryptfs: moved ECRYPTFS_SUPER_MAGIC definition to linux/magic.h\n\nThe definition of ECRYPTFS_SUPER_MAGIC has been moved to the include\nfile \u0027linux/magic.h\u0027 to become available to other kernel subsystems.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "38a708d7759476318d0eec64af174513032ec67a",
      "tree": "e3cd94359191e72c26ea6a0ecc37c1933b9dcc71",
      "parents": [
        "e78bf5e6cbe837daa6ab628a5f679548742994d3"
      ],
      "author": {
        "name": "Edward Shishkin",
        "email": "edward.shishkin@gmail.com",
        "time": "Sat Oct 30 00:11:50 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 10:44:30 2011 -0600"
      },
      "message": "ecryptfs: fix truncation error in ecryptfs_read_update_atime\n\nThis is similar to the bug found in direct-io not so long ago.\n\nFix up truncation (ssize_t-\u003eint).  This only matters with \u003e2G\nreads/writes, which the kernel doesn\u0027t permit.\n\nSigned-off-by: Edward Shishkin \u003cedward.shishkin@gmail.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Eric Sandeen \u003cesandeen@redhat.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6254b32b5791e47ba1c679d023f26985fa34755a",
      "tree": "121faecbf6c17732ee620fd68009e3e24205340e",
      "parents": [
        "2a86cb7c2b1e9eb98b36d0a3cf4444d8851968b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:19:38 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:19:38 2011 -0800"
      },
      "message": "ecryptfs: fix broken build\n\nStephen Rothwell reports that the vfs merge broke the build of ecryptfs.\nThe breakage comes from commit 66cb76666d69 (\"sanitize ecryptfs\n-\u003emount()\") which was obviously not even build tested. Tssk, tssk, Al.\n\nThis is the minimal build fixup for the situation, although I don\u0027t have\na filesystem to actually test it with.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66cb76666d69502fe982990b2cff5b6d607fd3b1",
      "tree": "eac005b64fc6e78105d77ad4e9950cb647bccdb6",
      "parents": [
        "d61dcce2977d9abe855a5fe3570a81242209c23b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 20:04:37 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 20:04:37 2011 -0500"
      },
      "message": "sanitize ecryptfs -\u003emount()\n\nkill ecryptfs_read_super(), reorder code allowing to use\nnormal d_alloc_root() instead of opencoding it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b74c79e99389cd79b31fcc08f82c24e492e63c7e",
      "tree": "763c6b412517306670bc625e90035f2d16bb739f",
      "parents": [
        "34286d6662308d82aed891852d04c7c3a2649b16"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:58 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: provide rcu-walk aware permission i_ops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "34286d6662308d82aed891852d04c7c3a2649b16",
      "tree": "c4b7311404d302e7cb94df7a4690298e1059910a",
      "parents": [
        "44a7d7a878c9cbb74f236ea755b25b6b2e26a9a9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:57 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: rcu-walk aware d_revalidate method\n\nRequire filesystems be aware of .d_revalidate being called in rcu-walk\nmode (nd-\u003eflags \u0026 LOOKUP_RCU). For now do a simple push down, returning\n-ECHILD from all implementations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fb045adb99d9b7c562dc7fef834857f78249daa1",
      "tree": "1fd6a4024fffeec568abe100d730589bfdb81c38",
      "parents": [
        "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:55 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache reduce branches in lookup path\n\nReduce some branches and memory accesses in dcache lookup by adding dentry\nflags to indicate common d_ops are set, rather than having to check them.\nThis saves a pointer memory access (dentry-\u003ed_op) in common path lookup\nsituations, and saves another pointer load and branch in cases where we\nhave d_op but not the particular operation.\n\nPatched with:\n\ngit grep -E \u0027[.\u003e]([[:space:]])*d_op([[:space:]])*\u003d\u0027 | xargs sed -e \u0027s/\\([^\\t ]*\\)-\u003ed_op \u003d \\(.*\\);/d_set_d_op(\\1, \\2);/\u0027 -e \u0027s/\\([^\\t ]*\\)\\.d_op \u003d \\(.*\\);/d_set_d_op(\\\u0026\\1, \\2);/\u0027 -i\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b7ab39f631f505edc2bbdb86620d5493f995c9da",
      "tree": "62be97ebc7fc69ceb601f23312d335ebb8038ee7",
      "parents": [
        "2304450783dfde7b0b94ae234edd0dbffa865073"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:32 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale dentry refcount\n\nMake d_count non-atomic and protect it with d_lock. This allows us to ensure a\n0 refcount dentry remains 0 without dcache_lock. It is also fairly natural when\nwe start protecting many other dentry members with d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b1e6a015a580ad145689ad1d6b4aa0e03e6c868b",
      "tree": "57a10ef164e4d2f798d9b832dbeaf973aca2ab83",
      "parents": [
        "621e155a3591962420eacdd39f6f0aa29ceb221e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:28 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:20 2011 +1100"
      },
      "message": "fs: change d_hash for rcu-walk\n\nChange d_hash so it may be called from lock-free RCU lookups. See similar\npatch for d_compare for details.\n\nFor in-tree filesystems, this is just a mechanical change.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "12462f2df4d10ea4f6d55b9d438ff788badec3f0",
      "tree": "7ef2335c9df9b9cb45aa64c9dfcf8819bdcdf06f",
      "parents": [
        "d2df40857fd57f02906e6ac1484d10cb7accbc86",
        "8747f954817212b4623f9067d4909cbde04b4d89"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 14:15:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 14:15:12 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:\n  eCryptfs: Print mount_auth_tok_only param in ecryptfs_show_options\n  ecryptfs: added ecryptfs_mount_auth_tok_only mount parameter\n  ecryptfs: checking return code of ecryptfs_find_auth_tok_for_sig()\n  ecryptfs: release keys loaded in ecryptfs_keyring_auth_tok_for_sig()\n  eCryptfs: Clear LOOKUP_OPEN flag when creating lower file\n  ecryptfs: call vfs_setxattr() in ecryptfs_setxattr()\n"
    },
    {
      "commit": "8747f954817212b4623f9067d4909cbde04b4d89",
      "tree": "d303bd72ad84fa11764813c018c1f38532aea0ae",
      "parents": [
        "f16feb5119a87f5e683be7e8916c060abfb0e8d6"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 15 16:43:41 2010 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 29 10:31:36 2010 -0500"
      },
      "message": "eCryptfs: Print mount_auth_tok_only param in ecryptfs_show_options\n\nWhen printing mount options, print the new ecryptfs_mount_auth_tok_only\nmount option.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f16feb5119a87f5e683be7e8916c060abfb0e8d6",
      "tree": "ed80e0f8d2d8c5b63c8b48e11da4eca0163bb9f4",
      "parents": [
        "39fac853a758306285404368fbe392408057b136"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Oct 06 18:31:32 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 29 10:31:36 2010 -0500"
      },
      "message": "ecryptfs: added ecryptfs_mount_auth_tok_only mount parameter\n\nThis patch adds a new mount parameter \u0027ecryptfs_mount_auth_tok_only\u0027 to\nforce ecryptfs to use only authentication tokens which signature has\nbeen specified at mount time with parameters \u0027ecryptfs_sig\u0027 and\n\u0027ecryptfs_fnek_sig\u0027. In this way, after disabling the passthrough and\nthe encrypted view modes, it\u0027s possible to make available to users only\nfiles encrypted with the specified authentication token.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\n[Tyler: Clean up coding style errors found by checkpatch]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "39fac853a758306285404368fbe392408057b136",
      "tree": "920cc8e2ed51b568c6c63d15dfa98931f5926d04",
      "parents": [
        "aee683b9e77e17237b0e146025c3d363c9203634"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Oct 06 18:31:15 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 29 10:31:36 2010 -0500"
      },
      "message": "ecryptfs: checking return code of ecryptfs_find_auth_tok_for_sig()\n\nThis patch replaces the check of the \u0027matching_auth_tok\u0027 pointer with\nthe exit status of ecryptfs_find_auth_tok_for_sig().\nThis avoids to use authentication tokens obtained through the function\necryptfs_keyring_auth_tok_for_sig which are not valid.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "aee683b9e77e17237b0e146025c3d363c9203634",
      "tree": "79ec9b8a2ff2d2e433bbe7a6959a34aeb75c25b6",
      "parents": [
        "2e21b3f124eceb6ab5a07c8a061adce14ac94e14"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Oct 06 18:31:06 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 29 10:31:35 2010 -0500"
      },
      "message": "ecryptfs: release keys loaded in ecryptfs_keyring_auth_tok_for_sig()\n\nThis patch allows keys requested in the function\necryptfs_keyring_auth_tok_for_sig()to be released when they are no\nlonger required. In particular keys are directly released in the same\nfunction if the obtained authentication token is not valid.\n\nFurther, a new function parameter \u0027auth_tok_key\u0027 has been added to\necryptfs_find_auth_tok_for_sig() in order to provide callers the key\npointer to be passed to key_put().\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\n[Tyler: Initialize auth_tok_key to NULL in ecryptfs_parse_packet_set]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2e21b3f124eceb6ab5a07c8a061adce14ac94e14",
      "tree": "0997d7430d83a976b5e7ff0e2201032a45ccb759",
      "parents": [
        "48b512e6857139393cdfce26348c362b87537018"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Sep 23 02:35:04 2010 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 29 10:31:35 2010 -0500"
      },
      "message": "eCryptfs: Clear LOOKUP_OPEN flag when creating lower file\n\neCryptfs was passing the LOOKUP_OPEN flag through to the lower file\nsystem, even though ecryptfs_create() doesn\u0027t support the flag. A valid\nfilp for the lower filesystem could be returned in the nameidata if the\nlower file system\u0027s create() function supported LOOKUP_OPEN, possibly\nresulting in unencrypted writes to the lower file.\n\nHowever, this is only a potential problem in filesystems (FUSE, NFS,\nCIFS, CEPH, 9p) that eCryptfs isn\u0027t known to support today.\n\nhttps://bugs.launchpad.net/ecryptfs/+bug/641703\n\nReported-by: Kevin Buhr\nCc: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "48b512e6857139393cdfce26348c362b87537018",
      "tree": "9ea39b5232052cbcd8d675058d3d7ab735b3a4f7",
      "parents": [
        "f6f94e2ab1b33f0082ac22d71f66385a60d8157f"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Tue Oct 05 18:53:45 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 29 10:31:35 2010 -0500"
      },
      "message": "ecryptfs: call vfs_setxattr() in ecryptfs_setxattr()\n\nEcryptfs is a stackable filesystem which relies on lower filesystems the\nability of setting/getting extended attributes.\n\nIf there is a security module enabled on the system it updates the\n\u0027security\u0027 field of inodes according to the owned extended attribute set\nwith the function vfs_setxattr().  When this function is performed on a\necryptfs filesystem the \u0027security\u0027 field is not updated for the lower\nfilesystem since the call security_inode_post_setxattr() is missing for\nthe lower inode.\nFurther, the call security_inode_setxattr() is missing for the lower inode,\nleading to policy violations in the security module because specific\nchecks for this hook are not performed (i. e. filesystem\n\u0027associate\u0027 permission on SELinux is not checked for the lower filesystem).\n\nThis patch replaces the call of the setxattr() method of the lower inode\nin the function ecryptfs_setxattr() with vfs_setxattr().\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nCc: stable \u003cstable@kernel.org\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4d143beb0429e8c9c5f1dc66c7ff8ee70dde45a4",
      "tree": "59e9ac220d7753696f3292bd8af2ad004b81c13e",
      "parents": [
        "d0e46f88b2f73828faf00d559c7e5b3ce9e39a4b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 13:33:36 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:11 2010 -0400"
      },
      "message": "convert ecryptfs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "229aebb873e29726b91e076161649cf45154b0bf",
      "tree": "acc02a3702215bce8d914f4c8cc3d7a1382b1c67",
      "parents": [
        "8de547e1824437f3c6af180d3ed2162fa4b3f389",
        "50a23e6eec6f20d55a3a920e47adb455bff6046e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  Update broken web addresses in arch directory.\n  Update broken web addresses in the kernel.\n  Revert \"drivers/usb: Remove unnecessary return\u0027s from void functions\" for musb gadget\n  Revert \"Fix typo: configuation \u003d\u003e configuration\" partially\n  ida: document IDA_BITMAP_LONGS calculation\n  ext2: fix a typo on comment in ext2/inode.c\n  drivers/scsi: Remove unnecessary casts of private_data\n  drivers/s390: Remove unnecessary casts of private_data\n  net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data\n  drivers/infiniband: Remove unnecessary casts of private_data\n  drivers/gpu/drm: Remove unnecessary casts of private_data\n  kernel/pm_qos_params.c: Remove unnecessary casts of private_data\n  fs/ecryptfs: Remove unnecessary casts of private_data\n  fs/seq_file.c: Remove unnecessary casts of private_data\n  arm: uengine.c: remove C99 comments\n  arm: scoop.c: remove C99 comments\n  Fix typo configue \u003d\u003e configure in comments\n  Fix typo: configuation \u003d\u003e configuration\n  Fix typo interrest[ing|ed] \u003d\u003e interest[ing|ed]\n  Fix various typos of valid in comments\n  ...\n\nFix up trivial conflicts in:\n\tdrivers/char/ipmi/ipmi_si_intf.c\n\tdrivers/usb/gadget/rndis.c\n\tnet/irda/irnet/irnet_ppp.c\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "18dfe89d7c394b56e20e06dde8b7a80ff96cf02c",
      "tree": "bcf8dee4faffd32cc5cfec2febe40f145d0c23aa",
      "parents": [
        "77f2fe036cd51300c80d1aca76bcf23a09977f13"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Sep 16 15:35:54 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 21:10:48 2010 +0200"
      },
      "message": "BKL: Remove BKL from ecryptfs\n\nThe BKL is only used in fill_super, which is protected by the superblocks\ns_umount rw_semaphorei, and in fasync, which does not do anything that\ncould require the BKL. Therefore it is safe to remove the BKL entirely.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nCc: ecryptfs-devel@lists.launchpad.net\n"
    },
    {
      "commit": "db71922217a214e5c9268448e537b54fc1f301ea",
      "tree": "9c9afbf29411547891f6968e5ade29ce59d66c07",
      "parents": [
        "899611ee7d373e5eeda08e9a8632684e1ebbbf00"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@infradead.org",
        "time": "Sun Aug 15 22:51:10 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 21:10:10 2010 +0200"
      },
      "message": "BKL: Explicitly add BKL around get_sb/fill_super\n\nThis patch is a preparation necessary to remove the BKL from do_new_mount().\nIt explicitly adds calls to lock_kernel()/unlock_kernel() around\nget_sb/fill_super operations for filesystems that still uses the BKL.\n\nI\u0027ve read through all the code formerly covered by the BKL inside\ndo_kern_mount() and have satisfied myself that it doesn\u0027t need the BKL\nany more.\n\ndo_kern_mount() is already called without the BKL when mounting the rootfs\nand in nfsctl. do_kern_mount() calls vfs_kern_mount(), which is called\nfrom various places without BKL: simple_pin_fs(), nfs_do_clone_mount()\nthrough nfs_follow_mountpoint(), afs_mntpt_do_automount() through\nafs_mntpt_follow_link(). Both later functions are actually the filesystems\nfollow_link inode operation. vfs_kern_mount() is calling the specified\nget_sb function and lets the filesystem do its job by calling the given\nfill_super function.\n\nTherefore I think it is safe to push down the BKL from the VFS to the\nlow-level filesystems get_sb/fill_super operation.\n\n[arnd: do not add the BKL to those file systems that already\n       don\u0027t use it elsewhere]\n\nSigned-off-by: Jan Blunck \u003cjblunck@infradead.org\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "0c6d7d5da27df7ec586fc916f06136a6b7ad1f72",
      "tree": "256be645285a861d143ee77703a7f33e7ce30a75",
      "parents": [
        "8209e2f46752914e94f65469b8312c42dc5d7d8f"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sat Sep 04 18:52:48 2010 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 23 13:29:38 2010 +0200"
      },
      "message": "fs/ecryptfs: Remove unnecessary casts of private_data\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "93c3fe40c279f002906ad14584c30671097d4394",
      "tree": "9e18819c7abfe2bc6b15e924236efd36a0601780",
      "parents": [
        "7371a38201d04124a9ff2cf05059731d7c1e35a5"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Aug 25 10:26:37 2010 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Aug 27 10:50:53 2010 -0500"
      },
      "message": "eCryptfs: Fix encrypted file name lookup regression\n\nFixes a regression caused by 21edad32205e97dc7ccb81a85234c77e760364c8\n\nWhen file name encryption was enabled, ecryptfs_lookup() failed to use\nthe encrypted and encoded version of the upper, plaintext, file name\nwhen performing a lookup in the lower file system. This made it\nimpossible to lookup existing encrypted file names and any newly created\nfiles would have plaintext file names in the lower file system.\n\nhttps://bugs.launchpad.net/ecryptfs/+bug/623087\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "7371a38201d04124a9ff2cf05059731d7c1e35a5",
      "tree": "0a463fc73700c12c0e28299d2b214394e9bd7249",
      "parents": [
        "f137f15072411618e37b338aa13e5ae43583bcf2"
      ],
      "author": {
        "name": "Jerome Marchand",
        "email": "jmarchan@redhat.com",
        "time": "Tue Aug 17 17:24:05 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Aug 27 10:50:52 2010 -0500"
      },
      "message": "ecryptfs: properly mark init functions\n\nSome ecryptfs init functions are not prefixed by __init and thus not\nfreed after initialization. This patch saved about 1kB in ecryptfs\nmodule.\n\nSigned-off-by: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f137f15072411618e37b338aa13e5ae43583bcf2",
      "tree": "a1679017c58f65b7fd20febab16bb338354bd59b",
      "parents": [
        "76be97c1fc945db08aae1f1b746012662d643e97"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Aug 11 12:11:41 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Aug 27 10:50:52 2010 -0500"
      },
      "message": "fs/ecryptfs: Return -ENOMEM on memory allocation failure\n\nIn this code, 0 is returned on memory allocation failure, even though other\nfailures return -ENOMEM or other similar values.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression ret;\nexpression x,e1,e2,e3;\n@@\n\nret \u003d 0\n... when !\u003d ret \u003d e1\n*x \u003d \\(kmalloc\\|kcalloc\\|kzalloc\\)(...)\n... when !\u003d ret \u003d e2\nif (x \u003d\u003d NULL) { ... when !\u003d ret \u003d e3\n  return ret;\n}\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "26b55633a891a28bf04f42882de145eb8e9cb9ad",
      "tree": "997c1bbaad576a0ae4903af59a8d89b86b0f2fae",
      "parents": [
        "b34d8915c413acb51d837a45fb8747b61f65c020",
        "21edad32205e97dc7ccb81a85234c77e760364c8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 12:14:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 12:14:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:\n  ecryptfs: dont call lookup_one_len to avoid NULL nameidata\n  fs/ecryptfs/file.c: introduce missing free\n  ecryptfs: release reference to lower mount if interpose fails\n  eCryptfs: Handle ioctl calls with unlocked and compat functions\n  ecryptfs: Fix warning in ecryptfs_process_response()\n"
    },
    {
      "commit": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "ebabe9a9001af0af56c0c2780ca1576246e7a74b",
      "tree": "b263299f575c650b6e9d95c7c4bdeef958af2fc9",
      "parents": [
        "336fb3b97b78edc65bae0b223b83bf676cfe29e2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 07 18:53:11 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:48:42 2010 -0400"
      },
      "message": "pass a struct path to vfs_statfs\n\nWe\u0027ll need the path to implement the flags field for statvfs support.\nWe do have it available in all callers except:\n\n - ecryptfs_statfs.  This one doesn\u0027t actually need vfs_statfs but just\n   needs to do a caller to the lower filesystem statfs method.\n - sys_ustat.  Add a non-exported statfs_by_dentry helper for it which\n   doesn\u0027t won\u0027t be able to fill out the flags field later on.\n\nIn addition rename the helpers for statfs vs fstatfs to do_*statfs instead\nof the misleading vfs prefix.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b57922d97fd6f79b6dbe6db0c4fd30d219fa08c1",
      "tree": "1d39e9cd8e1c1f502fb7e985a08286859c69aa36",
      "parents": [
        "45321ac54316eaeeebde0b5f728a1791e500974c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 07 14:34:48 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:48:37 2010 -0400"
      },
      "message": "convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2c27c65ed0696f0b5df2dad2cf6462d72164d547",
      "tree": "7d9036e3dea98938f7fd7074366ee73929e9b2e5",
      "parents": [
        "db78b877f7744bec4a9d9f9e7d10da3931d7cd39"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:30:04 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:39 2010 -0400"
      },
      "message": "check ATTR_SIZE contraints in inode_change_ok\n\nMake sure we check the truncate constraints early on in -\u003esetattr by adding\nthose checks to inode_change_ok.  Also clean up and document inode_change_ok\nto make this obvious.\n\nAs a fallout we don\u0027t have to call inode_newsize_ok from simple_setsize and\nsimplify it down to a truncate_setsize which doesn\u0027t return an error.  This\nsimplifies a lot of setattr implementations and means we use truncate_setsize\nalmost everywhere.  Get rid of fat_setsize now that it\u0027s trivial and mark\next2_setsize static to make the calling convention obvious.\n\nKeep the inode_newsize_ok in vmtruncate for now as all callers need an\naudit for its removal anyway.\n\nNote: setattr code in ecryptfs doesn\u0027t call inode_change_ok at all and\nneeds a deeper audit, but that is left for later.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "21edad32205e97dc7ccb81a85234c77e760364c8",
      "tree": "d68f20aa288a6fe98547fe348d3c300020ad8daf",
      "parents": [
        "ceeab92971e8af05c1e81a4ff2c271124b55bb9b"
      ],
      "author": {
        "name": "Lino Sanfilippo",
        "email": "linosanfilippo@gmx.de",
        "time": "Thu Jul 15 15:11:55 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Aug 09 13:42:12 2010 -0500"
      },
      "message": "ecryptfs: dont call lookup_one_len to avoid NULL nameidata\n\nI have encountered the same problem that Eric Sandeen described in\nthis post\n\n http://lkml.org/lkml/fancy/2010/4/23/467\n\nwhile experimenting with stackable filesystems.\n\nThe reason seems to be that ecryptfs calls lookup_one_len() to get the\nlower dentry, which in turn calls the lower parent dirs d_revalidate()\nwith a NULL nameidata object.\nIf ecryptfs is the underlaying filesystem, the NULL pointer dereference\noccurs, since ecryptfs is not prepared to handle a NULL nameidata.\n\nI know that this cant happen any more, since it is no longer allowed to\nmount ecryptfs upon itself.\n\nBut maybe this patch it useful nevertheless, since the problem would still\napply for an underlaying filesystem that implements d_revalidate() and is\nnot prepared to handle a NULL nameidata (I dont know if there actually\nis such a fs).\n\nWith this patch (against 2.6.35-rc5) ecryptfs uses the vfs_lookup_path()\nfunction instead of lookup_one_len() which ensures that the nameidata\npassed to the lower filesystems d_revalidate().\n\nSigned-off-by: Lino Sanfilippo \u003cLinoSanfilippo@gmx.de\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "ceeab92971e8af05c1e81a4ff2c271124b55bb9b",
      "tree": "517cc3160679d39da57cee982a1aff7cbf7fb789",
      "parents": [
        "31f73bee3e170b7cabb35db9e2f4bf7919b9d036"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Aug 06 22:58:49 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Aug 09 13:25:24 2010 -0500"
      },
      "message": "fs/ecryptfs/file.c: introduce missing free\n\nThe comments in the code indicate that file_info should be released if the\nfunction fails.  This releasing is done at the label out_free, not out.\n\nThe semantic match that finds this problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@r exists@\nlocal idexpression x;\nstatement S;\nexpression E;\nidentifier f,f1,l;\nposition p1,p2;\nexpression *ptr !\u003d NULL;\n@@\n\nx@p1 \u003d kmem_cache_zalloc(...);\n...\nif (x \u003d\u003d NULL) S\n\u003c... when !\u003d x\n     when !\u003d if (...) { \u003c+...x...+\u003e }\n(\nx-\u003ef1 \u003d E\n|\n (x-\u003ef1 \u003d\u003d NULL || ...)\n|\n f(...,x-\u003ef1,...)\n)\n...\u003e\n(\n return \u003c+...x...+\u003e;\n|\n return@p2 ...;\n)\n\n@script:python@\np1 \u003c\u003c r.p1;\np2 \u003c\u003c r.p2;\n@@\n\nprint \"* file: %s kmem_cache_zalloc %s\" % (p1[0].file,p1[0].line)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: stable@kernel.org\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "31f73bee3e170b7cabb35db9e2f4bf7919b9d036",
      "tree": "70c0ebb11bb3839050df7fa26b42c94d05cf6a3c",
      "parents": [
        "c43f7b8fb03be8bcc579bfc4e6ab70eac887ab55"
      ],
      "author": {
        "name": "Lino Sanfilippo",
        "email": "LinoSanfilippo@gmx.de",
        "time": "Thu Jul 29 13:01:36 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Aug 09 10:33:05 2010 -0500"
      },
      "message": "ecryptfs: release reference to lower mount if interpose fails\n\nIn ecryptfs_lookup_and_interpose_lower() the lower mount is not decremented\nif allocation of a dentry info struct failed. As a result the lower filesystem\ncant be unmounted any more (since it is considered busy). This patch corrects\nthe reference counting.\n\nSigned-off-by: Lino Sanfilippo \u003cLinoSanfilippo@gmx.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "c43f7b8fb03be8bcc579bfc4e6ab70eac887ab55",
      "tree": "ec4f169d9260b78ef93e39c554fc32532b399b18",
      "parents": [
        "a1275c3b21e433888994f7b979cd1129d384ec9c"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Nov 03 11:45:11 2009 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Aug 09 10:33:04 2010 -0500"
      },
      "message": "eCryptfs: Handle ioctl calls with unlocked and compat functions\n\nLower filesystems that only implemented unlocked_ioctl weren\u0027t being\npassed ioctl calls because eCryptfs only checked for\nlower_file-\u003ef_op-\u003eioctl and returned -ENOTTY if it was NULL.\n\neCryptfs shouldn\u0027t implement ioctl(), since it doesn\u0027t require the BKL.\nThis patch introduces ecryptfs_unlocked_ioctl() and\necryptfs_compat_ioctl(), which passes the calls on to the lower file\nsystem.\n\nhttps://bugs.launchpad.net/ecryptfs/+bug/469664\n\nReported-by: James Dupin \u003cjames.dupin@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a1275c3b21e433888994f7b979cd1129d384ec9c",
      "tree": "f9be251a845fb8377af6ff38a8747d329b6298bd",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51"
      ],
      "author": {
        "name": "Prarit Bhargava",
        "email": "prarit@redhat.com",
        "time": "Thu May 27 11:19:30 2010 -0400"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Aug 09 10:33:03 2010 -0500"
      },
      "message": "ecryptfs: Fix warning in ecryptfs_process_response()\n\nFix warning seen with \"make -j24 CONFIG_DEBUG_SECTION_MISMATCH\u003dy V\u003d1\":\n\nfs/ecryptfs/messaging.c: In function \u0027ecryptfs_process_response\u0027:\nfs/ecryptfs/messaging.c:276: warning: \u0027daemon\u0027 may be used uninitialized in this function\n\nSigned-off-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "d790d4d583aeaed9fc6f8a9f4d9f8ce6b1c15c7f",
      "tree": "854ab394486288d40fa8179cbfaf66e8bdc44b0f",
      "parents": [
        "73b2c7165b76b20eb1290e7efebc33cfd21db1ca",
        "3a09b1be53d23df780a0cd0e4087a05e2ca4a00c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 04 15:14:38 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 04 15:14:38 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "a6f80fb7b5986fda663d94079d3bba0937a6b6ff",
      "tree": "b8a44b0ed1560ae3f00f1ff4e342f43b7422bcc3",
      "parents": [
        "6c50e1a49b4377b760ee46f824ed04b17be913e3"
      ],
      "author": {
        "name": "Andre Osterhues",
        "email": "aosterhues@escrypt.com",
        "time": "Tue Jul 13 15:59:17 2010 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 28 19:59:24 2010 -0700"
      },
      "message": "ecryptfs: Bugfix for error related to ecryptfs_hash_buckets\n\nThe function ecryptfs_uid_hash wrongly assumes that the\nsecond parameter to hash_long() is the number of hash\nbuckets instead of the number of hash bits.\nThis patch fixes that and renames the variable\necryptfs_hash_buckets to ecryptfs_hash_bits to make it\nclearer.\n\nFixes: CVE-2010-2492\n\nSigned-off-by: Andre Osterhues \u003caosterhues@escrypt.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1bbbb6912662b9f6070c5bfc4ca9eb1f06a9d5b",
      "tree": "c2c130a74be25b0b2dff992e1a195e2728bdaadd",
      "parents": [
        "fd0961ff67727482bb20ca7e8ea97b83e9de2ddb",
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:08:13 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:08:13 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "421f91d21ad6f799dc7b489bb33cc560ccc56f98",
      "tree": "aaf9f6385233fdf9277e634603156c89ede7f770",
      "parents": [
        "65155b3708137fabee865dc4da822763c0c41208"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Fri Jun 11 12:17:00 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:05:05 2010 +0200"
      },
      "message": "fix typos concerning \"initiali[zs]e\"\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "15c6fd9786dfaab43547bf60df6fa63170fb64fc",
      "tree": "afd997b3402761e28b6c39f414fbd93c69fdcdce",
      "parents": [
        "7bb46a6734a7e1ad4beaecc11cae7ed3ff81d30f"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Thu May 27 01:05:34 2010 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:15:42 2010 -0400"
      },
      "message": "kill spurious reference to vmtruncate\n\nLots of filesystems calls vmtruncate despite not implementing the old\n-\u003etruncate method.  Switch them to use simple_setsize and add some\ncomments about the truncate code where it seems fitting.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ea8085910ef3dd4f3cad6845aaa2b580d39b115",
      "tree": "d9c1edb5906f943f7d70bfb4b65106e29772d379",
      "parents": [
        "cc967be54710d97c05229b2e5ba2d00df84ddd64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 26 17:53:25 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:05:02 2010 -0400"
      },
      "message": "drop unused dentry argument to -\u003efsync\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "48c1e44aceca577aa35be509714bd9ec4b4c3837",
      "tree": "5fe7c1f352e21bf1d58763cb2f4158d94e080923",
      "parents": [
        "02bd97997a07a89cb9311c7f00864cfc785c37f9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 11:09:58 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "switch ecryptfs_write() to struct inode *, kill on-stack fake files\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "02bd97997a07a89cb9311c7f00864cfc785c37f9",
      "tree": "c962381bd79b8611bc4d3b3e369f2ce8fe3c6174",
      "parents": [
        "bef5bc2464517cbbf8f85f09b5ade46904afec9a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 11:02:14 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "switch ecryptfs_get_locked_page() to struct inode *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bef5bc2464517cbbf8f85f09b5ade46904afec9a",
      "tree": "34a41e84884e431647af4535147e4fab91cbf88e",
      "parents": [
        "f6d335c08df48b318187a087c9c38ba3d416e115"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 10:56:12 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "simplify access to ecryptfs inodes in -\u003ereadpage() and friends\n\nwe can get to them from page-\u003emapping-\u003ehost, no need to mess with\nfile.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4403158ba295c8e36f6736b1bb12d0f7e1923dac",
      "tree": "a85c276c7ba414ecc65a93488dcb2ef7972779c0",
      "parents": [
        "ab9a79b9669c28734a69fa9384df6fb93152e53a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 17 00:59:46 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "Ban ecryptfs over ecryptfs\n\nThis is a seriously simplified patch from Eric Sandeen; copy of\nrationale follows:\n\u003d\u003d\u003d\n  mounting stacked ecryptfs on ecryptfs has been shown to lead to bugs\n  in testing.  For crypto info in xattr, there is no mechanism for handling\n  this at all, and for normal file headers, we run into other trouble:\n\n  BUG: unable to handle kernel NULL pointer dereference at 0000000000000008\n  IP: [\u003cffffffffa015b0b3\u003e] ecryptfs_d_revalidate+0x43/0xa0 [ecryptfs]\n  ...\n\n  There doesn\u0027t seem to be any good usecase for this, so I\u0027d suggest just\n  disallowing the configuration.\n\n  Based on a patch originally, I believe, from Mike Halcrow.\n\u003d\u003d\u003d\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8018ab057480974e7f26a387bf4ce040e9a5f6f1",
      "tree": "98298180bf60797a028eca4f24234dc67d38a9d4",
      "parents": [
        "e970a573ce30a3976234dcfb67906c164b0df9ee"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 22 17:32:25 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "sanitize vfs_fsync calling conventions\n\nNow that the last user passing a NULL file pointer is gone we can remove\nthe redundant dentry argument and associated hacks inside vfs_fsynmc_range.\n\nThe next step will be removig the dentry argument from -\u003efsync, but given\nthe luck with the last round of method prototype changes I\u0027d rather\ndefer this until after the main merge window.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2ccde7c631f992bf79da8007b5fc8b6425eb0d6d",
      "tree": "d99cbae607223c76916fd373d7a827515ed022c0",
      "parents": [
        "decabd6650915a9534dad09e967115513be12b24"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 21 12:24:29 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:13 2010 -0400"
      },
      "message": "Clean ecryptfs -\u003eget_sb() up\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "decabd6650915a9534dad09e967115513be12b24",
      "tree": "3e4aa8ed78535f3a34b60e363e7b13efbd7ea62c",
      "parents": [
        "894680710d813137077ad7cb351b713f64cabbdf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 20 22:32:26 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:13 2010 -0400"
      },
      "message": "fix a couple of ecryptfs leaks\n\nFirst of all, get_sb_nodev() grabs anon dev minor and we\nnever free it in ecryptfs -\u003ekill_sb().  Moreover, on one\nof the failure exits in ecryptfs_get_sb() we leak things -\nit happens before we set -\u003es_root and -\u003eput_super() won\u0027t\nbe called in that case.  Solution: kill -\u003eput_super(), do\nall that stuff in -\u003ekill_sb().  And use kill_anon_sb() instead\nof generic_shutdown_super() to deal with anon dev leak.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9df9c8b930156a2f9ce2b2ae66acb14bee2663f5",
      "tree": "35992d372a4587600f93c399eaa12b7c7bd77cbf",
      "parents": [
        "5163d90076729413cb882d3dd5c3d3cfb5b9f035"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:22:04 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:22:04 2010 +0200"
      },
      "message": "ecryptfs: add bdi backing to mount session\n\nThis ensures that dirty data gets flushed properly.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9b030e2006546366c832911ca5eb9e785408795b",
      "tree": "fe2b5913249c047fc8d7f851f7a6a0049825e2d3",
      "parents": [
        "76e506a754c9519ba0a948b475a62f31fac8b599",
        "9f37622f897a90ad3c3da5c14d94d8f3ffc62b70"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 19 14:20:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 19 14:20:32 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:\n  eCryptfs: Turn lower lookup error messages into debug messages\n  eCryptfs: Copy lower directory inode times and size on link\n  ecryptfs: fix use with tmpfs by removing d_drop from ecryptfs_destroy_inode\n  ecryptfs: fix error code for missing xattrs in lower fs\n  eCryptfs: Decrypt symlink target for stat size\n  eCryptfs: Strip metadata in xattr flag in encrypted view\n  eCryptfs: Clear buffer before reading in metadata xattr\n  eCryptfs: Rename ecryptfs_crypt_stat.num_header_bytes_at_front\n  eCryptfs: Fix metadata in xattr feature regression\n"
    },
    {
      "commit": "9f37622f897a90ad3c3da5c14d94d8f3ffc62b70",
      "tree": "dbed84aa76784f22b20c0fee847b43c15dd29f72",
      "parents": [
        "3a8380c0754a7972668a46f645930910e304095c"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Mar 25 11:16:56 2010 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 19 14:42:18 2010 -0500"
      },
      "message": "eCryptfs: Turn lower lookup error messages into debug messages\n\nVaugue warnings about ENAMETOOLONG errors when looking up an encrypted\nfile name have caused many users to become concerned about their data.\nSince this is a rather harmless condition, I\u0027m moving this warning to\nonly be printed when the ecryptfs_verbosity module param is 1.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "3a8380c0754a7972668a46f645930910e304095c",
      "tree": "85bc2f8551aa121f0a40f4b5bb24b7c58da35b16",
      "parents": [
        "133b8f9d632cc23715c6d72d1c5ac449e054a12a"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Mar 23 18:09:02 2010 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 19 14:42:15 2010 -0500"
      },
      "message": "eCryptfs: Copy lower directory inode times and size on link\n\nThe timestamps and size of a lower inode involved in a link() call was\nbeing copied to the upper parent inode.  Instead, we should be\ncopying lower parent inode\u0027s timestamps and size to the upper parent\ninode.  I discovered this bug using the POSIX test suite at Tuxera.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "133b8f9d632cc23715c6d72d1c5ac449e054a12a",
      "tree": "4559634958e6da3f7a3e2b5ae1229b9e3924d5fa",
      "parents": [
        "cfce08c6bdfb20ade979284e55001ca1f100ed51"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@jeffreymahoney.com",
        "time": "Fri Mar 19 15:35:46 2010 -0400"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 19 14:42:13 2010 -0500"
      },
      "message": "ecryptfs: fix use with tmpfs by removing d_drop from ecryptfs_destroy_inode\n\nSince tmpfs has no persistent storage, it pins all its dentries in memory\nso they have d_count\u003d1 when other file systems would have d_count\u003d0.\n-\u003elookup is only used to create new dentries. If the caller doesn\u0027t\ninstantiate it, it\u0027s freed immediately at dput(). -\u003ereaddir reads\ndirectly from the dcache and depends on the dentries being hashed.\n\nWhen an ecryptfs mount is mounted, it associates the lower file and dentry\nwith the ecryptfs files as they\u0027re accessed. When it\u0027s umounted and\ndestroys all the in-memory ecryptfs inodes, it fput\u0027s the lower_files and\nd_drop\u0027s the lower_dentries. Commit 4981e081 added this and a d_delete in\n2008 and several months later commit caeeeecf removed the d_delete. I\nbelieve the d_drop() needs to be removed as well.\n\nThe d_drop effectively hides any file that has been accessed via ecryptfs\nfrom the underlying tmpfs since it depends on it being hashed for it to\nbe accessible. I\u0027ve removed the d_drop on my development node and see no\nill effects with basic testing on both tmpfs and persistent storage.\n\nAs a side effect, after ecryptfs d_drops the dentries on tmpfs, tmpfs\nBUGs on umount. This is due to the dentries being unhashed.\ntmpfs-\u003ekill_sb is kill_litter_super which calls d_genocide to drop\nthe reference pinning the dentry. It skips unhashed and negative dentries,\nbut shrink_dcache_for_umount_subtree doesn\u0027t. Since those dentries\nstill have an elevated d_count, we get a BUG().\n\nThis patch removes the d_drop call and fixes both issues.\n\nThis issue was reported at:\nhttps://bugzilla.novell.com/show_bug.cgi?id\u003d567887\n\nReported-by:  Árpád Bíró \u003cbiroa@demasz.hu\u003e\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "cfce08c6bdfb20ade979284e55001ca1f100ed51",
      "tree": "598510daaec037baf1088533cd366b5f37c05a1c",
      "parents": [
        "3a60a1686f0d51c99bd0df8ac93050fb6dfce647"
      ],
      "author": {
        "name": "Christian Pulvermacher",
        "email": "pulvermacher@gmx.de",
        "time": "Tue Mar 23 11:51:38 2010 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 19 14:42:09 2010 -0500"
      },
      "message": "ecryptfs: fix error code for missing xattrs in lower fs\n\nIf the lower file system driver has extended attributes disabled,\necryptfs\u0027 own access functions return -ENOSYS instead of -EOPNOTSUPP.\nThis breaks execution of programs in the ecryptfs mount, since the\nkernel expects the latter error when checking for security\ncapabilities in xattrs.\n\nSigned-off-by: Christian Pulvermacher \u003cpulvermacher@gmx.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "3a60a1686f0d51c99bd0df8ac93050fb6dfce647",
      "tree": "8b1a32c122e86022f6397a9f5e82900783717aab",
      "parents": [
        "f4e60e6b303bc46cdc477d3174dbf9cb5dd013aa"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 22 00:41:35 2010 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 19 14:41:51 2010 -0500"
      },
      "message": "eCryptfs: Decrypt symlink target for stat size\n\nCreate a getattr handler for eCryptfs symlinks that is capable of\nreading the lower target and decrypting its path.  Prior to this patch,\na stat\u0027s st_size field would represent the strlen of the encrypted path,\nwhile readlink() would return the strlen of the decrypted path.  This\ncould lead to confusion in some userspace applications, since the two\nvalues should be equal.\n\nhttps://bugs.launchpad.net/bugs/524919\n\nReported-by: Loïc Minier \u003cloic.minier@canonical.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "f4e60e6b303bc46cdc477d3174dbf9cb5dd013aa",
      "tree": "36abefd614efd86f97ac812f57c86a583c7e484a",
      "parents": [
        "1984c23f9e0cdb432d90a85ecf88b424d36878fc"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Feb 11 00:02:32 2010 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Mar 23 12:31:35 2010 -0500"
      },
      "message": "eCryptfs: Strip metadata in xattr flag in encrypted view\n\nThe ecryptfs_encrypted_view mount option provides a unified way of\nviewing encrypted eCryptfs files.  If the metadata is stored in a xattr,\nthe metadata is moved to the file header when the file is read inside\nthe eCryptfs mount.  Because of this, we should strip the\nECRYPTFS_METADATA_IN_XATTR flag from the header\u0027s flag section.  This\nallows eCryptfs to treat the file as an eCryptfs file with a header\nat the front.\n\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1984c23f9e0cdb432d90a85ecf88b424d36878fc",
      "tree": "1a4dc765c6d7f93c29c9c878d7b0a972bf49d2ac",
      "parents": [
        "fa3ef1cb4e6e9958a9bfaa977c107c515907f102"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Feb 10 23:17:44 2010 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Mar 23 12:31:09 2010 -0500"
      },
      "message": "eCryptfs: Clear buffer before reading in metadata xattr\n\nWe initially read in the first PAGE_CACHE_SIZE of a file to if the\neCryptfs header marker can be found.  If it isn\u0027t found and\necryptfs_xattr_metadata was given as a mount option, then the\nuser.ecryptfs xattr is read into the same buffer.  Since the data from\nthe first page of the file wasn\u0027t cleared, it is possible that we think\nwe\u0027ve found a second tag 3 or tag 1 packet and then error out after the\npacket contents aren\u0027t as expected.  This patch clears the buffer before\nfilling it with metadata from the user.ecryptfs xattr.\n\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    }
  ],
  "next": "fa3ef1cb4e6e9958a9bfaa977c107c515907f102"
}
