)]}'
{
  "log": [
    {
      "commit": "b67bfe0d42cac56c512dd5da4b1b347a23f4b70a",
      "tree": "3d465aea12b97683f26ffa38eba8744469de9997",
      "parents": [
        "1e142b29e210b5dfb2deeb6ce2210b60af16d2a6"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Wed Feb 27 17:06:00 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:24 2013 -0800"
      },
      "message": "hlist: drop the node parameter from iterators\n\nI\u0027m not sure why, but the hlist for each entry iterators were conceived\n\n        list_for_each_entry(pos, head, member)\n\nThe hlist ones were greedy and wanted an extra parameter:\n\n        hlist_for_each_entry(tpos, pos, head, member)\n\nWhy did they need an extra pos parameter? I\u0027m not quite sure. Not only\nthey don\u0027t really need it, it also prevents the iterator from looking\nexactly like the list iterator, which is unfortunate.\n\nBesides the semantic patch, there was some manual work required:\n\n - Fix up the actual hlist iterators in linux/list.h\n - Fix up the declaration of other iterators based on the hlist ones.\n - A very small amount of places were using the \u0027node\u0027 parameter, this\n was modified to use \u0027obj-\u003emember\u0027 instead.\n - Coccinelle didn\u0027t handle the hlist_for_each_entry_safe iterator\n properly, so those had to be fixed up manually.\n\nThe semantic patch which is mostly the work of Peter Senna Tschudin is here:\n\n@@\niterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;\n\ntype T;\nexpression a,c,d,e;\nidentifier b;\nstatement S;\n@@\n\n-T b;\n    \u003c+... when !\u003d b\n(\nhlist_for_each_entry(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue(a,\n- b,\nc) S\n|\nhlist_for_each_entry_from(a,\n- b,\nc) S\n|\nhlist_for_each_entry_rcu(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_rcu_bh(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue_rcu_bh(a,\n- b,\nc) S\n|\nfor_each_busy_worker(a, c,\n- b,\nd) S\n|\nax25_uid_for_each(a,\n- b,\nc) S\n|\nax25_for_each(a,\n- b,\nc) S\n|\ninet_bind_bucket_for_each(a,\n- b,\nc) S\n|\nsctp_for_each_hentry(a,\n- b,\nc) S\n|\nsk_for_each(a,\n- b,\nc) S\n|\nsk_for_each_rcu(a,\n- b,\nc) S\n|\nsk_for_each_from\n-(a, b)\n+(a)\nS\n+ sk_for_each_from(a) S\n|\nsk_for_each_safe(a,\n- b,\nc, d) S\n|\nsk_for_each_bound(a,\n- b,\nc) S\n|\nhlist_for_each_entry_safe(a,\n- b,\nc, d, e) S\n|\nhlist_for_each_entry_continue_rcu(a,\n- b,\nc) S\n|\nnr_neigh_for_each(a,\n- b,\nc) S\n|\nnr_neigh_for_each_safe(a,\n- b,\nc, d) S\n|\nnr_node_for_each(a,\n- b,\nc) S\n|\nnr_node_for_each_safe(a,\n- b,\nc, d) S\n|\n- for_each_gfn_sp(a, c, d, b) S\n+ for_each_gfn_sp(a, c, d) S\n|\n- for_each_gfn_indirect_valid_sp(a, c, d, b) S\n+ for_each_gfn_indirect_valid_sp(a, c, d) S\n|\nfor_each_host(a,\n- b,\nc) S\n|\nfor_each_host_safe(a,\n- b,\nc, d) S\n|\nfor_each_mesh_entry(a,\n- b,\nc, d) S\n)\n    ...+\u003e\n\n[akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]\n[akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: fix warnings]\n[akpm@linux-foudnation.org: redo intrusive kvm changes]\nTested-by: Peter Senna Tschudin \u003cpeter.senna@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d895cb1af15c04c522a25c79cc429076987c089b",
      "tree": "895dc9157e28f603d937a58be664e4e440d5530c",
      "parents": [
        "9626357371b519f2b955fef399647181034a77fe",
        "d3d009cb965eae7e002ea5badf603ea8f4c34915"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 20:16:07 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 20:16:07 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile (part one) from Al Viro:\n \"Assorted stuff - cleaning namei.c up a bit, fixing -\u003ed_name/-\u003ed_parent\n  locking violations, etc.\n\n  The most visible changes here are death of FS_REVAL_DOT (replaced with\n  \"has -\u003ed_weak_revalidate()\") and a new helper getting from struct file\n  to inode.  Some bits of preparation to xattr method interface changes.\n\n  Misc patches by various people sent this cycle *and* ocfs2 fixes from\n  several cycles ago that should\u0027ve been upstream right then.\n\n  PS: the next vfs pile will be xattr stuff.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits)\n  saner proc_get_inode() calling conventions\n  proc: avoid extra pde_put() in proc_fill_super()\n  fs: change return values from -EACCES to -EPERM\n  fs/exec.c: make bprm_mm_init() static\n  ocfs2/dlm: use GFP_ATOMIC inside a spin_lock\n  ocfs2: fix possible use-after-free with AIO\n  ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path\n  get_empty_filp()/alloc_file() leave both -\u003ef_pos and -\u003ef_version zero\n  target: writev() on single-element vector is pointless\n  export kernel_write(), convert open-coded instances\n  fs: encode_fh: return FILEID_INVALID if invalid fid_type\n  kill f_vfsmnt\n  vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op\n  nfsd: handle vfs_getattr errors in acl protocol\n  switch vfs_getattr() to struct path\n  default SET_PERSONALITY() in linux/elf.h\n  ceph: prepopulate inodes only when request is aborted\n  d_hash_and_lookup(): export, switch open-coded instances\n  9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate()\n  9p: split dropping the acls from v9fs_set_create_acl()\n  ...\n"
    },
    {
      "commit": "7bb307e894d51308aa0582a8c4cc5875bbc645b9",
      "tree": "8b8434fe4674fb47236c0d7ca2256e7afc29f208",
      "parents": [
        "94e07a7590ae855bae0536c42b3086fadc7c83a8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Feb 23 14:51:48 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 26 02:46:11 2013 -0500"
      },
      "message": "export kernel_write(), convert open-coded instances\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3dadecce20603aa380023c65e6f55f108fd5e952",
      "tree": "9c6b1540787ba3c0c2342447bf1b35836b1e4314",
      "parents": [
        "e72837e3e7bae3f182c4ac63c9424e86f1158dd0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 24 02:18:08 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 26 02:46:08 2013 -0500"
      },
      "message": "switch vfs_getattr() to struct path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "496ad9aa8ef448058e36ca7a787c61f2e63f0f54",
      "tree": "8f4abde793cd7db5bb8fde6d27ebcacd0e54379a",
      "parents": [
        "57eccb830f1cc93d4b506ba306d8dfa685e0c88f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 23 17:07:38 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 22 23:31:31 2013 -0500"
      },
      "message": "new helper: file_inode(file)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "336d6d0323a58702caec260245376843d43f1945",
      "tree": "f4397f20c9ee7e58ead5b33d0156fbb274ddf734",
      "parents": [
        "1b6a78a52262495c26fe8ec58cc8f7a6f8425d7c"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Tue Oct 02 11:19:20 2012 -0700"
      },
      "committer": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Fri Jan 11 11:39:04 2013 -0800"
      },
      "message": "fs/ecryptfs: remove depends on CONFIG_EXPERIMENTAL\n\nThe CONFIG_EXPERIMENTAL config item has not carried much meaning for a\nwhile now and is almost always enabled by default. As agreed during the\nLinux kernel summit, remove it from any \"depends on\" lines in Kconfigs.\n\nCC: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCC: Dustin Kirkland \u003cdustin.kirkland@gazzang.com\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nAcked-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "37028758f92d0a3eb74bcfbecf6bc477072e9e28",
      "tree": "4596c9f0a276229f40b270bde8b56cc89a1d2c37",
      "parents": [
        "8bbca57cff7f1b1fd046eebd1e9497a00161c2c1"
      ],
      "author": {
        "name": "Cong Ding",
        "email": "dinggnu@gmail.com",
        "time": "Fri Dec 07 22:21:56 2012 +0000"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Tue Dec 18 10:10:13 2012 -0600"
      },
      "message": "fs/ecryptfs/crypto.c: make ecryptfs_encode_for_filename() static\n\nthe function ecryptfs_encode_for_filename() is only used in this file\n\nSigned-off-by: Cong Ding \u003cdinggnu@gmail.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "8bbca57cff7f1b1fd046eebd1e9497a00161c2c1",
      "tree": "3fda3c058123baf9087b1a32922ad6498aff1e39",
      "parents": [
        "e4bc6522d53b7b8eb02cfac35fd18275fd86269d"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yongjun_wei@trendmicro.com.cn",
        "time": "Tue Aug 21 10:46:05 2012 +0800"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Tue Dec 18 10:07:29 2012 -0600"
      },
      "message": "eCryptfs: fix to use list_for_each_entry_safe() when delete items\n\nSince we will be removing items off the list using list_del() we need\nto use a safer version of the list_for_each_entry() macro aptly named\nlist_for_each_entry_safe(). We should use the safe macro if the loop\ninvolves deletions of items.\n\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\n[tyhicks: Fixed compiler err - missing list_for_each_entry_safe() param]\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "e4bc6522d53b7b8eb02cfac35fd18275fd86269d",
      "tree": "9b426d57ab9a433422debaf44ae7dad498acc15e",
      "parents": [
        "0e4a43ed08e2f44aa7b96aa95d0a540d675483e1"
      ],
      "author": {
        "name": "Li Wang",
        "email": "wangli@kylinos.com.cn",
        "time": "Tue Oct 30 19:52:40 2012 +0800"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Nov 07 17:56:16 2012 -0800"
      },
      "message": "eCryptfs: Avoid unnecessary disk read and data decryption during writing\n\necryptfs_write_begin grabs a page from page cache for writing.\nIf the page contains invalid data, or data older than the\ncounterpart on the disk, eCryptfs will read out the\ncorresponing data from the disk into the page, decrypt them,\nthen perform writing. However, for this page, if the length\nof the data to be written into is equal to page size,\nthat means the whole page of data will be overwritten,\nin which case, it does not matter whatever the data were before,\nit is beneficial to perform writing directly rather than bothering\nto read and decrypt first.\n\nWith this optimization, according to our test on a machine with\nIntel Core 2 Duo processor, iozone \u0027write\u0027 operation on an existing\nfile with write size being multiple of page size will enjoy a steady\n3x speedup.\n\nSigned-off-by: Li Wang \u003cwangli@kylinos.com.cn\u003e\nSigned-off-by: Yunchuan Wen \u003cwenyunchuan@kylinos.com.cn\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "aab174f0df5d72d31caccf281af5f614fa254578",
      "tree": "2a172c5009c4ac8755e858593154c258ce7709a0",
      "parents": [
        "ca41cc96b2813221b05af57d0355157924de5a07",
        "2bd2c1941f141ad780135ccc1cd08ca71a24f10a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 20:25:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 20:25:04 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs update from Al Viro:\n\n - big one - consolidation of descriptor-related logics; almost all of\n   that is moved to fs/file.c\n\n   (BTW, I\u0027m seriously tempted to rename the result to fd.c.  As it is,\n   we have a situation when file_table.c is about handling of struct\n   file and file.c is about handling of descriptor tables; the reasons\n   are historical - file_table.c used to be about a static array of\n   struct file we used to have way back).\n\n   A lot of stray ends got cleaned up and converted to saner primitives,\n   disgusting mess in android/binder.c is still disgusting, but at least\n   doesn\u0027t poke so much in descriptor table guts anymore.  A bunch of\n   relatively minor races got fixed in process, plus an ext4 struct file\n   leak.\n\n - related thing - fget_light() partially unuglified; see fdget() in\n   there (and yes, it generates the code as good as we used to have).\n\n - also related - bits of Cyrill\u0027s procfs stuff that got entangled into\n   that work; _not_ all of it, just the initial move to fs/proc/fd.c and\n   switch of fdinfo to seq_file.\n\n - Alex\u0027s fs/coredump.c spiltoff - the same story, had been easier to\n   take that commit than mess with conflicts.  The rest is a separate\n   pile, this was just a mechanical code movement.\n\n - a few misc patches all over the place.  Not all for this cycle,\n   there\u0027ll be more (and quite a few currently sit in akpm\u0027s tree).\"\n\nFix up trivial conflicts in the android binder driver, and some fairly\nsimple conflicts due to two different changes to the sock_alloc_file()\ninterface (\"take descriptor handling from sock_alloc_file() to callers\"\nvs \"net: Providing protocol type via system.sockprotoname xattr of\n/proc/PID/fd entries\" adding a dentry name to the socket)\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (72 commits)\n  MAX_LFS_FILESIZE should be a loff_t\n  compat: fs: Generic compat_sys_sendfile implementation\n  fs: push rcu_barrier() from deactivate_locked_super() to filesystems\n  btrfs: reada_extent doesn\u0027t need kref for refcount\n  coredump: move core dump functionality into its own file\n  coredump: prevent double-free on an error path in core dumper\n  usb/gadget: fix misannotations\n  fcntl: fix misannotations\n  ceph: don\u0027t abuse d_delete() on failure exits\n  hypfs: -\u003ed_parent is never NULL or negative\n  vfs: delete surplus inode NULL check\n  switch simple cases of fget_light to fdget\n  new helpers: fdget()/fdput()\n  switch o2hb_region_dev_write() to fget_light()\n  proc_map_files_readdir(): don\u0027t bother with grabbing files\n  make get_file() return its argument\n  vhost_set_vring(): turn pollstart/pollstop into bool\n  switch prctl_set_mm_exe_file() to fget_light()\n  switch xfs_find_handle() to fget_light()\n  switch xfs_swapext() to fget_light()\n  ...\n"
    },
    {
      "commit": "8c0a85377048b64c880e76ec7368904fe46d0b94",
      "tree": "12e075f4159e88b09a89e35866017f82f80bcc7d",
      "parents": [
        "99621b44aa194eab594e1f17217231c02b519211"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Sep 26 11:33:07 2012 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 02 21:35:55 2012 -0400"
      },
      "message": "fs: push rcu_barrier() from deactivate_locked_super() to filesystems\n\nThere\u0027s no reason to call rcu_barrier() on every\ndeactivate_locked_super().  We only need to make sure that all delayed rcu\nfree inodes are flushed before we destroy related cache.\n\nRemoving rcu_barrier() from deactivate_locked_super() affects some fast\npaths.  E.g.  on my machine exit_group() of a last process in IPC\nnamespace takes 0.07538s.  rcu_barrier() takes 0.05188s of that time.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "437589a74b6a590d175f86cf9f7b2efcee7765e7",
      "tree": "37bf8635b1356d80ef002b00e84f3faf3d555a63",
      "parents": [
        "68d47a137c3bef754923bccf73fb639c9b0bbd5e",
        "72235465864d84cedb2d9f26f8e1de824ee20339"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 11:11:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 11:11:09 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace changes from Eric Biederman:\n \"This is a mostly modest set of changes to enable basic user namespace\n  support.  This allows the code to code to compile with user namespaces\n  enabled and removes the assumption there is only the initial user\n  namespace.  Everything is converted except for the most complex of the\n  filesystems: autofs4, 9p, afs, ceph, cifs, coda, fuse, gfs2, ncpfs,\n  nfs, ocfs2 and xfs as those patches need a bit more review.\n\n  The strategy is to push kuid_t and kgid_t values are far down into\n  subsystems and filesystems as reasonable.  Leaving the make_kuid and\n  from_kuid operations to happen at the edge of userspace, as the values\n  come off the disk, and as the values come in from the network.\n  Letting compile type incompatible compile errors (present when user\n  namespaces are enabled) guide me to find the issues.\n\n  The most tricky areas have been the places where we had an implicit\n  union of uid and gid values and were storing them in an unsigned int.\n  Those places were converted into explicit unions.  I made certain to\n  handle those places with simple trivial patches.\n\n  Out of that work I discovered we have generic interfaces for storing\n  quota by projid.  I had never heard of the project identifiers before.\n  Adding full user namespace support for project identifiers accounts\n  for most of the code size growth in my git tree.\n\n  Ultimately there will be work to relax privlige checks from\n  \"capable(FOO)\" to \"ns_capable(user_ns, FOO)\" where it is safe allowing\n  root in a user names to do those things that today we only forbid to\n  non-root users because it will confuse suid root applications.\n\n  While I was pushing kuid_t and kgid_t changes deep into the audit code\n  I made a few other cleanups.  I capitalized on the fact we process\n  netlink messages in the context of the message sender.  I removed\n  usage of NETLINK_CRED, and started directly using current-\u003etty.\n\n  Some of these patches have also made it into maintainer trees, with no\n  problems from identical code from different trees showing up in\n  linux-next.\n\n  After reading through all of this code I feel like I might be able to\n  win a game of kernel trivial pursuit.\"\n\nFix up some fairly trivial conflicts in netfilter uid/git logging code.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (107 commits)\n  userns: Convert the ufs filesystem to use kuid/kgid where appropriate\n  userns: Convert the udf filesystem to use kuid/kgid where appropriate\n  userns: Convert ubifs to use kuid/kgid\n  userns: Convert squashfs to use kuid/kgid where appropriate\n  userns: Convert reiserfs to use kuid and kgid where appropriate\n  userns: Convert jfs to use kuid/kgid where appropriate\n  userns: Convert jffs2 to use kuid and kgid where appropriate\n  userns: Convert hpfs to use kuid and kgid where appropriate\n  userns: Convert btrfs to use kuid/kgid where appropriate\n  userns: Convert bfs to use kuid/kgid where appropriate\n  userns: Convert affs to use kuid/kgid wherwe appropriate\n  userns: On alpha modify linux_to_osf_stat to use convert from kuids and kgids\n  userns: On ia64 deal with current_uid and current_gid being kuid and kgid\n  userns: On ppc convert current_uid from a kuid before printing.\n  userns: Convert s390 getting uid and gid system calls to use kuid and kgid\n  userns: Convert s390 hypfs to use kuid and kgid where appropriate\n  userns: Convert binder ipc to use kuids\n  userns: Teach security_path_chown to take kuids and kgids\n  userns: Add user namespace support to IMA\n  userns: Convert EVM to deal with kuids and kgids in it\u0027s hmac computation\n  ...\n"
    },
    {
      "commit": "cdf8c58a3546443073cab77d07a88ee439319c19",
      "tree": "a5490a4cbfcd9241d14795feb74f7b8dee29d0d1",
      "parents": [
        "a7d9cfe97b450b27c82e6e41b2fde6214708560d"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Feb 07 16:24:33 2012 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Sep 21 03:13:09 2012 -0700"
      },
      "message": "userns: Convert ecryptfs to use kuid/kgid where appropriate\n\nCc: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCc: Dustin Kirkland \u003cdustin.kirkland@gazzang.com\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "8335eafc2859e1a26282bef7c3d19f3d68868b8a",
      "tree": "a551e696fdf0fb75c975d45efe0d4b8729c5671c",
      "parents": [
        "64e6651dcc10e9d2cc6230208a8e6c2cfd19ae18"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Thu Sep 13 12:00:56 2012 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Fri Sep 14 09:36:03 2012 -0700"
      },
      "message": "eCryptfs: Copy up attributes of the lower target inode after rename\n\nAfter calling into the lower filesystem to do a rename, the lower target\ninode\u0027s attributes were not copied up to the eCryptfs target inode. This\nresulted in the eCryptfs target inode staying around, rather than being\nevicted, because i_nlink was not updated for the eCryptfs inode. This\nalso meant that eCryptfs didn\u0027t do the final iput() on the lower target\ninode so it stayed around, as well. This would result in a failure to\nfree up space occupied by the target file in the rename() operation.\nBoth target inodes would eventually be evicted when the eCryptfs\nfilesystem was unmounted.\n\nThis patch calls fsstack_copy_attr_all() after the lower filesystem\ndoes its -\u003erename() so that important inode attributes, such as i_nlink,\nare updated at the eCryptfs layer. ecryptfs_evict_inode() is now called\nand eCryptfs can drop its final reference on the lower inode.\n\nhttp://launchpad.net/bugs/561129\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nTested-by: Colin Ian King \u003ccolin.king@canonical.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e [2.6.39+]\n"
    },
    {
      "commit": "64e6651dcc10e9d2cc6230208a8e6c2cfd19ae18",
      "tree": "02d39c615e1c9a290e5f969bd74497f7e6dc280a",
      "parents": [
        "7149f2558d5b5b988726662fe58b1c388337805b"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Sep 12 18:38:00 2012 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Fri Sep 14 09:35:54 2012 -0700"
      },
      "message": "eCryptfs: Call lower -\u003eflush() from ecryptfs_flush()\n\nSince eCryptfs only calls fput() on the lower file in\necryptfs_release(), eCryptfs should call the lower filesystem\u0027s\n-\u003eflush() from ecryptfs_flush().\n\nIf the lower filesystem implements -\u003eflush(), then eCryptfs should try\nto flush out any dirty pages prior to calling the lower -\u003eflush(). If\nthe lower filesystem does not implement -\u003eflush(), then eCryptfs has no\nneed to do anything in ecryptfs_flush() since dirty pages are now\nwritten out to the lower filesystem in ecryptfs_release().\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "7149f2558d5b5b988726662fe58b1c388337805b",
      "tree": "480ceac128f2c1779bd2a7f97b2075571fb19e95",
      "parents": [
        "e9bd8f1624cb0f647867d6cced79cb26ef3651bf"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Sep 12 18:02:46 2012 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Fri Sep 14 09:11:29 2012 -0700"
      },
      "message": "eCryptfs: Write out all dirty pages just before releasing the lower file\n\nFixes a regression caused by:\n\n821f749 eCryptfs: Revert to a writethrough cache model\n\nThat patch reverted some code (specifically, 32001d6f) that was\nnecessary to properly handle open() -\u003e mmap() -\u003e close() -\u003e dirty pages\n-\u003e munmap(), because the lower file could be closed before the dirty\npages are written out.\n\nRather than reapplying 32001d6f, this approach is a better way of\nensuring that the lower file is still open in order to handle writing\nout the dirty pages. It is called from ecryptfs_release(), while we have\na lock on the lower file pointer, just before the lower file gets the\nfinal fput() and we overwrite the pointer.\n\nhttps://launchpad.net/bugs/1047261\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReported-by: Artemy Tregubenko \u003cme@arty.name\u003e\nTested-by: Artemy Tregubenko \u003cme@arty.name\u003e\nTested-by: Colin Ian King \u003ccolin.king@canonical.com\u003e\n"
    },
    {
      "commit": "410fc4ce8a373a3c35c73ac2c7c29f2bac6400bf",
      "tree": "8a9e2e29f13a3ba93689f4afb951d64ffc10c9d5",
      "parents": [
        "630103ea2c286de3e7ea9ae6b1035d91ef051413",
        "5f5b331d5c21228a6519dcb793fc1629646c51a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 02 10:56:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 02 10:56:34 2012 -0700"
      },
      "message": "Merge tag \u0027ecryptfs-3.6-rc1-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs\n\nPull ecryptfs fixes from Tyler Hicks:\n - Fixes a bug when the lower filesystem mount options include \u0027acl\u0027,\n   but the eCryptfs mount options do not\n - Cleanups in the messaging code\n - Better handling of empty files in the lower filesystem to improve\n   usability.  Failed file creations are now cleaned up and empty lower\n   files are converted into eCryptfs during open().\n - The write-through cache changes are being reverted due to bugs that\n   are not easy to fix.  Stability outweighs the performance\n   enhancements here.\n - Improvement to the mount code to catch unsupported ciphers specified\n   in the mount options\n\n* tag \u0027ecryptfs-3.6-rc1-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:\n  eCryptfs: check for eCryptfs cipher support at mount\n  eCryptfs: Revert to a writethrough cache model\n  eCryptfs: Initialize empty lower files when opening them\n  eCryptfs: Unlink lower inode when ecryptfs_create() fails\n  eCryptfs: Make all miscdev functions use daemon ptr in file private_data\n  eCryptfs: Remove unused messaging declarations and function\n  eCryptfs: Copy up POSIX ACL and read-only flags from lower mount\n"
    },
    {
      "commit": "0b1d90119a479ca3b70d871da4b2ce6c4ef9eff0",
      "tree": "bfaeb99d55bbe8d36b136dc28c961a6212b269bc",
      "parents": [
        "bc65a1215eda3e067801e0a8f3eeffb62800f355"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jul 20 12:09:19 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 29 21:24:17 2012 +0400"
      },
      "message": "ecryptfs_lookup_interpose(): allocate dentry_info first\n\nless work on failure that way\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bc65a1215eda3e067801e0a8f3eeffb62800f355",
      "tree": "f53aefd935c6e99ffe24dee94a322083536d3004",
      "parents": [
        "faf02010290e202e275c1bf94ca9dd808bf85607"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jul 20 12:03:41 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 29 21:24:16 2012 +0400"
      },
      "message": "sanitize ecryptfs_lookup()\n\n* -\u003elookup() never gets hit with . or ..\n* dentry it gets is unhashed, so unless we had gone and hashed it ourselves, there\u0027s\nno need to d_drop() the sucker.\n* wrong name printed in one of the printks (NULL, in fact)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "765927b2d508712d320c8934db963bbe14c3fcec",
      "tree": "97acdb14fae285764def396c4ed01d4d5c93e76a",
      "parents": [
        "bf349a447059656ebe63fb4fd1ccb27ac1da22ad"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 26 21:58:53 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 23 00:01:29 2012 +0400"
      },
      "message": "switch dentry_open() to struct path, make it grab references itself\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3b8b487114c95ef6db5fef708ef69bfb5209014e",
      "tree": "c5216f4440c67582c17287ca43ff7a3edf17e733",
      "parents": [
        "8fc37ec54cd8e37193b0d42809b785ff19661c34"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 25 11:38:56 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 23 00:01:02 2012 +0400"
      },
      "message": "ecryptfs: don\u0027t reinvent the wheels, please - use struct completion\n\n... and keep the sodding requests on stack - they are small enough.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8fc37ec54cd8e37193b0d42809b785ff19661c34",
      "tree": "12040128b054dc1b163433358b0fd2b8ec843762",
      "parents": [
        "32a7991b6a9c758e4e2b8166c5e1cc7563c3dcde"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jul 19 09:18:15 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 23 00:00:58 2012 +0400"
      },
      "message": "don\u0027t expose I_NEW inodes via dentry-\u003ed_inode\n\n\td_instantiate(dentry, inode);\n\tunlock_new_inode(inode);\n\nis a bad idea; do it the other way round...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9249e17fe094d853d1ef7475dd559a2cc7e23d42",
      "tree": "fa80a6044c14b38994d232c0e05cb7365800adf2",
      "parents": [
        "f015f1267b23d3530d3f874243fb83cb5f443005"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Jun 25 12:55:37 2012 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:38:34 2012 +0400"
      },
      "message": "VFS: Pass mount flags to sget()\n\nPass mount flags to sget() so that it can use them in initialising a new\nsuperblock before the set function is called.  They could also be passed to the\ncompare function.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "312b63fba9e88a0dcf800834b8ede8716bcc1e17",
      "tree": "a069e3b9ff142912fd09f09a22466707d31c6812",
      "parents": [
        "ebfc3b49a7ac25920cb5be5445f602e51d2ea559"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 10 18:09:36 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:34:50 2012 +0400"
      },
      "message": "don\u0027t pass nameidata * to vfs_create()\n\nall we want is a boolean flag, same as the method gets now\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ebfc3b49a7ac25920cb5be5445f602e51d2ea559",
      "tree": "c3241f875dd04ab9f63b4e7ded7ed206e4df1b9f",
      "parents": [
        "72bd866a01fc62ccbc466f3eb7599b14c937e96b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 10 18:05:36 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:34:47 2012 +0400"
      },
      "message": "don\u0027t pass nameidata to -\u003ecreate()\n\nboolean \"does it have to be exclusive?\" flag is passed instead;\nLocal filesystem should just ignore it - the object is guaranteed\nnot to be there yet.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "00cd8dd3bf95f2cc8435b4cac01d9995635c6d0b",
      "tree": "d44be476ced0317ae79f28853734ebe2210ad38e",
      "parents": [
        "201f956e43d4542723514e024d948011dd766d43"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 10 17:13:09 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:34:32 2012 +0400"
      },
      "message": "stop passing nameidata to -\u003elookup()\n\nJust the flags; only NFS cares even about that, but there are\nlegitimate uses for such argument.  And getting rid of that\ncompletely would require splitting -\u003elookup() into a couple\nof methods (at least), so let\u0027s leave that alone for now...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0b728e1911cbe6e24020727c3870628b9653f32a",
      "tree": "cd975921b28300d62f3aca2fc37eef28af89b959",
      "parents": [
        "fa3c56bbda6c2ac2a57d96ba501dbe85cccd312b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 10 16:03:43 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:34:14 2012 +0400"
      },
      "message": "stop passing nameidata * to -\u003ed_revalidate()\n\nJust the lookup flags.  Die, bastard, die...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5f5b331d5c21228a6519dcb793fc1629646c51a6",
      "tree": "8bbb3460ec1929a808acb0a707f16f5c1d0d435b",
      "parents": [
        "821f7494a77627fb1ab539591c57b22cdca702d6"
      ],
      "author": {
        "name": "Tim Sally",
        "email": "tsally@atomicpeace.com",
        "time": "Thu Jul 12 19:10:24 2012 -0400"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Fri Jul 13 17:20:34 2012 -0700"
      },
      "message": "eCryptfs: check for eCryptfs cipher support at mount\n\nThe issue occurs when eCryptfs is mounted with a cipher supported by\nthe crypto subsystem but not by eCryptfs. The mount succeeds and an\nerror does not occur until a write. This change checks for eCryptfs\ncipher support at mount time.\n\nResolves Launchpad issue #338914, reported by Tyler Hicks in 03/2009.\nhttps://bugs.launchpad.net/ecryptfs/+bug/338914\n\nSigned-off-by: Tim Sally \u003ctsally@atomicpeace.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "821f7494a77627fb1ab539591c57b22cdca702d6",
      "tree": "561ee1768e62c120766c40c0b8fc8aa30b4f4a95",
      "parents": [
        "e3ccaa9761200952cc269b1f4b7d7bb77a5e071b"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Tue Jul 03 16:50:57 2012 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Fri Jul 13 16:46:06 2012 -0700"
      },
      "message": "eCryptfs: Revert to a writethrough cache model\n\nA change was made about a year ago to get eCryptfs to better utilize its\npage cache during writes. The idea was to do the page encryption\noperations during page writeback, rather than doing them when initially\nwriting into the page cache, to reduce the number of page encryption\noperations during sequential writes. This meant that the encrypted page\nwould only be written to the lower filesystem during page writeback,\nwhich was a change from how eCryptfs had previously wrote to the lower\nfilesystem in ecryptfs_write_end().\n\nThe change caused a few eCryptfs-internal bugs that were shook out.\nUnfortunately, more grave side effects have been identified that will\nforce changes outside of eCryptfs. Because the lower filesystem isn\u0027t\nconsulted until page writeback, eCryptfs has no way to pass lower write\nerrors (ENOSPC, mainly) back to userspace. Additionaly, it was reported\nthat quotas could be bypassed because of the way eCryptfs may sometimes\nopen the lower filesystem using a privileged kthread.\n\nIt would be nice to resolve the latest issues, but it is best if the\neCryptfs commits be reverted to the old behavior in the meantime.\n\nThis reverts:\n32001d6f \"eCryptfs: Flush file in vma close\"\n5be79de2 \"eCryptfs: Flush dirty pages in setattr\"\n57db4e8d \"ecryptfs: modify write path to encrypt page in writepage\"\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nTested-by: Colin King \u003ccolin.king@canonical.com\u003e\nCc: Colin King \u003ccolin.king@canonical.com\u003e\nCc: Thieu Le \u003cthieule@google.com\u003e\n"
    },
    {
      "commit": "e3ccaa9761200952cc269b1f4b7d7bb77a5e071b",
      "tree": "fce1240d5666184763da4b5fe3bfcfdf294faab6",
      "parents": [
        "8bc2d3cf612994a960c2e8eaea37f6676f67082a"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Jun 20 23:50:59 2012 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Sun Jul 08 12:51:45 2012 -0500"
      },
      "message": "eCryptfs: Initialize empty lower files when opening them\n\nHistorically, eCryptfs has only initialized lower files in the\necryptfs_create() path. Lower file initialization is the act of writing\nthe cryptographic metadata from the inode\u0027s crypt_stat to the header of\nthe file. The ecryptfs_open() path already expects that metadata to be\nin the header of the file.\n\nA number of users have reported empty lower files in beneath their\neCryptfs mounts. Most of the causes for those empty files being left\naround have been addressed, but the presence of empty files causes\nproblems due to the lack of proper cryptographic metadata.\n\nTo transparently solve this problem, this patch initializes empty lower\nfiles in the ecryptfs_open() error path. If the metadata is unreadable\ndue to the lower inode size being 0, plaintext passthrough support is\nnot in use, and the metadata is stored in the header of the file (as\nopposed to the user.ecryptfs extended attribute), the lower file will be\ninitialized.\n\nThe number of nested conditionals in ecryptfs_open() was getting out of\nhand, so a helper function was created. To avoid the same nested\nconditional problem, the conditional logic was reversed inside of the\nhelper function.\n\nhttps://launchpad.net/bugs/911507\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCc: John Johansen \u003cjohn.johansen@canonical.com\u003e\nCc: Colin Ian King \u003ccolin.king@canonical.com\u003e\n"
    },
    {
      "commit": "8bc2d3cf612994a960c2e8eaea37f6676f67082a",
      "tree": "88e1eb6d53540891b82d2a861146b213442de205",
      "parents": [
        "2ecaf55db6dcf4dd25e1ef8d5eb6068e3286a20f"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Tue May 22 15:09:50 2012 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Sun Jul 08 12:51:44 2012 -0500"
      },
      "message": "eCryptfs: Unlink lower inode when ecryptfs_create() fails\n\necryptfs_create() creates a lower inode, allocates an eCryptfs inode,\ninitializes the eCryptfs inode and cryptographic metadata attached to\nthe inode, and then writes the metadata to the header of the file.\n\nIf an error was to occur after the lower inode was created, an empty\nlower file would be left in the lower filesystem. This is a problem\nbecause ecryptfs_open() refuses to open any lower files which do not\nhave the appropriate metadata in the file header.\n\nThis patch properly unlinks the lower inode when an error occurs in the\nlater stages of ecryptfs_create(), reducing the chance that an empty\nlower file will be left in the lower filesystem.\n\nhttps://launchpad.net/bugs/872905\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCc: John Johansen \u003cjohn.johansen@canonical.com\u003e\nCc: Colin Ian King \u003ccolin.king@canonical.com\u003e\n"
    },
    {
      "commit": "2ecaf55db6dcf4dd25e1ef8d5eb6068e3286a20f",
      "tree": "daa89105f89d64579d5ee04a376e4e31543871cf",
      "parents": [
        "566968866555a19d0a78e0bfa845cd249a7eeae2"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Mon Jun 11 09:47:47 2012 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Sun Jul 08 12:51:44 2012 -0500"
      },
      "message": "eCryptfs: Make all miscdev functions use daemon ptr in file private_data\n\nNow that a pointer to a valid struct ecryptfs_daemon is stored in the\nprivate_data of an opened /dev/ecryptfs file, the remaining miscdev\nfunctions can utilize the pointer rather than looking up the\necryptfs_daemon at the beginning of each operation.\n\nThe security model of /dev/ecryptfs is simplified a little bit with this\npatch. Upon opening /dev/ecryptfs, a per-user ecryptfs_daemon is\nregistered. Another daemon cannot be registered for that user until the\nlast file reference is released. During the lifetime of the\necryptfs_daemon, access checks are not performed on the /dev/ecryptfs\noperations because it is assumed that the application securely handles\nthe opened file descriptor and does not unintentionally leak it to\nprocesses that are not trusted.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCc: Sasha Levin \u003clevinsasha928@gmail.com\u003e\n"
    },
    {
      "commit": "566968866555a19d0a78e0bfa845cd249a7eeae2",
      "tree": "c6f7b2713ba055d564105bab4fb996ab2dfe889f",
      "parents": [
        "069ddcda37b2cf5bb4b6031a944c0e9359213262"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Mon Jun 11 09:39:54 2012 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Sun Jul 08 12:51:43 2012 -0500"
      },
      "message": "eCryptfs: Remove unused messaging declarations and function\n\nThese are no longer needed.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCc: Sasha Levin \u003clevinsasha928@gmail.com\u003e\n"
    },
    {
      "commit": "069ddcda37b2cf5bb4b6031a944c0e9359213262",
      "tree": "c47a199c2a84947a3f98370008c001c85e05b2e6",
      "parents": [
        "bd0a521e88aa7a06ae7aabaed7ae196ed4ad867a"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Mon Jun 11 15:42:32 2012 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Sun Jul 08 12:51:43 2012 -0500"
      },
      "message": "eCryptfs: Copy up POSIX ACL and read-only flags from lower mount\n\nWhen the eCryptfs mount options do not include \u0027-o acl\u0027, but the lower\nfilesystem\u0027s mount options do include \u0027acl\u0027, the MS_POSIXACL flag is not\nflipped on in the eCryptfs super block flags. This flag is what the VFS\nchecks in do_last() when deciding if the current umask should be applied\nto a newly created inode\u0027s mode or not. When a default POSIX ACL mask is\nset on a directory, the current umask is incorrectly applied to new\ninodes created in the directory. This patch ignores the MS_POSIXACL flag\npassed into ecryptfs_mount() and sets the flag on the eCryptfs super\nblock depending on the flag\u0027s presence on the lower super block.\n\nAdditionally, it is incorrect to allow a writeable eCryptfs mount on top\nof a read-only lower mount. This missing check did not allow writes to\nthe read-only lower mount because permissions checks are still performed\non the lower filesystem\u0027s objects but it is best to simply not allow a\nrw mount on top of ro mount. However, a ro eCryptfs mount on top of a rw\nmount is valid and still allowed.\n\nhttps://launchpad.net/bugs/1009207\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReported-by: Stefan Beller \u003cstefanbeller@googlemail.com\u003e\nCc: John Johansen \u003cjohn.johansen@canonical.com\u003e\n"
    },
    {
      "commit": "8dc6780587c99286c0d3de747a2946a76989414a",
      "tree": "d553ed49a104387f898bc93bc226821b83d49583",
      "parents": [
        "60d65f1f07a7d81d3eb3b91fc13fca80f2fdbb12"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Mon Jun 11 09:24:11 2012 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Fri Jul 06 15:51:12 2012 -0500"
      },
      "message": "eCryptfs: Gracefully refuse miscdev file ops on inherited/passed files\n\nFile operations on /dev/ecryptfs would BUG() when the operations were\nperformed by processes other than the process that originally opened the\nfile. This could happen with open files inherited after fork() or file\ndescriptors passed through IPC mechanisms. Rather than calling BUG(), an\nerror code can be safely returned in most situations.\n\nIn ecryptfs_miscdev_release(), eCryptfs still needs to handle the\nrelease even if the last file reference is being held by a process that\ndidn\u0027t originally open the file. ecryptfs_find_daemon_by_euid() will not\nbe successful, so a pointer to the daemon is stored in the file\u0027s\nprivate_data. The private_data pointer is initialized when the miscdev\nfile is opened and only used when the file is released.\n\nhttps://launchpad.net/bugs/994247\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReported-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nTested-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\n"
    },
    {
      "commit": "60d65f1f07a7d81d3eb3b91fc13fca80f2fdbb12",
      "tree": "f1551f13ab37a33d1ce9c4e1377823cea7256556",
      "parents": [
        "9fe79d7600497ed8a95c3981cbe5b73ab98222f0"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Mon Jun 11 10:21:34 2012 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Tue Jul 03 16:34:10 2012 -0700"
      },
      "message": "eCryptfs: Fix lockdep warning in miscdev operations\n\nDon\u0027t grab the daemon mutex while holding the message context mutex.\nAddresses this lockdep warning:\n\n ecryptfsd/2141 is trying to acquire lock:\n  (\u0026ecryptfs_msg_ctx_arr[i].mux){+.+.+.}, at: [\u003cffffffffa029c213\u003e] ecryptfs_miscdev_read+0x143/0x470 [ecryptfs]\n\n but task is already holding lock:\n  (\u0026(*daemon)-\u003emux){+.+...}, at: [\u003cffffffffa029c2ec\u003e] ecryptfs_miscdev_read+0x21c/0x470 [ecryptfs]\n\n which lock already depends on the new lock.\n\n the existing dependency chain (in reverse order) is:\n\n -\u003e #1 (\u0026(*daemon)-\u003emux){+.+...}:\n        [\u003cffffffff810a3b8d\u003e] lock_acquire+0x9d/0x220\n        [\u003cffffffff8151c6da\u003e] __mutex_lock_common+0x5a/0x4b0\n        [\u003cffffffff8151cc64\u003e] mutex_lock_nested+0x44/0x50\n        [\u003cffffffffa029c5d7\u003e] ecryptfs_send_miscdev+0x97/0x120 [ecryptfs]\n        [\u003cffffffffa029b744\u003e] ecryptfs_send_message+0x134/0x1e0 [ecryptfs]\n        [\u003cffffffffa029a24e\u003e] ecryptfs_generate_key_packet_set+0x2fe/0xa80 [ecryptfs]\n        [\u003cffffffffa02960f8\u003e] ecryptfs_write_metadata+0x108/0x250 [ecryptfs]\n        [\u003cffffffffa0290f80\u003e] ecryptfs_create+0x130/0x250 [ecryptfs]\n        [\u003cffffffff811963a4\u003e] vfs_create+0xb4/0x120\n        [\u003cffffffff81197865\u003e] do_last+0x8c5/0xa10\n        [\u003cffffffff811998f9\u003e] path_openat+0xd9/0x460\n        [\u003cffffffff81199da2\u003e] do_filp_open+0x42/0xa0\n        [\u003cffffffff81187998\u003e] do_sys_open+0xf8/0x1d0\n        [\u003cffffffff81187a91\u003e] sys_open+0x21/0x30\n        [\u003cffffffff81527d69\u003e] system_call_fastpath+0x16/0x1b\n\n -\u003e #0 (\u0026ecryptfs_msg_ctx_arr[i].mux){+.+.+.}:\n        [\u003cffffffff810a3418\u003e] __lock_acquire+0x1bf8/0x1c50\n        [\u003cffffffff810a3b8d\u003e] lock_acquire+0x9d/0x220\n        [\u003cffffffff8151c6da\u003e] __mutex_lock_common+0x5a/0x4b0\n        [\u003cffffffff8151cc64\u003e] mutex_lock_nested+0x44/0x50\n        [\u003cffffffffa029c213\u003e] ecryptfs_miscdev_read+0x143/0x470 [ecryptfs]\n        [\u003cffffffff811887d3\u003e] vfs_read+0xb3/0x180\n        [\u003cffffffff811888ed\u003e] sys_read+0x4d/0x90\n        [\u003cffffffff81527d69\u003e] system_call_fastpath+0x16/0x1b\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "9fe79d7600497ed8a95c3981cbe5b73ab98222f0",
      "tree": "802b94cedec2570945e323e4f2de4ba8fc8cb2b1",
      "parents": [
        "ff826b2b5b269ad440afa686ede879ccabfda387"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Tue Jun 12 11:17:01 2012 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Tue Jul 03 16:34:09 2012 -0700"
      },
      "message": "eCryptfs: Properly check for O_RDONLY flag before doing privileged open\n\nIf the first attempt at opening the lower file read/write fails,\neCryptfs will retry using a privileged kthread. However, the privileged\nretry should not happen if the lower file\u0027s inode is read-only because a\nread/write open will still be unsuccessful.\n\nThe check for determining if the open should be retried was intended to\nbe based on the access mode of the lower file\u0027s open flags being\nO_RDONLY, but the check was incorrectly performed. This would cause the\nopen to be retried by the privileged kthread, resulting in a second\nfailed open of the lower file. This patch corrects the check to\ndetermine if the open request should be handled by the privileged\nkthread.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nAcked-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "5be79de2e1ffa19d871a494697cf76cddee93384"
}
