)]}'
{
  "log": [
    {
      "commit": "408bd629badbd4353b238ab6f58001529b274d73",
      "tree": "f152605d09f45ec47d172e6fff22fd937f276c3a",
      "parents": [
        "28fe3c1963b0bafa56ec92df1987828090151d87"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 03 09:34:20 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue May 29 23:28:40 2012 -0400"
      },
      "message": "get rid of pointless allocations and copying in ecryptfs_follow_link()\n\nswitch to generic_readlink(), while we are at it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "90324cc1b11a211e37eabd8cb863e1a1561d6b1d",
      "tree": "c8b79c6850420a114ca6660c1b44fc486b1ba86d",
      "parents": [
        "fb8b00675eb6462aacab56bca31ed6107bda5314",
        "169ebd90131b2ffca74bb2dbe7eeacd39fb83714"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "message": "Merge tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback tree from Wu Fengguang:\n \"Mainly from Jan Kara to avoid iput() in the flusher threads.\"\n\n* tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Avoid iput() from flusher thread\n  vfs: Rename end_writeback() to clear_inode()\n  vfs: Move waiting for inode writeback from end_writeback() to evict_inode()\n  writeback: Refactor writeback_single_inode()\n  writeback: Remove wb-\u003elist_lock from writeback_single_inode()\n  writeback: Separate inode requeueing after writeback\n  writeback: Move I_DIRTY_PAGES handling\n  writeback: Move requeueing when I_SYNC set to writeback_sb_inodes()\n  writeback: Move clearing of I_SYNC into inode_sync_complete()\n  writeback: initialize global_dirty_limit\n  fs: remove 8 bytes of padding from struct writeback_control on 64 bit builds\n  mm: page-writeback.c: local functions should not be exposed globally\n"
    },
    {
      "commit": "dbd5768f87ff6fb0a4fe09c4d7b6c4a24de99430",
      "tree": "42ea94ea733538f797aa745945fc43c4d1b89217",
      "parents": [
        "7994e6f7254354e03028a11f98a27bd67dace9f1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 03 14:48:02 2012 +0200"
      },
      "committer": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Sun May 06 13:43:41 2012 +0800"
      },
      "message": "vfs: Rename end_writeback() to clear_inode()\n\nAfter we moved inode_sync_wait() from end_writeback() it doesn\u0027t make sense\nto call the function end_writeback() anymore. Rename it to clear_inode()\nwhich well says what the function really does - set I_CLEAR flag.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "c4a4d603796c727b9555867571f89483be9c565e",
      "tree": "ae3b47a7b8b35c866df53cb4b4a051d49a28904a",
      "parents": [
        "7e6bd8fadd1216f50468f965d0308f45e5109ced"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 16 23:15:31 2011 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Apr 07 16:55:51 2012 -0700"
      },
      "message": "userns: Use cred-\u003euser_ns instead of cred-\u003euser-\u003euser_ns\n\nOptimize performance and prepare for the removal of the user_ns reference\nfrom user_struct.  Remove the slow long walk through cred-\u003euser-\u003euser_ns and\ninstead go straight to cred-\u003euser_ns.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "0794f569ec307dc25bbb12456ef75aa71f72f744",
      "tree": "3b3d090c3ca8cdf64cff3531ac4b855f7ebee592",
      "parents": [
        "f4c5499d2cbe54f0470764acfd0faf4e965aa7e9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 17 21:29:13 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:49 2012 -0400"
      },
      "message": "ecryptfs: make register_filesystem() the last potential failure exit\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "68ac1234fb949b66941d94dce4157742799fc581",
      "tree": "04059b7dbaed92d672b8ceef1fcf25c6185e06f8",
      "parents": [
        "40ffe67d2e89c7a475421d007becc11a2f88ea3d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 15 08:21:57 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:41 2012 -0400"
      },
      "message": "switch touch_atime to struct path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "48fde701aff662559b38d9a609574068f22d00fe",
      "tree": "aa6b203dc671b51d58575b65eb08310ff8309b60",
      "parents": [
        "6b4231e2f92adbcf96fb2a3fa751d7ca0a61b21f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 22:15:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:35 2012 -0400"
      },
      "message": "switch open-coded instances of d_make_root() to new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e28e832c3e1e1197873cfd0b6ce86868cf5c391d",
      "tree": "8d61ab891d094e4aff36ff314d6d77ff7f8be3d4",
      "parents": [
        "b57ce9694ec43dcb6ef6f189d6540e4b3d2c5e7a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 12 02:58:14 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:33 2012 -0400"
      },
      "message": "ecryptfs: don\u0027t bother with -\u003edrop_inode()\n\ngeneric_drop_inode() is the default\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "164974a8f2a482f1abcb027c6d1a89dd79b14297",
      "tree": "945e3f1645a0686c0d832a49cbe5d83175319bb3",
      "parents": [
        "891003abb0db6bfffd61b76ad0ed39bb7c3db8e1"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Tue Feb 28 16:31:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 28 16:55:30 2012 -0800"
      },
      "message": "ecryptfs: fix printk format warning for size_t\n\nFix printk format warning (from Linus\u0027s suggestion):\n\non i386:\n  fs/ecryptfs/miscdev.c:433:38: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027unsigned int\u0027\n\nand on x86_64:\n  fs/ecryptfs/miscdev.c:433:38: warning: format \u0027%u\u0027 expects type \u0027unsigned int\u0027, but argument 4 has type \u0027long unsigned int\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc:\tGeert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc:\tTyler Hicks \u003ctyhicks@canonical.com\u003e\nCc:\tDustin Kirkland \u003cdustin.kirkland@gazzang.com\u003e\nCc:\tecryptfs@vger.kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "465c9343c5b746ec2325a220fa3e50cc647d2db7",
      "tree": "fbff1765ebac62a5910ba34c15deeb8729fce1be",
      "parents": [
        "545d680938be1e86a6c5250701ce9abaf360c495"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Feb 10 13:39:50 2012 +0800"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Thu Feb 16 16:06:27 2012 -0600"
      },
      "message": "ecryptfs: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "545d680938be1e86a6c5250701ce9abaf360c495",
      "tree": "c2cb3c9cfbee7c041d137296b72f311179a41f0c",
      "parents": [
        "4a26620df451ad46151ad21d711ed43e963c004e"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Tue Feb 07 17:55:40 2012 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Thu Feb 16 16:06:27 2012 -0600"
      },
      "message": "eCryptfs: Copy up lower inode attrs after setting lower xattr\n\nAfter passing through a -\u003esetxattr() call, eCryptfs needs to copy the\ninode attributes from the lower inode to the eCryptfs inode, as they\nmay have changed in the lower filesystem\u0027s -\u003esetxattr() path.\n\nOne example is if an extended attribute containing a POSIX Access\nControl List is being set. The new ACL may cause the lower filesystem to\nmodify the mode of the lower inode and the eCryptfs inode would need to\nbe updated to reflect the new mode.\n\nhttps://launchpad.net/bugs/926292\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReported-by: Sebastien Bacher \u003cseb128@ubuntu.com\u003e\nCc: John Johansen \u003cjohn.johansen@canonical.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\n"
    },
    {
      "commit": "4a26620df451ad46151ad21d711ed43e963c004e",
      "tree": "bf035ea6a656b3e19fe93bf37991632cad96d971",
      "parents": [
        "c38e23456278e967f094b08247ffc3711b1029b2"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Sat Nov 05 13:45:08 2011 -0400"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Thu Feb 16 16:06:21 2012 -0600"
      },
      "message": "eCryptfs: Improve statfs reporting\n\nstatfs() calls on eCryptfs files returned the wrong filesystem type and,\nwhen using filename encryption, the wrong maximum filename length.\n\nIf mount-wide filename encryption is enabled, the cipher block size and\nthe lower filesystem\u0027s max filename length will determine the max\neCryptfs filename length. Pre-tested, known good lengths are used when\nthe lower filesystem\u0027s namelen is 255 and a cipher with 8 or 16 byte\nblock sizes is used. In other, less common cases, we fall back to a safe\nrounded-down estimate when determining the eCryptfs namelen.\n\nhttps://launchpad.net/bugs/885744\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReported-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReviewed-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReviewed-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\n"
    },
    {
      "commit": "1589cb1a94c381579a0235ca708d9e2dca6d3a39",
      "tree": "d47e39780ac8cf5d6eefc2d4abc69ba92d6b239e",
      "parents": [
        "3074c0350b173c9e98b62685e0a61a66d9ff8728"
      ],
      "author": {
        "name": "Li Wang",
        "email": "liwang@nudt.edu.cn",
        "time": "Wed Jan 25 15:40:31 2012 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 25 15:10:53 2012 -0800"
      },
      "message": "eCryptfs: move misleading function comments\n\n The data encryption was moved from ecryptfs_write_end into\necryptfs_writepage, this patch moves the corresponding function\ncomments to be consistent with the modification.\n\nSigned-off-by: Li Wang \u003cliwang@nudt.edu.cn\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58ded24f0fcb85bddb665baba75892f6ad0f4b8a",
      "tree": "40190011c2c728cfcfae82e105800958ddc92399",
      "parents": [
        "f2cb933501ebc066bf3c4b1836fd8428f8fe9863"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Tue Jan 24 10:02:22 2012 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jan 25 14:43:42 2012 -0600"
      },
      "message": "eCryptfs: Fix oops when printing debug info in extent crypto functions\n\nIf pages passed to the eCryptfs extent-based crypto functions are not\nmapped and the module parameter ecryptfs_verbosity\u003d1 was specified at\nloading time, a NULL pointer dereference will occur.\n\nNote that this wouldn\u0027t happen on a production system, as you wouldn\u0027t\npass ecryptfs_verbosity\u003d1 on a production system. It leaks private\ninformation to the system logs and is for debugging only.\n\nThe debugging info printed in these messages is no longer very useful\nand rather than doing a kmap() in these debugging paths, it will be\nbetter to simply remove the debugging paths completely.\n\nhttps://launchpad.net/bugs/913651\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReported-by: Daniel DeFreez\nCc: \u003cstable@vger.kernel.org\u003e\n"
    },
    {
      "commit": "f2cb933501ebc066bf3c4b1836fd8428f8fe9863",
      "tree": "d179547c3156df94cb0f0b5a91e9691bfc3d7a89",
      "parents": [
        "a261a03904849c3df50bd0300efb7fb3f865137d"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jan 18 15:09:43 2012 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jan 25 14:43:41 2012 -0600"
      },
      "message": "eCryptfs: Remove unused ecryptfs_read()\n\necryptfs_read() has been ifdef\u0027ed out for years now and it was\napparently unused before then. It is time to get rid of it for good.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "a261a03904849c3df50bd0300efb7fb3f865137d",
      "tree": "59785a3a6894e3e29e547813ff1d010bc08e5893",
      "parents": [
        "5e6f0d769017cc49207ef56996e42363ec26c1f0"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Thu Jan 19 20:33:44 2012 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jan 25 14:43:41 2012 -0600"
      },
      "message": "eCryptfs: Check inode changes in setattr\n\nMost filesystems call inode_change_ok() very early in -\u003esetattr(), but\neCryptfs didn\u0027t call it at all. It allowed the lower filesystem to make\nthe call in its -\u003esetattr() function. Then, eCryptfs would copy the\nappropriate inode attributes from the lower inode to the eCryptfs inode.\n\nThis patch changes that and actually calls inode_change_ok() on the\neCryptfs inode, fairly early in ecryptfs_setattr(). Ideally, the call\nwould happen earlier in ecryptfs_setattr(), but there are some possible\ninode initialization steps that must happen first.\n\nSince the call was already being made on the lower inode, the change in\nfunctionality should be minimal, except for the case of a file extending\ntruncate call. In that case, inode_newsize_ok() was never being\ncalled on the eCryptfs inode. Rather than inode_newsize_ok() catching\nmaximum file size errors early on, eCryptfs would encrypt zeroed pages\nand write them to the lower filesystem until the lower filesystem\u0027s\nwrite path caught the error in generic_write_checks(). This patch\nintroduces a new function, called ecryptfs_inode_newsize_ok(), which\nchecks if the new lower file size is within the appropriate limits when\nthe truncate operation will be growing the lower file.\n\nIn summary this change prevents eCryptfs truncate operations (and the\nresulting page encryptions), which would exceed the lower filesystem\nlimits or FSIZE rlimits, from ever starting.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReviewed-by: Li Wang \u003cliwang@nudt.edu.cn\u003e\nCc: \u003cstable@vger.kernel.org\u003e\n"
    },
    {
      "commit": "5e6f0d769017cc49207ef56996e42363ec26c1f0",
      "tree": "1cfcfdaeda81e1d17725bdd1e1a964cc5a0b40b5",
      "parents": [
        "684a3ff7e69acc7c678d1a1394fe9e757993fd34"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jan 18 18:30:04 2012 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jan 25 14:43:40 2012 -0600"
      },
      "message": "eCryptfs: Make truncate path killable\n\necryptfs_write() handles the truncation of eCryptfs inodes. It grabs a\npage, zeroes out the appropriate portions, and then encrypts the page\nbefore writing it to the lower filesystem. It was unkillable and due to\nthe lack of sparse file support could result in tying up a large portion\nof system resources, while encrypting pages of zeros, with no way for\nthe truncate operation to be stopped from userspace.\n\nThis patch adds the ability for ecryptfs_write() to detect a pending\nfatal signal and return as gracefully as possible. The intent is to\nleave the lower file in a useable state, while still allowing a user to\nbreak out of the encryption loop. If a pending fatal signal is detected,\nthe eCryptfs inode size is updated to reflect the modified inode size\nand then -EINTR is returned.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\n"
    },
    {
      "commit": "684a3ff7e69acc7c678d1a1394fe9e757993fd34",
      "tree": "733157a7c6ad606799fd2692f882da14aae2fd0b",
      "parents": [
        "48399c0b0e6172888a2e2e36df1595ab1e049ba8"
      ],
      "author": {
        "name": "Li Wang",
        "email": "liwang@nudt.edu.cn",
        "time": "Thu Jan 19 09:44:36 2012 +0800"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jan 25 14:43:40 2012 -0600"
      },
      "message": "eCryptfs: Infinite loop due to overflow in ecryptfs_write()\n\necryptfs_write() can enter an infinite loop when truncating a file to a\nsize larger than 4G. This only happens on architectures where size_t is\nrepresented by 32 bits.\n\nThis was caused by a size_t overflow due to it incorrectly being used to\nstore the result of a calculation which uses potentially large values of\ntype loff_t.\n\n[tyhicks@canonical.com: rewrite subject and commit message]\nSigned-off-by: Li Wang \u003cliwang@nudt.edu.cn\u003e\nSigned-off-by: Yunchuan Wen \u003cwenyunchuan@kylinos.com.cn\u003e\nReviewed-by: Cong Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "48399c0b0e6172888a2e2e36df1595ab1e049ba8",
      "tree": "7fb94f7ce80de13fd419e69322d9e6b157a49f91",
      "parents": [
        "7f133504249afa48618becac546ce3c35c9f0185"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Sat Jan 14 16:46:46 2012 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jan 25 14:43:40 2012 -0600"
      },
      "message": "eCryptfs: Replace miscdev read/write magic numbers\n\necryptfs_miscdev_read() and ecryptfs_miscdev_write() contained many\nmagic numbers for specifying packet header field sizes and offsets. This\npatch defines those values and replaces the magic values.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "7f133504249afa48618becac546ce3c35c9f0185",
      "tree": "0aa0044c7074095e15ac86a6f1be00c5bc0df8f7",
      "parents": [
        "db10e556518eb9d21ee92ff944530d84349684f4"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Sat Jan 14 15:51:37 2012 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jan 25 14:43:39 2012 -0600"
      },
      "message": "eCryptfs: Report errors in writes to /dev/ecryptfs\n\nErrors in writes to /dev/ecryptfs were being incorrectly reported by\nreturning 0 or the value of the original write count.\n\nThis patch clears up the return code assignment in error paths.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "db10e556518eb9d21ee92ff944530d84349684f4",
      "tree": "84a82f496a4fe4ee90812b5d7f2cd358f9730911",
      "parents": [
        "bb4503615d95d6826b7907986ad574e3157877e8"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Thu Jan 12 11:30:44 2012 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jan 25 14:43:39 2012 -0600"
      },
      "message": "eCryptfs: Sanitize write counts of /dev/ecryptfs\n\nA malicious count value specified when writing to /dev/ecryptfs may\nresult in a a very large kernel memory allocation.\n\nThis patch peeks at the specified packet payload size, adds that to the\nsize of the packet headers and compares the result with the write count\nvalue. The resulting maximum memory allocation size is approximately 532\nbytes.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReported-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\n"
    },
    {
      "commit": "bb4503615d95d6826b7907986ad574e3157877e8",
      "tree": "b18866a880872b94c16452208f9073b20987505c",
      "parents": [
        "30373dc0c87ffef68d5628e77d56ffb1fa22e1ee"
      ],
      "author": {
        "name": "Tim Gardner",
        "email": "tim.gardner@canonical.com",
        "time": "Thu Jan 12 16:31:55 2012 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jan 25 14:43:38 2012 -0600"
      },
      "message": "ecryptfs: Remove unnecessary variable initialization\n\nRemoves unneeded variable initialization in ecryptfs_read_metadata(). Also adds\na small comment to help explain metadata reading logic.\n\n[tyhicks@canonical.com: Pulled out of for-stable patch and wrote commit msg]\nSigned-off-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "30373dc0c87ffef68d5628e77d56ffb1fa22e1ee",
      "tree": "77e8589ed03f3e362b728f08bdfd74a54963e54e",
      "parents": [
        "140941987f8f85ee7c7d4592ecb6667b32f3485d"
      ],
      "author": {
        "name": "Tim Gardner",
        "email": "tim.gardner@canonical.com",
        "time": "Thu Jan 12 16:31:55 2012 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jan 25 14:43:38 2012 -0600"
      },
      "message": "ecryptfs: Improve metadata read failure logging\n\nPrint inode on metadata read failure. The only real\nway of dealing with metadata read failures is to delete\nthe underlying file system file. Having the inode\nallows one to \u0027find . -inum INODE`.\n\n[tyhicks@canonical.com: Removed some minor not-for-stable parts]\nSigned-off-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nReviewed-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "175a4eb7ea531cdbf6d574f5d5ba9aa0f5e8ed13",
      "tree": "841812b19b8a5546e472be321b32ca58528b76c3",
      "parents": [
        "030a8ba48fa6fa2a1304bab5b0f49360613c4af2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 03:30:54 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:10 2012 -0500"
      },
      "message": "fs: propagate umode_t, misc bits\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18cb1b08d2e1ff6907130fc0ce78a5912efa0ba5",
      "tree": "fa29fc26d30be50c8f03071b0eab870b2fad8d2a",
      "parents": [
        "439475140bed762c04567c325d48409862341ae4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 24 13:47:19 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:57 2012 -0500"
      },
      "message": "kill ecryptfs_create_underlying_file()\n\nit\u0027s a just a wrapper for vfs_create()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a67aafb5f72a436ca044293309fa7e6351d6a35",
      "tree": "d9e58600148de9d41b478cf815773b746647d15b",
      "parents": [
        "4acdaf27ebe2034c342f3be57ef49aed1ad885ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:52:52 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:54 2012 -0500"
      },
      "message": "switch -\u003emknod() to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4acdaf27ebe2034c342f3be57ef49aed1ad885ef",
      "tree": "d89a876ee19cd88609a587f8aa6c464a52ee6d98",
      "parents": [
        "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:42:34 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch -\u003ecreate() to umode_t\n\nvfs_create() ignores everything outside of 16bit subset of its\nmode argument; switching it to umode_t is obviously equivalent\nand it\u0027s the only caller of the method\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c",
      "tree": "4ee4e584bc9a67f3ec14ce159d2d7d4a27e68d4a",
      "parents": [
        "8208a22bb8bd3c52ef634b4ff194f14892ab1713"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:41:39 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch vfs_mkdir() and -\u003emkdir() to umode_t\n\nvfs_mkdir() gets int, but immediately drops everything that might not\nfit into umode_t and that\u0027s the only caller of -\u003emkdir()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0f751e641a71157aa584c2a2e22fda52b52b8a56",
      "tree": "53bc2e3edf25f4564376d2dac79a5bfbd1e16bf5",
      "parents": [
        "32001d6fe9ac6b0423e674a3093aa56740849f3b"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Nov 23 11:31:24 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Nov 23 15:43:53 2011 -0600"
      },
      "message": "eCryptfs: Extend array bounds for all filename chars\n\nFrom mhalcrow\u0027s original commit message:\n\n    Characters with ASCII values greater than the size of\n    filename_rev_map[] are valid filename characters.\n    ecryptfs_decode_from_filename() will access kernel memory beyond\n    that array, and ecryptfs_parse_tag_70_packet() will then decrypt\n    those characters. The attacker, using the FNEK of the crafted file,\n    can then re-encrypt the characters to reveal the kernel memory past\n    the end of the filename_rev_map[] array. I expect low security\n    impact since this array is statically allocated in the text area,\n    and the amount of memory past the array that is accessible is\n    limited by the largest possible ASCII filename character.\n\nThis patch solves the issue reported by mhalcrow but with an\nimplementation suggested by Linus to simply extend the length of\nfilename_rev_map[] to 256. Characters greater than 0x7A are mapped to\n0x00, which is how invalid characters less than 0x7A were previously\nbeing handled.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReported-by: Michael Halcrow \u003cmhalcrow@google.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "32001d6fe9ac6b0423e674a3093aa56740849f3b",
      "tree": "97517bbe44089da7d33a6cc715f835e2adc9ddea",
      "parents": [
        "b59db43ad4434519feb338eacb01d77eb50825c5"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Mon Nov 21 17:31:29 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Nov 23 15:40:09 2011 -0600"
      },
      "message": "eCryptfs: Flush file in vma close\n\nDirty pages weren\u0027t being written back when an mmap\u0027ed eCryptfs file was\nclosed before the mapping was unmapped. Since f_ops-\u003eflush() is not\ncalled by the munmap() path, the lower file was simply being released.\nThis patch flushes the eCryptfs file in the vm_ops-\u003eclose() path.\n\nhttps://launchpad.net/bugs/870326\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCc: stable@kernel.org [2.6.39+]\n"
    },
    {
      "commit": "b59db43ad4434519feb338eacb01d77eb50825c5",
      "tree": "ee978cf1ab736b3fc104b46b2491e7742e663dcf",
      "parents": [
        "6fe4c6d466e95d31164f14b1ac4aefb51f0f4f82"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Mon Nov 21 17:31:02 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Nov 23 15:39:38 2011 -0600"
      },
      "message": "eCryptfs: Prevent file create race condition\n\nThe file creation path prematurely called d_instantiate() and\nunlock_new_inode() before the eCryptfs inode info was fully\nallocated and initialized and before the eCryptfs metadata was written\nto the lower file.\n\nThis could result in race conditions in subsequent file and inode\noperations leading to unexpected error conditions or a null pointer\ndereference while attempting to use the unallocated memory.\n\nhttps://launchpad.net/bugs/813146\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "764355487ea220fdc2faf128d577d7f679b91f97",
      "tree": "f265a3f71bd57838bf3d00c26ed385f8978ef139",
      "parents": [
        "99b373ff2d1246f64b97a3d449a2fd6018d504e6"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Fri Jul 22 08:14:15 2011 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Aug 09 23:29:01 2011 -0500"
      },
      "message": "Ecryptfs: Add mount option to check uid of device being mounted \u003d expect uid\n\nClose a TOCTOU race for mounts done via ecryptfs-mount-private.  The mount\nsource (device) can be raced when the ownership test is done in userspace.\nProvide Ecryptfs a means to force the uid check at mount time.\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "99b373ff2d1246f64b97a3d449a2fd6018d504e6",
      "tree": "03717f86106f9cba373e9a630d82720c6055e15d",
      "parents": [
        "4b6fee17b1758391281ddf5b00328035573f8be1"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Aug 05 04:15:19 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Aug 09 13:42:46 2011 -0500"
      },
      "message": "eCryptfs: Fix payload_len unitialized variable warning\n\nfs/ecryptfs/keystore.c: In function ‘ecryptfs_generate_key_packet_set’:\nfs/ecryptfs/keystore.c:1991:28: warning: ‘payload_len’ may be used uninitialized in this function [-Wuninitialized]\nfs/ecryptfs/keystore.c:1976:9: note: ‘payload_len’ was declared here\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4b6fee17b1758391281ddf5b00328035573f8be1",
      "tree": "58c5b5a0926f5fea6e0c40e87b38761e19b7076e",
      "parents": [
        "f61500e000eedc0c7a0201200a7f00ba5529c002"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Aug 01 13:33:38 2011 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Aug 09 13:42:46 2011 -0500"
      },
      "message": "eCryptfs: fix compile error\n\nThis patch fixes the compile error reported at the address:\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d40292\n\nThe problem arises when compiling eCryptfs as built-in and the \u0027encrypted\u0027\nkey type as a module. The patch prevents this combination from being set in\nthe kernel configuration, by fixing the eCryptfs dependencies.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nReported-by: David Hill \u003chilld@binarystorm.net\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f61500e000eedc0c7a0201200a7f00ba5529c002",
      "tree": "93ce7e83511a83fa38f4b5d936dc2dfdd3352117",
      "parents": [
        "322a8b034003c0d46d39af85bf24fee27b902f48"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Aug 04 22:58:51 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Aug 09 13:42:45 2011 -0500"
      },
      "message": "eCryptfs: Return error when lower file pointer is NULL\n\nWhen an eCryptfs inode\u0027s lower file has been closed, and the pointer has\nbeen set to NULL, return an error when trying to do a lower read or\nwrite rather than calling BUG().\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d37292\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "985ca0e626e195ea08a1a82b8dbeb6719747429a",
      "tree": "8c7978767a72ea80641ee0439e6f21aad1ae7ad6",
      "parents": [
        "b2987a5e05ec7a1af7ca42e5d5349d7a22753031"
      ],
      "author": {
        "name": "Thieu Le",
        "email": "thieule@chromium.org",
        "time": "Tue Jul 26 16:15:10 2011 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Jul 28 23:48:26 2011 -0500"
      },
      "message": "ecryptfs: Make inode bdi consistent with superblock bdi\n\nMake the inode mapping bdi consistent with the superblock bdi so that\ndirty pages are flushed properly.\n\nSigned-off-by: Thieu Le \u003cthieule@chromium.org\u003e\nCc: \u003cstable@kernel.org\u003e [2.6.39+]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b2987a5e05ec7a1af7ca42e5d5349d7a22753031",
      "tree": "be0a56d227b5f6b661c0f8eecf960b61051d05d6",
      "parents": [
        "55f9c40ff632d03c527d6a6ceddcda0a224587a6"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jul 26 19:47:08 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Jul 28 23:30:09 2011 -0500"
      },
      "message": "eCryptfs: Unlock keys needed by ecryptfsd\n\nFixes a regression caused by b5695d04634fa4ccca7dcbc05bb4a66522f02e0b\n\nKernel keyring keys containing eCryptfs authentication tokens should not\nbe write locked when calling out to ecryptfsd to wrap and unwrap file\nencryption keys. The eCryptfs kernel code can not hold the key\u0027s write\nlock because ecryptfsd needs to request the key after receiving such a\nrequest from the kernel.\n\nWithout this fix, all file opens and creates will timeout and fail when\nusing the eCryptfs PKI infrastructure. This is not an issue when using\npassphrase-based mount keys, which is the most widely deployed eCryptfs\nconfiguration.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nAcked-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nTested-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nTested-by: Alexis Hafner1 \u003chaf@zurich.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e [2.6.39+]\n"
    },
    {
      "commit": "95b6886526bb510b8370b625a49bc0ab3b8ff10f",
      "tree": "2862606224820d200be12d2092dcd26df1654b80",
      "parents": [
        "22712200e175e0df5c7f9edfe6c6bf5c94c23b83",
        "29412f0f6a19e34336368f13eab848091c343952"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 19:26:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 19:26:38 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (54 commits)\n  tpm_nsc: Fix bug when loading multiple TPM drivers\n  tpm: Move tpm_tis_reenable_interrupts out of CONFIG_PNP block\n  tpm: Fix compilation warning when CONFIG_PNP is not defined\n  TOMOYO: Update kernel-doc.\n  tpm: Fix a typo\n  tpm_tis: Probing function for Intel iTPM bug\n  tpm_tis: Fix the probing for interrupts\n  tpm_tis: Delay ACPI S3 suspend while the TPM is busy\n  tpm_tis: Re-enable interrupts upon (S3) resume\n  tpm: Fix display of data in pubek sysfs entry\n  tpm_tis: Add timeouts sysfs entry\n  tpm: Adjust interface timeouts if they are too small\n  tpm: Use interface timeouts returned from the TPM\n  tpm_tis: Introduce durations sysfs entry\n  tpm: Adjust the durations if they are too small\n  tpm: Use durations returned from TPM\n  TOMOYO: Enable conditional ACL.\n  TOMOYO: Allow using argv[]/envp[] of execve() as conditions.\n  TOMOYO: Allow using executable\u0027s realpath and symlink\u0027s target as conditions.\n  TOMOYO: Allow using owner/group etc. of file objects as conditions.\n  ...\n\nFix up trivial conflict in security/tomoyo/realpath.c\n"
    },
    {
      "commit": "d3ec4844d449cf7af9e749f73ba2052fb7b72fc2",
      "tree": "c515913e85f7e50878c83da2a88bc5a7269d087c",
      "parents": [
        "0003230e8200699860f0b10af524dc47bf8aecad",
        "df2e301fee3c2c2a87592151397ad7699bb14c37"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 13:56:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 13:56:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)\n  fs: Merge split strings\n  treewide: fix potentially dangerous trailing \u0027;\u0027 in #defined values/expressions\n  uwb: Fix misspelling of neighbourhood in comment\n  net, netfilter: Remove redundant goto in ebt_ulog_packet\n  trivial: don\u0027t touch files that are removed in the staging tree\n  lib/vsprintf: replace link to Draft by final RFC number\n  doc: Kconfig: `to be\u0027 -\u003e `be\u0027\n  doc: Kconfig: Typo: square -\u003e squared\n  doc: Konfig: Documentation/power/{pm \u003d\u003e apm-acpi}.txt\n  drivers/net: static should be at beginning of declaration\n  drivers/media: static should be at beginning of declaration\n  drivers/i2c: static should be at beginning of declaration\n  XTENSA: static should be at beginning of declaration\n  SH: static should be at beginning of declaration\n  MIPS: static should be at beginning of declaration\n  ARM: static should be at beginning of declaration\n  rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check\n  Update my e-mail address\n  PCIe ASPM: forcedly -\u003e forcibly\n  gma500: push through device driver tree\n  ...\n\nFix up trivial conflicts:\n - arch/arm/mach-ep93xx/dma-m2p.c (deleted)\n - drivers/gpio/gpio-ep93xx.c (renamed and context nearby)\n - drivers/net/r8169.c (just context changes)\n"
    },
    {
      "commit": "df2e301fee3c2c2a87592151397ad7699bb14c37",
      "tree": "09364e1443d8cac6c415af5e8d07b2b37793b68e",
      "parents": [
        "497888cf69bf607ac1fe061a6437e0a670b0022f"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Sat Jul 16 18:10:35 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jul 22 16:47:15 2011 +0200"
      },
      "message": "fs: Merge split strings\n\nNo idea why these were split in the first place...\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "02c24a82187d5a628c68edfe71ae60dc135cd178",
      "tree": "c8dbaba4d82e2b20ed4335910a564a1f7d90fcf6",
      "parents": [
        "22735068d53c7115e384bc88dea95b17e76a6839"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Jul 16 20:44:56 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:59 2011 -0400"
      },
      "message": "fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n\nBtrfs needs to be able to control how filemap_write_and_wait_range() is called\nin fsync to make it less of a painful operation, so push down taking i_mutex and\nthe calling of filemap_write_and_wait() down into the -\u003efsync() handlers.  Some\nfile systems can drop taking the i_mutex altogether it seems, like ext3 and\nocfs2.  For correctness sake I just pushed everything down in all cases to make\nsure that we keep the current behavior the same for everybody, and then each\nindividual fs maintainer can make up their mind about what to do from there.\nThanks,\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bf6c7f6c7bd0ea779757d35b5fdc9f9157f056b3",
      "tree": "aed90f298856f286f84af6774ea30ade62c95294",
      "parents": [
        "8a5e929dd2e05ab4d3d89f58c5e8fca596af8f3a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 25 21:08:31 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:54 2011 -0400"
      },
      "message": "don\u0027t pass nameidata to vfs_create() from ecryptfs_create()\n\nInstead of playing with removal of LOOKUP_OPEN, mangling (and\nrestoring) nd-\u003epath, just pass NULL to vfs_create().  The whole\npoint of what\u0027s being done there is to suppress any attempts\nto open file by underlying fs, which is what nd \u003d\u003d NULL indicates.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "beefebf1aa611242e022e71bae87034f415d3314",
      "tree": "87f7aaeda400872f42a3ff5560e8ac995bb08970",
      "parents": [
        "729cdb3a1ee03a4363f9c7e66ddd979727e99e1f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 21 01:01:59 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:38 2011 -0400"
      },
      "message": "ecryptfs_inode_permission() doesn\u0027t need to bail out on RCU\n\n... now that inode_permission() can take MAY_NOT_BLOCK and handle it\nproperly.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "10556cb21a0d0b24d95f00ea6df16f599a3345b2",
      "tree": "3d7d8dfba807805a55c154f1850717bf3b49f343",
      "parents": [
        "2830ba7f34ebb27c4e5b8b6ef408cd6d74860890"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:28:19 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:24 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to -\u003epermission()\n\nnot used by the instances anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1252cc3b232e582e887623dc5f70979418caaaa2",
      "tree": "bd3a266d7c53ce46a37a7907d7a2b6c8bcb8a6ae",
      "parents": [
        "79a73d188726b473ca3bf483244bc96096831905"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Jun 27 13:45:45 2011 +0200"
      },
      "committer": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Mon Jun 27 09:11:21 2011 -0400"
      },
      "message": "eCryptfs: added support for the encrypted key type\n\nThe function ecryptfs_keyring_auth_tok_for_sig() has been modified in order\nto search keys of both \u0027user\u0027 and \u0027encrypted\u0027 types.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nAcked-by: Gianluca Ramunno \u003cramunno@polito.it\u003e\nAcked-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nSigned-off-by: Mimi Zohar \u003czohar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f8f8527103a264b5e4ab2ce5c1743b28f3219d90",
      "tree": "b10b58c812409c60223716fe8514a76a924a30aa",
      "parents": [
        "4e561d388feff18e4b798cef6a1a84a2cc7f20c2"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Jun 27 13:45:43 2011 +0200"
      },
      "committer": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Mon Jun 27 09:11:02 2011 -0400"
      },
      "message": "eCryptfs: export global eCryptfs definitions to include/linux/ecryptfs.h\n\nSome eCryptfs specific definitions, such as the current version and the\nauthentication token structure, are moved to the new include file\n\u0027include/linux/ecryptfs.h\u0027, in order to be available for all kernel\nsubsystems.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nAcked-by: Gianluca Ramunno \u003cramunno@polito.it\u003e\nAcked-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Mimi Zohar \u003czohar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "12462f2df4d10ea4f6d55b9d438ff788badec3f0"
}
