)]}'
{
  "log": [
    {
      "commit": "3c26ff6e499ee7e6f9f2bc7da5f2f30d80862ecf",
      "tree": "bd758d7f15f24aed225a64de77cc535785c50f96",
      "parents": [
        "fc14f2fef682df677d64a145256dbd263df2aa7b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 11:46:36 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:31 2010 -0400"
      },
      "message": "convert get_sb_nodev() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "85fe4025c616a7c0ed07bc2fc8c5371b07f3888c",
      "tree": "7a5db7accb6192f2911f2473b4e3191227b914cc",
      "parents": [
        "f991bd2e14210fb93d722cb23e54991de20e8a3d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Oct 23 11:19:54 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "fs: do not assign default i_ino in new_inode\n\nInstead of always assigning an increasing inode number in new_inode\nmove the call to assign it into those callers that actually need it.\nFor now callers that need it is estimated conservatively, that is\nthe call is added to all filesystems that do not assign an i_ino\nby themselves.  For a few more filesystems we can avoid assigning\nany inode number given that they aren\u0027t user visible, and for others\nit could be done lazily when an inode number is actually needed,\nbut that\u0027s left for later patches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "5a44a73b9015e89cfb280ba0534dfcbf1ef29d05",
      "tree": "ab735f09b52700de4e61c46d4199c6c17b64cab3",
      "parents": [
        "26daad8067f976a6e3622b42b0d80de9a53e8ad9"
      ],
      "author": {
        "name": "Felipe Contreras",
        "email": "felipe.contreras@gmail.com",
        "time": "Fri Sep 24 15:22:23 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 05 11:02:15 2010 +0200"
      },
      "message": "autofs4: Only declare function when CONFIG_COMPAT is defined\n\nThe patch solves the following warnings message when CONFIG_COMPAT\nis not defined:\n\nfs/autofs4/root.c:31: warning: ‘autofs4_root_compat_ioctl’ declared ‘static’ but never defined\n\nSigned-off-by: Felipe Contreras \u003cfelipe.contreras@gmail.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "00e300e1b682ea86fcb5216250722afd42686ab3",
      "tree": "ac3c5a6034aa669993487163eef4f757d2f803af",
      "parents": [
        "4f819a7899b06afcd7623ab9d00fd81503ad3e24"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Sep 14 23:00:34 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 21:10:46 2010 +0200"
      },
      "message": "BKL: Remove BKL from autofs4\n\nautofs4 uses the BKL only to guard its ioctl operations.\nThis can be trivially converted to use a mutex, as we have\ndone with most device drivers before.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\n"
    },
    {
      "commit": "5fc79d85d2ab7ce144bc75e06cab58126249afbb",
      "tree": "f6c4ca70e3905cbec541d925f4199c020fa61d8b",
      "parents": [
        "89596f20bb5f0f32c37abd337d995080e04519c8"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Aug 10 18:02:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:06 2010 -0700"
      },
      "message": "autofs4: remove unneeded null check in try_to_fill_dentry()\n\nAfter 97e7449a7ad: \"autofs4: fix indirect mount pending expire race\" we no\nlonger assumed that \"ino\" can be null.  The other null checks got removed\nbut this was one was missed.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9243f5bdd6637b2bb7dc254b54d9edf957ef17e",
      "tree": "254c0733f9d547651f467ed6502c7335804eaaf8",
      "parents": [
        "86a5ef7d777cdd61dfe82379d559dbea069aea3d"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Jul 04 00:15:07 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Aug 09 00:13:34 2010 +0200"
      },
      "message": "autofs/autofs4: Move compat_ioctl handling into fs\n\nHandling of autofs ioctl numbers does not need to be generic\nand can easily be done directly in autofs itself.\n\nThis also pushes the BKL into autofs and autofs4 ioctl\nmethods.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Autofs \u003cautofs@linux.kernel.org\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "7ca5ca60cba37fc4d8e99583da147faed3039ad0",
      "tree": "c68aaea107be75e0c48ed330716bcfc3f61f87a7",
      "parents": [
        "b81d67a50c0f3021d170466388bec3e7fc3abe75"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed May 26 14:42:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "fs/autofs4: use memdup_user\n\nUse memdup_user when user data is immediately copied into the allocated\nregion.  Elimination of the variable ads, which is no longer useful.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "578454ff7eab61d13a26b568f99a89a2c9edc881",
      "tree": "6abdaf9acdd797767c92cb53e04574d3c755779e",
      "parents": [
        "ec96e2fe954c23a54bfdf2673437a39e193a1822"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu May 20 18:07:20 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue May 25 15:08:26 2010 -0700"
      },
      "message": "driver core: add devname module aliases to allow module on-demand auto-loading\n\nThis adds:\n  alias: devname:\u003cname\u003e\nto some common kernel modules, which will allow the on-demand loading\nof the kernel module when the device node is accessed.\n\nIdeally all these modules would be compiled-in, but distros seems too\nmuch in love with their modularization that we need to cover the common\ncases with this new facility. It will allow us to remove a bunch of pretty\nuseless init scripts and modprobes from init scripts.\n\nThe static device node aliases will be carried in the module itself. The\nprogram depmod will extract this information to a file in the module directory:\n  $ cat /lib/modules/2.6.34-00650-g537b60d-dirty/modules.devname\n  # Device nodes to trigger on-demand module loading.\n  microcode cpu/microcode c10:184\n  fuse fuse c10:229\n  ppp_generic ppp c108:0\n  tun net/tun c10:200\n  dm_mod mapper/control c10:235\n\nUdev will pick up the depmod created file on startup and create all the\nstatic device nodes which the kernel modules specify, so that these modules\nget automatically loaded when the device node is accessed:\n  $ /sbin/udevd --debug\n  ...\n  static_dev_create_from_modules: mknod \u0027/dev/cpu/microcode\u0027 c10:184\n  static_dev_create_from_modules: mknod \u0027/dev/fuse\u0027 c10:229\n  static_dev_create_from_modules: mknod \u0027/dev/ppp\u0027 c108:0\n  static_dev_create_from_modules: mknod \u0027/dev/net/tun\u0027 c10:200\n  static_dev_create_from_modules: mknod \u0027/dev/mapper/control\u0027 c10:235\n  udev_rules_apply_static_dev_perms: chmod \u0027/dev/net/tun\u0027 0666\n  udev_rules_apply_static_dev_perms: chmod \u0027/dev/fuse\u0027 0666\n\nA few device nodes are switched to statically allocated numbers, to allow\nthe static nodes to work. This might also useful for systems which still run\na plain static /dev, which is completely unsafe to use with any dynamic minor\nnumbers.\n\nNote:\nThe devname aliases must be limited to the *common* and *single*instance*\ndevice nodes, like the misc devices, and never be used for conceptually limited\nsystems like the loop devices, which should rather get fixed properly and get a\ncontrol node for losetup to talk to, instead of creating a random number of\ndevice nodes in advance, regardless if they are ever used.\n\nThis facility is to hide the mess distros are creating with too modualized\nkernels, and just to hide that these modules are not compiled-in, and not to\npaper-over broken concepts. Thanks! :)\n\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Tigran Aivazian \u003ctigran@aivazian.fsnet.co.uk\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nSigned-Off-By: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "3663df70c028bc435d6f2ec532a4849db62d1656",
      "tree": "5ae705c680ac791d0caf1cc0c20ed02ae920b4de",
      "parents": [
        "d6c89d9aca0933d90ab926bf448b32f24a163792"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed May 19 15:08:17 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 22 17:44:18 2010 +0200"
      },
      "message": "autofs4: Pushdown the bkl from ioctl\n\nPushdown the bkl to autofs4_root_ioctl.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Autofs \u003cautofs@linux.kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "f7422464b57088071201cd94027662d8469f153b",
      "tree": "d6eea687462815fbcbe43aa6b273f672babd5f2e",
      "parents": [
        "b77b907fae863f3bc546a336a8bc5e660d371788"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Mon May 10 16:46:08 2010 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 10 09:48:10 2010 -0700"
      },
      "message": "autofs4-2.6.34-rc1 - fix link_count usage\n\nAfter commit 1f36f774b2 (\"Switch !O_CREAT case to use of do_last()\") in\n2.6.34-rc1 autofs direct mounts stopped working.  This is caused by\ncurrent-\u003elink_count being 0 when -\u003efollow_link() is called from\ndo_filp_open().\n\nI can\u0027t work out why this hasn\u0027t been seen before Als patch series.\n\nThis patch removes the autofs dependence on current-\u003elink_count.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "5b7e934d887c67fe093b61f1308bc2d9c49381ff",
      "tree": "6498bae20c1e90cdee8d4d3bbef6658868843ad1",
      "parents": [
        "3899167dbd6832a3d8d7171b425257ad46b6c40c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 24 00:28:52 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:07:54 2010 -0500"
      },
      "message": "Use kill_litter_super() in autofs4 -\u003ekill_sb()\n\n... and get rid of open-coding its guts (i.e. RIP autofs4_force_release())\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f598f9f1252b33410ffc52f51e117645ac5116c4",
      "tree": "78191ec2ccdf725c5fa8a8f23828c4761abe84ed",
      "parents": [
        "b1e4594ba097634e9436cc4c6ba95f70a2d627ff"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 23 20:08:53 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:07:53 2010 -0500"
      },
      "message": "Sanitize autofs_dev_ioctl_ismountpoint()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4b1ae27a96d9860e6c4348673e8fb6a0322511fe",
      "tree": "d9d195bfef3e8e746ef68adb4364516633d27313",
      "parents": [
        "60b341b778cc2929df16c0a504c91621b3c6a4ad"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 12:58:31 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 12:58:31 2010 -0500"
      },
      "message": "Revert \"autofs4: always use lookup for lookup\"\n\nThis reverts commit 213614d583748d00967a91cacd656f417efb36ce.\n\nAlas, -\u003ed_revalidate() can\u0027t rely on -\u003elookup() finishing what\nit\u0027s started; if d_alloc() in do_lookup() fails, we are not going\nto call -\u003elookup() at all.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "213614d583748d00967a91cacd656f417efb36ce",
      "tree": "f24b85cb8192af7f6723f3886fba3da55ccfbe0d",
      "parents": [
        "cb4b492ac7595aad10756fe0b04691f0965e0cfc"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Dec 15 16:45:51 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:19:58 2009 -0800"
      },
      "message": "autofs4: always use lookup for lookup\n\nWe need to be able to cope with the directory mutex being held during\n-\u003ed_revalidate() in some cases, but not all cases, and not necessarily by\nus.  Because we need to release the mutex when we call back to the daemon\nto do perform a mount we must be sure that it is us who holds the mutex so\nwe must redirect mount requests to -\u003elookup() if the mutex is held.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Yehuda Saheh \u003cyehuda@newdream.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb4b492ac7595aad10756fe0b04691f0965e0cfc",
      "tree": "e0737776e152e83c9d449086b631a975f165bcc7",
      "parents": [
        "e4d5ade7b54cf74efcf53ff3dcb09454c29d70cf"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Dec 15 16:45:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:19:58 2009 -0800"
      },
      "message": "autofs4: rename dentry to expiring in autofs4_lookup_expiring()\n\nIn autofs4_lookup_expiring() a declaration within the list traversal loop\nuses a declaration that has the same name as the function parameter.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Yehuda Saheh \u003cyehuda@newdream.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4d5ade7b54cf74efcf53ff3dcb09454c29d70cf",
      "tree": "8ba8009ed1b3bb67cf4429de4930b639c4f3ab86",
      "parents": [
        "c42c7f7e698fa888abbd50eb9c8e328fff68914f"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Dec 15 16:45:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:19:58 2009 -0800"
      },
      "message": "autofs4: rename dentry to active in autofs4_lookup_active()\n\nIn autofs4_lookup_active() a declaration within the list traversal loop\nuses a declaration that has the same name as the function parameter.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Yehuda Saheh \u003cyehuda@newdream.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c42c7f7e698fa888abbd50eb9c8e328fff68914f",
      "tree": "cdcc21d21cdf2f695cba0298db75c609060e87e6",
      "parents": [
        "6510c9d8595adcee2b0dc86408bc432a8dd7d652"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Dec 15 16:45:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:19:58 2009 -0800"
      },
      "message": "autofs4: eliminate d_unhashed in path walk checks\n\nWe unhash the dentry (in a subsequent patch) in -\u003ed_revalidate() in order\nto send mount requests to -\u003elookup().  But then we can not rely on\nd_unhased() to give reliable results because it may be called at any time\nby any code path.  The d_unhashed() function is used by __simple_empty()\nin the path walking callbacks but autofs mount point dentrys should have\nno directories at all so a list_empty() on d_subdirs should be (and is)\nsufficient.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Yehuda Saheh \u003cyehuda@newdream.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6510c9d8595adcee2b0dc86408bc432a8dd7d652",
      "tree": "a0c9540de9004686633c2eb339d32ef24907fc2f",
      "parents": [
        "90387c9c1d5787aeb7dfdfc90c8f8aeaeed7ad0e"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Dec 15 16:45:47 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:19:58 2009 -0800"
      },
      "message": "autofs4: cleanup active and expire lookup\n\nThe lookup functions for active and expiring dentrys use parameters that\ncan be easily obtained on entry so we change the call to to take just the\ndentry.  This makes the subsequent change, to send all lookups to\n-\u003elookup(), a bit cleaner.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Yehuda Saheh \u003cyehuda@newdream.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90387c9c1d5787aeb7dfdfc90c8f8aeaeed7ad0e",
      "tree": "79733f21cccb7ddb958d8638ebf199611660a9f1",
      "parents": [
        "aa952eb26d4344fdad44c104f3c298d3130c53da"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Dec 15 16:45:46 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:19:58 2009 -0800"
      },
      "message": "autofs4: renamer unhashed to active in autofs4_lookup()\n\nRename the variable unhashed to active in autofs4_lookup() to better\nreflect its usage.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Yehuda Saheh \u003cyehuda@newdream.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aa952eb26d4344fdad44c104f3c298d3130c53da",
      "tree": "4a49859b272d8d42ae7fa68c5d30f6aa2fd82742",
      "parents": [
        "36b6413ef301d30f60037e497ecb902897895473"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Dec 15 16:45:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:19:58 2009 -0800"
      },
      "message": "autofs4: use autofs_info for pending flag\n\nEliminate the use of the d_lock spin lock by using the autofs super block\ninfo spin lock.  This reduces the number of spin locks we use by one and\nmakes the code for the following patch (to redirect -\u003ed_revalidate() to\n-\u003elookup()) a little simpler.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Yehuda Saheh \u003cyehuda@newdream.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36b6413ef301d30f60037e497ecb902897895473",
      "tree": "6f1e4ce514d691b02d2506fed5780e5b4dc0f6b1",
      "parents": [
        "c4cd70b3e3e95cc2201a00edf6deb52327d73c6b"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Dec 15 16:45:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:19:57 2009 -0800"
      },
      "message": "autofs4: use helper function for need mount check\n\nDefine simple helper function for checking if we need to trigger a mount.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Yehuda Saheh \u003cyehuda@newdream.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4cd70b3e3e95cc2201a00edf6deb52327d73c6b",
      "tree": "20150b87f5fdc0915db45937f727fd9e1aee0c74",
      "parents": [
        "4f8427d1903148f9753eb35c5f51a8a865457329"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Dec 15 16:45:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:19:57 2009 -0800"
      },
      "message": "autofs4: use helper functions for expiring list\n\nDefine some simple helper functions for adding and deleting entries on the\nexpiring dentry list.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Yehuda Saheh \u003cyehuda@newdream.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f8427d1903148f9753eb35c5f51a8a865457329",
      "tree": "8d40dc21c988f53dd154b61eb1ed66914bedf7a3",
      "parents": [
        "9ea9a886b0e8630e12cff515955e7f0f5be32cb1"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Dec 15 16:45:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:19:57 2009 -0800"
      },
      "message": "autofs4: use helper functions for active list handling\n\nDefine some simple helper functions for adding and deleting entries on the\nactive (and unhashed) dentry list.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Yehuda Saheh \u003cyehuda@newdream.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37d0892c5a94e208cf863e3b7bac014edee4346d",
      "tree": "642ecefb31c58451dc70964963b05412c269e831",
      "parents": [
        "cda9856f1ca62484433b9f734cd0fd553a5e4850"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Sep 01 11:26:22 2009 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 31 17:44:05 2009 -1000"
      },
      "message": "autofs4 - fix missed case when changing to use struct path\n\nIn the recent change by Al Viro that changes verious subsystems\nto use \"struct path\" one case was missed in the autofs4 module\nwhich causes mounts to no longer expire.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9393bd07cf218ca51d0e627653f906a9d76a9131",
      "tree": "402205fe6336028df48cd65b31da0482f0b0bb41",
      "parents": [
        "589ff870ed60a9ebdd5ec99ec3f5afe1282fe151"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 13:58:15 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch follow_down()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bab77ebf51e3902f608ecf08c9d34a0a52ac35a9",
      "tree": "710a8bba0a4f3738b32e4e5230ccf3665cd1b815",
      "parents": [
        "e64c390ca0b60fd2119331ef1fa888d7ea27e424"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:26:48 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch follow_up() to struct path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4e44b6852e03c915618ca6776b6697b436246b00",
      "tree": "264db0cf8dde04a604740508dbe5f5b929605467",
      "parents": [
        "73422811d290c628b4ddbf6830e5cd6fa42e84f1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 07 11:08:56 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:35:58 2009 -0400"
      },
      "message": "Get rid of path_lookup in autofs4\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "463aea1a1c49f1a7d4b50656dfd6c8bb33358b1b",
      "tree": "9eb2a2b926f239ea703343e26fbda5dde8663998",
      "parents": [
        "586c7e6a280580fd94b662bf486f9bb31098d14b"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Jun 09 16:26:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 09 16:59:03 2009 -0700"
      },
      "message": "autofs4: remove hashed check in validate_wait()\n\nThe recent -\u003elookup() deadlock correction required the directory inode\nmutex to be dropped while waiting for expire completion.  We were\nconcerned about side effects from this change and one has been identified.\n\nI saw several error messages.\n\nThey cause autofs to become quite confused and don\u0027t really point to the\nactual problem.\n\nThings like:\n\nhandle_packet_missing_direct:1376: can\u0027t find map entry for (43,1827932)\n\nwhich is usually totally fatal (although in this case it wouldn\u0027t be\nexcept that I treat is as such because it normally is).\n\ndo_mount_direct: direct trigger not valid or already mounted\n/test/nested/g3c/s1/ss1\n\nwhich is recoverable, however if this problem is at play it can cause\nautofs to become quite confused as to the dependencies in the mount tree\nbecause mount triggers end up mounted multiple times.  It\u0027s hard to\naccurately check for this over mounting case and automount shouldn\u0027t need\nto if the kernel module is doing its job.\n\nThere was one other message, similar in consequence of this last one but I\ncan\u0027t locate a log example just now.\n\nWhen checking if a mount has already completed prior to adding a new mount\nrequest to the wait queue we check if the dentry is hashed and, if so, if\nit is a mount point.  But, if a mount successfully completed while we\nslept on the wait queue mutex the dentry must exist for the mount to have\ncompleted so the test is not really needed.\n\nMounts can also be done on top of a global root dentry, so for the above\ncase, where a mount request completes and the wait queue entry has already\nbeen removed, the hashed test returning false can cause an incorrect\ncallback to the daemon.  Also, d_mountpoint() is not sufficient to check\nif a mount has completed for the multi-mount case when we don\u0027t have a\nreal mount at the base of the tree.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8985f3ac503b51c5abf8883fc4fb912e13b955c",
      "tree": "db5e81738c8dcfe62e3bf2132c35246b7d88429d",
      "parents": [
        "bc43f75cd9815833b27831600ccade672edb5e43"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Thu Apr 30 15:08:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 15:36:09 2009 -0700"
      },
      "message": "autofs4: fix incorrect return in autofs4_mount_busy()\n\nFix an obvious incorrect return status in autofs4_mount_busy().\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3eac8778a237d83a1e553eba0c6f4fd4b39eeec0",
      "tree": "0a546e57929310f0968d5e9b43afec08b86aeed5",
      "parents": [
        "66672fefaa91802fec51c3fe0cc55bc9baea5a2d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 07 11:12:46 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 20 23:02:50 2009 -0400"
      },
      "message": "autofs4: use memchr() in invalid_string()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cf2706a340ae98616d4e2a54900393e0e0b6b72c",
      "tree": "85a925228256ccdc1eb4453fefa3e09215dccee0",
      "parents": [
        "a939b96cccdb65df80a52447ec8e4a6d79c56dbb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 07 09:03:30 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 20 23:01:15 2009 -0400"
      },
      "message": "Fix AUTOFS_DEV_IOCTL_REQUESTER_CMD\n\nMissing conversion from kernel to userland dev_t; this sucker\nbreaks as soon as we get sufficiently many autofs mounts for\nnew_encode_dev(s_dev) !\u003d s_dev.\n\nNote: this is the minimal fix.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8f63aaa8b9239475fc580d4450f1141496655305",
      "tree": "eca8552ab842a7a2eecea104e5842f7bccadf09b",
      "parents": [
        "56fcef75117a153f298b3fe54af31053f53997dd"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Mar 31 15:24:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:23 2009 -0700"
      },
      "message": "autofs4: fix lookup deadlock\n\nA deadlock can occur when user space uses a signal (autofs version 4 uses\nSIGCHLD for this) to effect expire completion.\n\nThe order of events is:\n\nExpire process completes, but before being able to send SIGCHLD to it\u0027s parent\n...\n\nAnother process walks onto a different mount point and drops the directory\ninode semaphore prior to sending the request to the daemon as it must ...\n\nA third process does an lstat on on the expired mount point causing it to wait\non expire completion (unfortunately) holding the directory semaphore.\n\nThe mount request then arrives at the daemon which does an lstat and,\ndeadlock.\n\nFor some time I was concerned about releasing the directory semaphore around\nthe expire wait in autofs4_lookup as well as for the mount call back.  I\nfinally realized that the last round of changes in this function made the\nexpiring dentry and the lookup dentry separate and distinct so the check and\npossible wait can be done anywhere prior to the mount call back.  This patch\nmoves the check to just before the mount call back and inside the directory\ninode mutex release.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56fcef75117a153f298b3fe54af31053f53997dd",
      "tree": "56b7a86c811e5f83c232b0f21c5fcf894795fd42",
      "parents": [
        "00fcf2cb6f6bb421851c3ba062c0a36760ea6e53"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Mar 31 15:24:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:23 2009 -0700"
      },
      "message": "autofs4: cleanup expire code duplication\n\nA significant portion of the autofs_dev_ioctl_expire() and\nautofs4_expire_multi() functions is duplicated code.  This patch cleans that\nup.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Jeff Moyer \u003cjmoyer@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": "08f11513fa6f712506edb99327f7d051da9d860f",
      "tree": "4c174f5d9d573187687c4c638d90a4dee69cce1a",
      "parents": [
        "a488257ce5a55c53973671218791296463698d07"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 20 05:56:19 2009 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:00 2009 -0400"
      },
      "message": "constify dentry_operations: autofs, autofs4\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "90ffd467933eaf581e11fec51e7ba16fc9bd542d",
      "tree": "5519ce1e81b5e22e480199a453baac07975c9c79",
      "parents": [
        "335debee07f2d4187a6073d7764ed56bb2ae52f4"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jan 22 10:31:56 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jan 22 13:15:54 2009 +0300"
      },
      "message": "fs/Kconfig: move autofs, autofs4 out\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "bae8ec66554b27967f057a4b7888b09481ff1b8b",
      "tree": "89dffc974d4b6bb899d0419527a574a143c9bf6d",
      "parents": [
        "a92daf6ba1f9ace8584edc8eb557a77aa7c2c71d"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Jan 06 14:42:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:23 2009 -0800"
      },
      "message": "autofs4: fix string validation check order\n\nIn function validate_dev_ioctl() we check that the string we\u0027ve been sent\nis a valid path.  The function that does this check assumes the string is\nNULL terminated but our NULL termination check isn\u0027t done until after this\ncall.  This patch changes the order of the check.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@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": "a92daf6ba1f9ace8584edc8eb557a77aa7c2c71d",
      "tree": "a4734bb761e762af714710ab53c4b3c3c58516f8",
      "parents": [
        "41cfef2eb87694a8d64105c059b39f7bd6b7d4fe"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Jan 06 14:42:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:23 2009 -0800"
      },
      "message": "autofs4: make autofs type usage explicit\n\n- the type assigned at mount when no type is given is changed\n  from 0 to AUTOFS_TYPE_INDIRECT. This was done because 0 and\n  AUTOFS_TYPE_INDIRECT were being treated implicitly as the same\n  type.\n\n- previously, an offset mount had it\u0027s type set to\n  AUTOFS_TYPE_DIRECT|AUTOFS_TYPE_OFFSET but the mount control\n  re-implementation needs to be able distinguish all three types.\n  So this was changed to make the type setting explicit.\n\n- a type AUTOFS_TYPE_ANY was added for use by the re-implementation\n  when checking if a given path is a mountpoint. It\u0027s not really a\n  type as we use this to ask if a given path is a mountpoint in the\n  autofs_dev_ioctl_ismountpoint() function.\n\n- functions to set and test the autofs mount types have been added to\n  improve readability and make the type usage explicit.\n\n- the mount type is used from user space for the mount control\n  re-implementtion so, for consistency, all the definitions have\n  been moved to the user space include file include/linux/auto_fs4.h.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Jeff Moyer \u003cjmoyer@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": "41cfef2eb87694a8d64105c059b39f7bd6b7d4fe",
      "tree": "413fa68364341d94366b2d36e537464db739ad5e",
      "parents": [
        "730c9eeca9808fc2cfb506cc68c90aa330da17b0"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Jan 06 14:42:07 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:23 2009 -0800"
      },
      "message": "autofs4: fix var shadowed by local delaration\n\nA local definition of devid in autofs_dev_ioctl_ismountpoint() shadows\nthe fuction wide definition.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "730c9eeca9808fc2cfb506cc68c90aa330da17b0",
      "tree": "95de85ecf2ee6c071af151ba4e33f1017868a776",
      "parents": [
        "f70f582f0072f37790d2984647198deb3e7782a3"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Jan 06 14:42:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:23 2009 -0800"
      },
      "message": "autofs4: improve parameter usage\n\nThe parameter usage in the device node ioctl code uses arg1 and arg2 as\nparameter names.  This patch redefines the parameter names to reflect what\nthey actually are in an effort to make the code more readable.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Jeff Moyer \u003cjmoyer@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": "56ff5efad96182f4d3cb3dc6b07396762c658f16",
      "tree": "cb91f93aa2324573527165d56d230b606a3111ed",
      "parents": [
        "acfa4380efe77e290d3a96b11cd4c9f24f4fbb18"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 09:34:39 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 05 11:54:28 2009 -0500"
      },
      "message": "zero i_uid/i_gid on inode allocation\n\n... and don\u0027t bother in callers.  Don\u0027t bother with zeroing i_blocks,\nwhile we are at it - it\u0027s already been zeroed.\n\ni_mode is not worth the effort; it has no common default value.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2b828925652340277a889cbc11b2d0637f7cdaf7",
      "tree": "32fcb3d3e466fc419fad2d3717956a5b5ad3d35a",
      "parents": [
        "3a3b7ce9336952ea7b9564d976d068a238976c9d",
        "58e20d8d344b0ee083febb18c2b021d2427e56ca"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 11:29:12 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 11:29:12 2008 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tsecurity/keys/internal.h\n\tsecurity/keys/process_keys.c\n\tsecurity/keys/request_key.c\n\nFixed conflicts above by using the non \u0027tsk\u0027 versions.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "745ca2475a6ac596e3d8d37c2759c0fbe2586227",
      "tree": "f87c34bdfbc8542477b16a014bbb4e3b415b286a",
      "parents": [
        "88e67f3b8898c5ea81d2916dd5b8bc9c0c35ba13"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:22 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:22 2008 +1100"
      },
      "message": "CRED: Pass credentials through dentry_open()\n\nPass credentials through dentry_open() so that the COW creds patch can have\nSELinux\u0027s flush_unauthorized_files() pass the appropriate creds back to itself\nwhen it opens its null chardev.\n\nThe security_dentry_open() call also now takes a creds pointer, as does the\ndentry_open hook in struct security_operations.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "0eb790e3a2d872192af8ceff2cabff8594c56440",
      "tree": "e9dd5602d5c89b5c42e343d5bd677df34e8b8f9d",
      "parents": [
        "73c646e4afb658e601a46bf1b57925450307a119"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:38:46 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:38:46 2008 +1100"
      },
      "message": "CRED: Wrap task credential accesses in the autofs4 filesystem\n\nWrap access to task credentials so that they can be separated more easily from\nthe task_struct during the introduction of COW creds.\n\nChange most current-\u003e(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().\n\nChange some task-\u003ee?[ug]id to task_e?[ug]id().  In some places it makes more\nsense to use RCU directly rather than a convenient wrapper; these will be\naddressed by later patches.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: autofs@linux.kernel.org\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "96b0317906690997c16c7efffbc4c0fafcd6f7f2",
      "tree": "a99392c1393853f2ad953445be0165500fb5d3d8",
      "parents": [
        "bc9c4068388eea01d3b5da31016879f2341ecec5"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Thu Nov 06 12:53:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:17 2008 -0800"
      },
      "message": "autofs4: collect version check return\n\nThe function check_dev_ioctl_version() returns an error code upon fail but\nit isn\u0027t captured and returned in validate_dev_ioctl() as it should be.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Jeff Moyer \u003cjmoyer@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": "bc9c4068388eea01d3b5da31016879f2341ecec5",
      "tree": "3ff09783f4d5e3d19d8e5bda9b63419991726939",
      "parents": [
        "eefc488f96cdde6e152b45675b50bf380b95d99f"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Thu Nov 06 12:53:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:17 2008 -0800"
      },
      "message": "autofs4: correct offset mount expire check\n\nWhen checking a directory tree in autofs_tree_busy() we can incorrectly\ndecide that the tree isn\u0027t busy.  This happens for the case of an active\noffset mount as autofs4_follow_mount() follows past the active offset\nmount, which has an open file handle used for expires, causing the file\nhandle not to count toward the busyness check.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Jeff Moyer \u003cjmoyer@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": "8d7b48e0bc5fa01a818eac713d4cb0763090cd0e",
      "tree": "4477b2f23f8596901f38582242a40ff869fb798c",
      "parents": [
        "4b22ff13415fa30b6282c88da790c82b4c6e5127"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Oct 15 22:02:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:39 2008 -0700"
      },
      "message": "autofs4: add miscellaneous device for ioctls\n\nAdd a miscellaneous device to the autofs4 module for routing ioctls.  This\nprovides the ability to obtain an ioctl file handle for an autofs mount\npoint that is possibly covered by another mount.\n\nThe actual problem with autofs is that it can\u0027t reconnect to existing\nmounts.  Immediately one things of just adding the ability to remount\nautofs file systems would solve it, but alas, that can\u0027t work.  This is\nbecause autofs direct mounts and the implementation of \"on demand mount\nand expire\" of nested mount trees have the file system mounted on top of\nthe mount trigger dentry.\n\nTo resolve this a miscellaneous device node for routing ioctl commands to\nthese mount points has been implemented in the autofs4 kernel module and a\nlibrary added to autofs.  This provides the ability to open a file\ndescriptor for these over mounted autofs mount points.\n\nPlease refer to Documentation/filesystems/autofs4-mount-control.txt for a\ndiscussion of the problem, implementation alternatives considered and a\ndescription of the interface.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0f54d3e54fd7ac6723b2125d881f1b25d21ed16",
      "tree": "3215eeae82b4c81094227b78ad668943c69b46e5",
      "parents": [
        "bb979d7fc360bc37cbaff43a6fafceb897cb5e47"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Oct 15 22:02:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:39 2008 -0700"
      },
      "message": "autofs4: track uid and gid of last mount requester\n\nTrack the uid and gid of the last process to request a mount for on an\nautofs dentry.\n\n[akpm@linux-foundation.org: fix tpyo in comment]\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb979d7fc360bc37cbaff43a6fafceb897cb5e47",
      "tree": "b99f90b4cacebf1e8cd5725917fd14cf8d1c50ac",
      "parents": [
        "624ae5284516870657505103ada531c64dba2a9a"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Oct 15 22:02:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:39 2008 -0700"
      },
      "message": "autofs4: cleanup autofs mount type usage\n\nUsage of the AUTOFS_TYPE_* defines is a little confusing and appears\ninconsistent.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a447c0932445f92ce6f4c1bd020f62c5097a7842",
      "tree": "bacf05bc7f9764515cdd6f7dc5e2254776b4f160",
      "parents": [
        "54cebc68c81eacac41a21bdfe99dc889d3882c60"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 13 10:46:57 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:10:37 2008 -0700"
      },
      "message": "vfs: Use const for kernel parser table\n\nThis is a much better version of a previous patch to make the parser\ntables constant. Rather than changing the typedef, we put the \"const\" in\nall the various places where its required, allowing the __initconst\nexception for nfsroot which was the cause of the previous trouble.\n\nThis was posted for review some time ago and I believe its been in -mm\nsince then.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Alexander Viro \u003caviro@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59af1584bf33810639cb98d79856021253e2177c",
      "tree": "dbb7261a2abdef5f1716b27417f8b2b61d42b418",
      "parents": [
        "8f3f655da7288504c1013621090ecc940173ae1c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Aug 24 07:24:41 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 25 01:18:09 2008 -0400"
      },
      "message": "[PATCH] fix -\u003ellseek() for a bunch of directories\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aa55ddf340c9fa3f303ee16bbf35887e42c50304",
      "tree": "62194eef352ef852e6da1a9a3b685d2f56ac9c3b",
      "parents": [
        "06a3598552dc3b2b30eb18bd53bbac2a901489d7"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:33 2008 -0700"
      },
      "message": "autofs4: remove unused ioctls\n\nThe ioctls AUTOFS_IOC_TOGGLEREGHOST and AUTOFS_IOC_ASKREGHOST were added\nseveral years ago but what they were intended for has never been\nimplemented (as far as I\u0027m aware noone uses them) so remove them.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@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": "06a3598552dc3b2b30eb18bd53bbac2a901489d7",
      "tree": "bb209268deac3b12d63d07c67a76ba10561f6a11",
      "parents": [
        "ec6e8c7d3f9073336ec7b2eed3fcda6f922087c3"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: reorganize expire pending wait function calls\n\nThis patch re-orgnirzes the checking for and waiting on active expires and\nelininates redundant checks.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Jeff Moyer \u003cjmoyer@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": "ec6e8c7d3f9073336ec7b2eed3fcda6f922087c3",
      "tree": "f88f8c2c972477e64f29ad619b9f42f6d5dcf961",
      "parents": [
        "6e60a9ab5f5d314735467752f623072f5b75157a"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix direct mount pending expire race - correction\n\nAppologies, somehow I seem to have sent an out dated version of this\npatch. Here is an additional patch that brings the patch up to date.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Jeff Moyer \u003cjmoyer@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": "6e60a9ab5f5d314735467752f623072f5b75157a",
      "tree": "1a42df40e6fad52bd6be74970af8eb56870fe6ba",
      "parents": [
        "97e7449a7ad883bf9f516fc970778d75999c7843"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix direct mount pending expire race\n\nFor direct and offset type mounts that are covered by another mount we\ncannot check the AUTOFS_INF_EXPIRING flag during a path walk which leads\nto lookups walking into an expiring mount while it is being expired.\n\nFor example, for the direct multi-mount map entry with a couple of\noffsets:\n\n/race/mm1  /      \u003cserver1\u003e:/\u003cpath1\u003e\n           /om1   \u003cserver2\u003e:/\u003cpath2\u003e\n           /om2   \u003cserver1\u003e:/\u003cpath3\u003e\n\nan autofs trigger mount is mounted on /race/mm1 and when accessed it is\nover mounted and trigger mounts made for /race/mm1/om1 and /race/mm1/om2.\nSo it isn\u0027t possible for path walks to see the expiring flag at all and\nthey happily walk into the file system while it is expiring.\n\nWhen expiring these mounts follow_down() must stop at the autofs mount and\nall processes must block in the -\u003efollow_link() method (except the daemon)\nuntil the expire is complete.  This is done by decrementing the d_mounted\nfield of the autofs trigger mount root dentry until the expire is\ncompleted.  In -\u003efollow_link() all processes wait on the expire and the\nmount following is completed for the daemon until the expire is complete.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Jeff Moyer \u003cjmoyer@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": "97e7449a7ad883bf9f516fc970778d75999c7843",
      "tree": "903f6de243847eb12d1a372b271b15046ecdc774",
      "parents": [
        "26e81b3142f1ba497d4cd0365c13661684b784ce"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix indirect mount pending expire race\n\nThe selection of a dentry for expiration and the setting of the\nAUTOFS_INF_EXPIRING flag isn\u0027t done atomically which can lead to lookups\nwalking into an expiring mount.\n\nWhat happens is that an expire is initiated by the daemon and a dentry is\nselected for expire but, since there is no lock held between the selection\nand setting of the expiring flag, a process may find the flag clear and\ncontinue walking into the mount tree at the same time the daemon attempts\nthe expire it.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@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": "26e81b3142f1ba497d4cd0365c13661684b784ce",
      "tree": "b21545ceca70a0e93da1e4e6b19b5dcb99549d2d",
      "parents": [
        "ff9cd499d6258952385cb2f12e9a3c0908fd5786"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix pending checks\n\nThere are two cases for which a dentry that has a pending mount request\ndoes not wait for completion.  One is via autofs4_revalidate() and the\nother via autofs4_follow_link().\n\nIn revalidate, after the mount point directory is created, but before the\nmount is done, the check in try_to_fill_dentry() can can fail to send the\ndentry to the wait queue since the dentry is positive and the lookup flags\nmay contain only LOOKUP_FOLLOW.  Although we don\u0027t trigger a mount for the\nLOOKUP_FOLLOW flag, if ther\u0027s one pending we might as well wait and use\nthe mounted dentry for the lookup.\n\nIn autofs4_follow_link() the dentry is not checked to see if it is pending\nso it may fail to call try_to_fill_dentry() and not wait for mount\ncompletion.\n\nA dentry that is pending must always be sent to the wait queue.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@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": "ff9cd499d6258952385cb2f12e9a3c0908fd5786",
      "tree": "6614b95a82361c7a69fe52168db5836e313bd366",
      "parents": [
        "c72305b5472522299bb6f45b736080128eb1c822"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: cleanup redundant readir code\n\nThe mount triggering functionality of readdir and related functions is no\nlonger used (and is quite broken as well).  The unused portions have been\nremoved.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@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": "c72305b5472522299bb6f45b736080128eb1c822",
      "tree": "0dc2c0c553d302358df0b54676ef4be82d47fb6c",
      "parents": [
        "eb3b176796b0e53fd26fce86847231542eb0d198"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: indirect dentry must almost always be positive\n\nWe have been seeing mount requests comming to the automount daemon for\nkeys of the form \"\u003cmap key\u003e/\u003cnon key directory\u003e\" which are lookups for\ninvalid map keys.  But we can check for this in the kernel module and\nreturn a fail immediately, without having to send a request to the daemon.\n\nIt is possible to recognise these requests are invalid based on whether\nthe request dentry is negative and its relation to the autofs file system\nroot.\n\nFor example, given the indirect multi-mount map entry:\n\nidm1  \\\n    /mm1  \u003cserver\u003e:/\u003cpath1\u003e\n    /mm2  \u003cserver\u003e:/\u003cpath2\u003e\n\nFor a request to mount idm1, IS_ROOT((idm1)-\u003ed_parent) will be always be\ntrue and the dentry may be negative.  But directories idm1/mm1 and\nidm1/mm2 will always be created as part of the mount request for idm1.  So\nany mount request within idm1 itself must have a positive dentry otherwise\nthe map key is invalid.\n\nIn version 4 these multi-mount entries are all mounted and umounted as a\nsingle request and in version 5 the directories idm1/mm1 and idm1/mm2 are\ncreated and an autofs fs mounted on them to act as a mount trigger so the\nabove is also true.\n\nThis also holds true for the autofs version 4 pseudo direct mount feature.\n When this feature is used without the \"--ghost\" option automount(8) will\ncreate internal submounts as we go down the map key paths which are\nessentially normal indirect mounts for which the above holds.  If the\n\"--ghost\" option is given the directories for map keys are created at\ndaemon startup so valid map entries correspond to postive dentries in the\nautofs fs.\n\nautofs version 5 direct mount maps are similar except that the IS_ROOT\ncheck is not needed.  This has been addressed in a previous patch tittled\n\"autofs4 - detect invalid direct mount requests\".\n\nFor example, given the direct multi-mount map entry:\n\n/test/dm1  \\\n    /mm1  \u003cserver\u003e:/\u003cpath1\u003e\n    /mm2  \u003cserver\u003e:/\u003cpath2\u003e\n\nAn autofs fs is mounted on /test/dm1 as a trigger mount and when a mount\nis triggered for /test/dm1, the multi-mount offset directories\n/test/dm1/mm1 and /test/dm1/mm2 are created and an autofs fs is mounted on\nthem to act as mount triggers.  So valid direct mount requests must always\nhave a positive dentry if they correspond to a valid map entry.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@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": "eb3b176796b0e53fd26fce86847231542eb0d198",
      "tree": "85bd1a2e79e92d1ff52714aa19888ef7e4f80638",
      "parents": [
        "296f7bf78bc5c7a4d772aea580ce800d14040d1a"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: detect invalid direct mount requests\n\nautofs v5 direct and offset mounts within an autofs filesystem are\ntriggered by existing autofs triger mounts so the mount point dentry must\nbe positive.  If the mount point dentry is negative then the trigger\ndoesn\u0027t exist so we can return fail immediately.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Jeff Moyer \u003cjmoyer@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": "296f7bf78bc5c7a4d772aea580ce800d14040d1a",
      "tree": "794e3ae197d75b1a03511fefb4f87ca89caa54ac",
      "parents": [
        "e64be33ccaceaca67c84237dff8805b861398eab"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix waitq memory leak\n\nIf an autofs mount becomes catatonic before autofs4_wait_release() is\ncalled the wait queue counter will not be decremented down to zero and the\nentry will never be freed.  There are also races decrementing the wait\ncounter in the wait release function.  To deal with this the counter needs\nto be updated while holding the wait queue mutex and waiters need to be\nwoken up unconditionally when the wait is removed from the queue to ensure\nwe eventually free the wait.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e64be33ccaceaca67c84237dff8805b861398eab",
      "tree": "574c0eed196ac6115e0f042c1e4564d1b85474d2",
      "parents": [
        "f4c7da02615bebcaf89f15a8d055922f515160b8"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: check kernel communication pipe is valid for write\n\nIt is possible for an autofs mount to become catatonic (and for the daemon\ncommunication pipe to become NULL) after a wait has been initiallized but\nbefore the request has been sent to the daemon.  We need to check for this\nbefore sending the request packet.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4c7da02615bebcaf89f15a8d055922f515160b8",
      "tree": "1da0aa09fd27b35628562648b5da5bf3af9d2d8b",
      "parents": [
        "a1362fe92f1bde687b3a9e93d6b8d105d0a84f74"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: add missing kfree\n\nIt see that the patch tittled \"autofs4 - fix pending mount race\" is\nmissing a change that I had recently made.\n\nIt\u0027s missing a kfree for the case mutex_lock_interruptible() fails\nto aquire the wait queue mutex.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Jeff Moyer \u003cjmoyer@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": "a1362fe92f1bde687b3a9e93d6b8d105d0a84f74",
      "tree": "b176c2494ea23b1842a8b408247f02058533dda5",
      "parents": [
        "5a11d4d0ee1ff284271f7265929d07ea4a1168a6"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix pending mount race\n\nClose a race between a pending mount that is about to finish and a new\nlookup for the same directory.\n\nProcess P1 triggers a mount of directory foo.  It sets\nDCACHE_AUTOFS_PENDING in the -\u003elookup routine, creates a waitq entry for\n\u0027foo\u0027, and calls out to the daemon to perform the mount.  The autofs\ndaemon will then create the directory \u0027foo\u0027, using a new dentry that will\nbe hashed in the dcache.\n\nBefore the mount completes, another process, P2, tries to walk into the\n\u0027foo\u0027 directory.  The vfs path walking code finds an entry for \u0027foo\u0027 and\ncalls the revalidate method.  Revalidate finds that the entry is not\nPENDING (because PENDING was never set on the dentry created by the\nmkdir), but it does find the directory is empty.  Revalidate calls\ntry_to_fill_dentry, which sets the PENDING flag and then calls into the\nautofs4 wait code to trigger or wait for a mount of \u0027foo\u0027.  The wait code\nfinds the entry for \u0027foo\u0027 and goes to sleep waiting for the completion of\nthe mount.\n\nYet another process, P3, tries to walk into the \u0027foo\u0027 directory.  This\nprocess again finds a dentry in the dcache for \u0027foo\u0027, and calls into the\nautofs revalidate code.\n\nThe revalidate code finds that the PENDING flag is set, and so calls\ntry_to_fill_dentry.\n\na) try_to_fill_dentry sets the PENDING flag redundantly for this\n   dentry, then calls into the autofs4 wait code.\n\nb) the autofs4 wait code takes the waitq mutex and searches for an\n   entry for \u0027foo\u0027\n\nBetween a and b, P1 is woken up because the mount completed.  P1 takes the\nwait queue mutex, clears the PENDING flag from the dentry, and removes the\nwaitqueue entry for \u0027foo\u0027 from the list.\n\nWhen it releases the waitq mutex, P3 (eventually) acquires it.  At this\ntime, it looks for an existing waitq for \u0027foo\u0027, finds none, and so creates\na new one and calls out to the daemon to mount the \u0027foo\u0027 directory.\n\nNow, the reason that three processes are required to trigger this race is\nthat, because the PENDING flag is not set on the dentry created by mkdir,\nthe window for the race would be way to slim for it to ever occur.\nBasically, between the testing of d_mountpoint(dentry) and the taking of\nthe waitq mutex, the mount would have to complete and the daemon would\nhave to be woken up, and that in turn would have to wake up P1.  This is\nsimply impossible.  Add the third process, though, and it becomes slightly\nmore likely.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a11d4d0ee1ff284271f7265929d07ea4a1168a6",
      "tree": "4b9b76486afa5d9fc29216df069c5a557e09011a",
      "parents": [
        "70b52a0a5005ce6a0ceec56e97222437a0ba7506"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix waitq locking\n\nThe autofs4_catatonic_mode() function accesses the wait queue without any\nlocking but can be called at any time.  This could lead to a possible\ndouble free of the name field of the wait and a double fput of the daemon\ncommunication pipe or an fput of a NULL file pointer.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70b52a0a5005ce6a0ceec56e97222437a0ba7506",
      "tree": "e2b45dff98eae948dd34d4cc36f54796bd01104f",
      "parents": [
        "6d5cb926fa0162b1e62f37c117cc7ce763cfcbb9"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Wed Jul 23 21:30:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: use struct qstr in waitq.c\n\nThe autofs_wait_queue already contains all of the fields of the\nstruct qstr, so change it into a qstr.\n\nThis patch, from Jeff Moyer, has been modified a liitle by myself.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d5cb926fa0162b1e62f37c117cc7ce763cfcbb9",
      "tree": "275f1154f7724c6b86c3ec9e2c36ff8f96c3e55d",
      "parents": [
        "c432c2586a0811c7d0030d78f0993568bc889a6f"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "autofs4: use lookup intent flags to trigger mounts\n\nWhen an open(2) call is made on an autofs mount point directory that\nalready exists and the O_DIRECTORY flag is not used the needed mount\ncallback to the daemon is not done. This leads to the path walk\ncontinuing resulting in a callback to the daemon with an incorrect\nkey. open(2) is called without O_DIRECTORY by the \"find\" utility but\nthis should be handled properly anyway.\n\nThis happens because autofs needs to use the lookup flags to decide\nwhen to callback to the daemon to perform a mount to prevent mount\nstorms. For example, an autofs indirect mount map that has the \"browse\"\noption will have the mount point directories are pre-created and the\nstat(2) call made by a color ls against each directory will cause all\nthese directories to be mounted. It is unfortunate we need to resort\nto this but mount maps can be quite large. Additionally, if a user\nmanually umounts an autofs indirect mount the directory isn\u0027t removed\nwhich also leads to this situation.\n\nTo resolve this autofs needs to use the lookup intent flags to enable\nit to make this decision. This patch adds this check and triggers a\ncall back if any of the lookup intent flags are set as all these calls\nwarrant a mount attempt be requested.\n\nI know that external VFS code which uses the lookup flags is something\nthat the VFS would like to eliminate but I have no choice as I can\u0027t\nsee any other way to do this. A VFS dentry or inode operation callback\nwhich returns the lookup \"type\" (requires a definition) would be\nsufficient. But this change is needed now and I\u0027m not aware of the form\nthat coming VFS changes will take so I\u0027m not willing to propose anything\nalong these lines.\n\nIf anyone can provide an alternate method I would be happy to use it.\n\n[akpm@linux-foundation.org: fix build for concurrent VFS changes]\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jeff Moyer \u003cjmoyer@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": "c432c2586a0811c7d0030d78f0993568bc889a6f",
      "tree": "b5d711345120af6cc6ae67836d0773a5857e3e8c",
      "parents": [
        "ef581a742874ebc4c28d24b374c78b762144ebdc"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "autofs4: don\u0027t release directory mutex if called in oz_mode\n\nSince we now delay hashing of dentrys until the -\u003emkdir() call, droping\nand re-taking the directory mutex within the -\u003elookup() function when we\nare being called by user space is not needed.  This can lead to a race\nwhen other processes are attempting to access the same directory during\nmount point directory creation.\n\nIn this case we need to hang onto the mutex to ensure we don\u0027t get user\nprocesses trying to create a mount request for a newly created dentry\nafter the mount point entry has already been created.  This ensures that\nwhen we need to check a dentry passed to autofs4_wait(), if it is hashed,\nit is always the mount point dentry and not a new dentry created by\nanother lookup during directory creation.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef581a742874ebc4c28d24b374c78b762144ebdc",
      "tree": "8dfced9c0fc8e18a3b81aac9fae2b843d251b8a6",
      "parents": [
        "2576737873dc1d9ea461a5955a5f6779b569a350"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "autofs4: fix symlink name allocation\n\nThe length of the symlink name has been moved but it needs to be set\nbefore allocating space for it in the dentry info struct.  This corrects a\nmistake in a recent patch.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2576737873dc1d9ea461a5955a5f6779b569a350",
      "tree": "aad8f5cf52c872f307275328022a3bcb94a6c342",
      "parents": [
        "caf7da3d5d4d9dd873eb52d025d8cc63b89f1fdb"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "autofs4: use look aside list for lookups\n\nA while ago a patch to resolve a deadlock during directory creation was\nmerged.  This delayed the hashing of lookup dentrys until the -\u003emkdir()\n(or -\u003esymlink()) operation completed to ensure we always went through\n-\u003elookup() instead of also having processes go through -\u003erevalidate() so\nour VFS locking remained consistent.\n\nNow we are seeing a couple of side affects of that change in situations\nwith heavy mount activity.\n\nTwo cases have been identified:\n\n1) When a mount request is triggered, due to the delayed hashing, the\n   directory created by user space for the mount point doesn\u0027t have the\n   DCACHE_AUTOFS_PENDING flag set.  In the case of an autofs multi-mount\n   where a tree of mount point directories are created this can lead to\n   the path walk continuing rather than the dentry being sent to the wait\n   queue to wait for request completion.  This is because, if the pending\n   flag isn\u0027t set, the criteria for deciding this is a mount in progress\n   fails to hold, namely that the dentry is not a mount point and has no\n   subdirectories.\n\n2) A mount request dentry is initially created negative and unhashed.\n   It remains this way until the -\u003emkdir() callback completes.  Since it\n   is unhashed a fresh dentry is used when the user space mount request\n   creates the mount point directory.  This leaves the original dentry\n   negative and unhashed.  But revalidate has no way to tell the VFS that\n   the dentry has changed, other than to force another -\u003elookup() by\n   returning false, which is at best wastefull and at worst not possible.\n   This results in an -ENOENT return from the original path walk when in\n   fact the mount succeeded.\n\nTo resolve this we need to ensure that the same dentry is used in all\ncalls to -\u003elookup() during the course of a mount request.  This patch\nachieves that by adding the initial dentry to a look aside list and\nremoves it at -\u003emkdir() or -\u003esymlink() completion (or when the dentry is\nreleased), since these are the only create operations autofs4 supports.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "caf7da3d5d4d9dd873eb52d025d8cc63b89f1fdb",
      "tree": "9e53359c28c4247eae9685a5f9c63a5c0a54a7b1",
      "parents": [
        "5f6f4f28b6ba543beef8bad91aa6f69c7ffeee51"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "autofs4: revert - redo lookup in ttfd\n\nThis patch series enables the use of a single dentry for lookups prior to\nthe dentry being hashed and so we no longer need to redo the lookup.  This\npatch reverts the patch of commit\n033790449ba9c4dcf8478a87693d33df625c23b5.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f6f4f28b6ba543beef8bad91aa6f69c7ffeee51",
      "tree": "72f3aac56d49c7bea7940f8d8b6e8ca559e3ae1c",
      "parents": [
        "391b52f98cf2e9bff227dad8bf9ea206fec43fa4"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "autofs4: don\u0027t make expiring dentry negative\n\nCorrect the error of making a positive dentry negative after it has been\ninstantiated.\n\nThe code that makes this error attempts to re-use the dentry from a\nconcurrent expire and mount to resolve a race and the dentry used for the\nlookup must be negative for mounts to trigger in the required cases.  The\nfact is that the dentry doesn\u0027t need to be re-used because all that is\nneeded is to preserve the flag that indicates an expire is still\nincomplete at the time of the mount request.\n\nThis change uses the the dentry to check the flag and wait for the expire\nto complete then discards it instead of attempting to re-use it.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "868eb7a8539d3e8c494209be2b1f4084a274dfef",
      "tree": "98fa82b87e638fc7898fd5a73db3e87b5d542d66",
      "parents": [
        "9d2de6ad2a78bb8b60bf7a54e6043dca44e9a801"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu May 01 04:35:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:04:01 2008 -0700"
      },
      "message": "autofs: path_{get,put}() cleanups\n\nHere are some more places where path_{get,put}() can be used instead of\ndput()/mntput() pair.  Besides that it fixes a bug in autofs4_mount_busy()\nwhere mntput() was called before dput().\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d2de6ad2a78bb8b60bf7a54e6043dca44e9a801",
      "tree": "6e5b7aea51d739ba0e26e4d795d53093ded3933a",
      "parents": [
        "033790449ba9c4dcf8478a87693d33df625c23b5"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Thu May 01 04:35:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:04:01 2008 -0700"
      },
      "message": "autofs4: fix incorrect return from root.c:try_to_fill_dentry()\n\nJeff Moyer has identified a case where the autofs4 function\nroot.c:try_to_fill_dentry() can return -EBUSY when it should return 0.\n\nJeff\u0027s description of the way this happens is:\n\n\"automount starts an expire for directory d.  after the callout to the daemon,\nbut before the rmdir, another process tries to walk into the same directory.\nIt puts itself onto the waitq, pending the expiration.\n\nWhen the expire finishes, the second process is woken up.  In\ntry_to_fill_dentry, it does this check:\n\n                status \u003d d_invalidate(dentry);\n                if (status !\u003d -EBUSY)\n                        return -EAGAIN;\n\nAnd status is EBUSY.  The dentry still has a non-zero d_inode, and the\nflags do not contain LOOKUP_CONTINUE or LOOKUP_DIRECTORY\n\nSo, we fall through and return -EBUSY to the caller.\"\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "033790449ba9c4dcf8478a87693d33df625c23b5",
      "tree": "41cae3efc255949643166e9dad79bc8fc00893b8",
      "parents": [
        "cab0936aac8aa907c6bb814c2cf26385478f254b"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Thu May 01 04:35:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:04:01 2008 -0700"
      },
      "message": "autofs4: fix execution order race in mount request code\n\nJeff Moyer has identified a race in due to an execution order dependency\nin the autofs4 function root.c:try_to_fill_dentry().\n\nJeff\u0027s description of this race is:\n\n\"P1 does a lookup of /mount/submount/foo.  Since the VFS can\u0027t find an entry\nfor \"foo\" under /mount/submount, it calls into the autofs4 kernel module to\nallocate a new dentry, D1.  The kernel creates a new waitq for this lookup and\ncalls the daemon to perform the mount.\n\nThe daemon performs a mkdir of the \"foo\" directory under /mount/submount,\nwhich ends up creating a *new* dentry, D2.\n\nThen, P2 does a lookup of /mount/submount/foo.  The VFS path walking logic\nfinds a dentry in the dcache, D2, and calls the revalidate function with this.\n In the autofs4 revalidate code, we then trigger a mount, since the dentry is\nan empty directory that isn\u0027t a mountpoint, and so set DCACHE_AUTOFS_PENDING\nand call into the wait code to trigger the mount.\n\nThe wait code finds our existing waitq entry (since it is keyed off of the\ndirectory name) and adds itself to the list of waiters.\n\nAfter the daemon finishes the mount, it calls back into the kernel to release\nthe waiters.  When this happens, P1 is woken up and goes about clearing the\nDCACHE_AUTOFS_PENDING flag, but it does this in D1!  So, given that P1 in our\ncase is a program that will immediately try to access a file under\n/mount/submount/foo, we end up finding the dentry D2 which still has the\npending flag set, and we set out to wait for a mount *again*!\n\nSo, one way to address this is to re-do the lookup at the end of\ntry_to_fill_dentry, and to clear the pending flag on the hashed dentry.  This\nseems a sane approach to me.\"\n\nAnd Jeff\u0027s patch does this.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cab0936aac8aa907c6bb814c2cf26385478f254b",
      "tree": "7f0bcb8838f9cc2fd461a6468464042c6b94e987",
      "parents": [
        "afec570c32a0d116e3c68af583ed1d11110f12fc"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Thu May 01 04:35:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:04:01 2008 -0700"
      },
      "message": "autofs4: check for invalid dentry in getpath\n\nCatch invalid dentry when calculating its path.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afec570c32a0d116e3c68af583ed1d11110f12fc",
      "tree": "1246c52aeccc6daa629e4d8daa523573aabe686e",
      "parents": [
        "c32e026efc1e1a4f9e36babebf123f2b88205b0b"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Thu May 01 04:35:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:04:01 2008 -0700"
      },
      "message": "autofs4: fix sparse warning in waitq.c:autofs4_expire_indirect()\n\nRe-order some code in expire.c:autofs4_expire_indirect() to avoid compile\nwarning, reported by Harvey Harrison:\n\n CHECK   fs/autofs4/expire.c\nfs/autofs4/expire.c:383:2: warning: context imbalance in\n\u0027autofs4_expire_indirect\u0027 - unexpected unlock\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nReviewed-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e24eea728068bbeb6a3c500b848f883a20bf225",
      "tree": "93e79da649723e2766237505b22725fec395f139",
      "parents": [
        "530b6412786d7f83592c1a8e2445541ed73fca76"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Apr 30 00:55:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "fs: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f249fdd8c19ff65825c0be67212cdf22e556668e",
      "tree": "d8eb3c461ef5ba0f6692e237548c755f47bbf8b4",
      "parents": [
        "58b250daff6a24518813975143c8433d9d5b684f"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Apr 29 00:59:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:01 2008 -0700"
      },
      "message": "autofs4: fix sparse warning in root.c\n\nfs/autofs4/root.c:536:23: warning: symbol \u0027ino\u0027 shadows an earlier one\nfs/autofs4/root.c:510:22: originally declared here\n\nThere is no need to redeclare, we are at the end of the loop and in\nthe next iteration of the loop, ino will be reset.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d957f9bf87da74f420424d16ece005202bbebd3",
      "tree": "363d4770c0c74a536524c99ccd2762ce96ee9bbe",
      "parents": [
        "4ac9137858e08a19f29feac4e1f4df7c268b0ba5"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Introduce path_put()\n\n* Add path_put() functions for releasing a reference to the dentry and\n  vfsmount of a struct path in the right order\n\n* Switch from path_release(nd) to path_put(\u0026nd-\u003epath)\n\n* Rename dput_path() to path_put_conditional()\n\n[akpm@linux-foundation.org: fix cifs]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003clinux-fsdevel@vger.kernel.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ac9137858e08a19f29feac4e1f4df7c268b0ba5",
      "tree": "f5b5d84fd12fcc2b0ba0e7ce1a79ff381ad8f5dd",
      "parents": [
        "c5e725f33b733a77de622e91b6ba5645fcf070be"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Embed a struct path into struct nameidata instead of nd-\u003e{dentry,mnt}\n\nThis is the central patch of a cleanup series. In most cases there is no good\nreason why someone would want to use a dentry for itself. This series reflects\nthat fact and embeds a struct path into nameidata.\n\nTogether with the other patches of this series\n- it enforced the correct order of getting/releasing the reference count on\n  \u003cdentry,vfsmount\u003e pairs\n- it prepares the VFS for stacking support since it is essential to have a\n  struct path in every place where the stack can be traversed\n- it reduces the overall code size:\n\nwithout patch series:\n   text    data     bss     dec     hex filename\n5321639  858418  715768 6895825  6938d1 vmlinux\n\nwith patch series:\n   text    data     bss     dec     hex filename\n5320026  858418  715768 6894212  693284 vmlinux\n\nThis patch:\n\nSwitch from nd-\u003e{dentry,mnt} to nd-\u003epath.{dentry,mnt} everywhere.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix cifs]\n[akpm@linux-foundation.org: fix smack]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aef97cb9031755422c23cc64f7a089a0fbbcca7a",
      "tree": "7c8cca03733cadce05bcbb0fa919282fe688c818",
      "parents": [
        "969729d56ef2c8b709844bc0071805f86dfbd2f9"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Feb 08 04:21:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:39 2008 -0800"
      },
      "message": "mount options: fix autofs4\n\nAdd uid\u003d and gid\u003d options to /proc/mounts for autofs4 filesystems.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a47afb0f9d794d525a372c8d69902147cc88222a",
      "tree": "7bd67280e2edc1c3b1803d4a93bee794088e9342",
      "parents": [
        "858d72ead4864da0fb0b89b919524125ce998e27"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:39:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: round up the API\n\nThe set of functions process_session, task_session, process_group and\ntask_pgrp is confusing, as the names can be mixed with each other when looking\nat the code for a long time.\n\nThe proposals are to\n* equip the functions that return the integer with _nr suffix to\n  represent that fact,\n* and to make all functions work with task (not process) by making\n  the common prefix of the same name.\n\nFor monotony the routines signal_session() and set_signal_session() are\nreplaced with task_session_nr() and set_task_session(), especially since they\nare only used with the explicit task-\u003esignal dereference.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c80544dc0b87bb65038355e7aafdc30be16b26ab",
      "tree": "176349304bec88a9de16e650c9919462e0dd453c",
      "parents": [
        "0e9663ee452ffce0d429656ebbcfe69417a30e92"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Oct 18 03:07:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:31 2007 -0700"
      },
      "message": "sparse pointer use of zero as null\n\nGet rid of sparse related warnings from places that use integer as NULL\npointer.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b63d50c438bd3a8910263e15c37ca8634b110c92",
      "tree": "d7198d3bd8c2ac7a6c93a8ab11b3167636b0b3cd",
      "parents": [
        "f035ac821bf8c36a558471e78c514a96202a1bda"
      ],
      "author": {
        "name": "Mariusz Kozlowski",
        "email": "m.kozlowski@tuxland.pl",
        "time": "Tue Oct 16 23:26:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:50 2007 -0700"
      },
      "message": "fs/autofs4/inode.c: kmalloc + memset conversion to kzalloc\n\n fs/autofs4/inode.c | 10467 -\u003e 10435 (-32 bytes)\n fs/autofs4/inode.o | 98576 -\u003e 98552 (-24 bytes)\n\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1864f7bd58351732593def024e73eca1f75bc352",
      "tree": "be7f048f3a41b257ece24805aa96453b81c78349",
      "parents": [
        "f4768ffd1d4b7b07ae2c4c3d93c9f99cd68e996c"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Aug 22 14:01:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Aug 22 19:52:46 2007 -0700"
      },
      "message": "autofs4: deadlock during create\n\nDue to inconsistent locking in the VFS between calls to lookup and\nrevalidate deadlock can occur in the automounter.\n\nThe inconsistency is that the directory inode mutex is held for both lookup\nand revalidate calls when called via lookup_hash whereas it is held only\nfor lookup during a path walk.  Consequently, if the mutex is held during a\ncall to revalidate autofs4 can\u0027t release the mutex to callback the daemon\nas it can\u0027t know whether it owns the mutex.\n\nThis situation happens when a process tries to create a directory within an\nautomount and a second process also tries to create the same directory\nbetween the lookup and the mkdir.  Since the first process has dropped the\nmutex for the daemon callback, the second process takes it during\nrevalidate leading to deadlock between the autofs daemon and the second\nprocess when the daemon tries to create the mount point directory.\n\nAfter spending quite a bit of time trying to resolve this on more than one\noccassion, using rather complex and ulgy approaches, it turns out that just\ndelaying the hashing of the dentry until the create operation works fine.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d78e53c89a820471837e0cb91fe36b7be1a7c9de",
      "tree": "7f015a0c2b3584f56e1864a7621ffa033d911ccd",
      "parents": [
        "93ba0881176ace057bc3111c8bdd717a23cb75ed"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Thu May 10 22:23:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:36 2007 -0700"
      },
      "message": "Fix some coding-style errors in autofs\n\nFix coding style errors (extra spaces, long lines) in autofs and autofs4 files\nbeing modified for container/pidspace issues.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: \u003ccontainers@lists.osdl.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3724b129b5a1a1789a2dc5348685a236ae02479",
      "tree": "d664a2d672b62c9bde71992cdd8e1b7904f5e3d0",
      "parents": [
        "6d205f120547043de663315698dcf5f0eaa31b5c"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Wed Apr 11 23:28:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Apr 12 15:31:42 2007 -0700"
      },
      "message": "[PATCH] autofs4: fix race in unhashed dentry code\n\nCommit f50b6f8691cae2e0064c499dd3ef3f31142987f0 introduced a race in\nautofs4 between autofs_lookup_unhashed() and autofs_dentry_release().\n\nautofs_dentry_release() ends up clearing the -\u003edentry and -\u003einode members\nof autofs_info before removing it from the rehash list.  The list is\nprotected by the rehash lock in both functions, but since\nautofs_dentry_release() starts tearing the autofs_info struct down before\nremoving it from the list, autofs_lookup_unhashed() can get a autofs_info\nwith a NULL dentry.\n\nThis patch moves the clearing of -\u003edentry and -\u003einode after the removal\nfrom the rehash list.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9ffec48487849bc277de662a6c29aad64653b99",
      "tree": "42f848ada18ac6d241a952e55c765305b4278e90",
      "parents": [
        "f50b6f8691cae2e0064c499dd3ef3f31142987f0"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Feb 20 13:58:10 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 20 17:10:15 2007 -0800"
      },
      "message": "[PATCH] autofs4: check for directory re-create in lookup\n\nThis problem was identified and fixed some time ago by Jeff Moyer but it fell\nthrough the cracks somehow.\n\nIt is possible that a user space application could remove and re-create a\ndirectory during a request.  To avoid returning a failure from lookup\nincorrectly when our current dentry is unhashed we need to check if another\npositive, hashed dentry matching this one exists and if so return it instead\nof a fail.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f50b6f8691cae2e0064c499dd3ef3f31142987f0",
      "tree": "56c449af977772a42939afde5230c4809a057ffe",
      "parents": [
        "e8514478f63b95548a49576ba96b47edeb8596e0"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Feb 20 13:58:10 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 20 17:10:15 2007 -0800"
      },
      "message": "[PATCH] autofs4: fix another race between mount and expire\n\nJeff Moyer has identified a race between mount and expire.\n\nWhat happens is that during an expire the situation can arise that a directory\nis removed and another lookup is done before the expire issues a completion\nstatus to the kernel module.  In this case, since the the lookup gets a new\ndentry, it doesn\u0027t know that there is an expire in progress and when it posts\nits mount request, matches the existing expire request and waits for its\ncompletion.  ENOENT is then returned to user space from lookup (as the dentry\npassed in is now unhashed) without having performed the mount request.\n\nThe solution used here is to keep track of dentrys in this unhashed state and\nreuse them, if possible, in order to preserve the flags.  Additionally, this\ninfrastructure will provide the framework for the reintroduction of caching of\nmount fails removed earlier in development.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@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": "e8514478f63b95548a49576ba96b47edeb8596e0",
      "tree": "b5d7ac7970f6d9673653cf85de9ceaf2d2b2b417",
      "parents": [
        "22c8ca78f20724676b6006232bf06cc3e9299539"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Feb 20 13:58:09 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 20 17:10:15 2007 -0800"
      },
      "message": "[PATCH] autofs4: header file update\n\nThe current header file definitions for autofs version 5 have caused a couple\nof problems for application builds downstream.\n\nThis fixes the problem by separating the definitions.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee9b6d61a2a43c5952eb43283f8db284a4e70b8a",
      "tree": "afb0340e79d3e9d14f39df20e165ce2efe941b18",
      "parents": [
        "c5ef1c42c51b1b5b4a401a6517bdda30933ddbaf"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Mon Feb 12 00:55:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:47 2007 -0800"
      },
      "message": "[PATCH] Mark struct super_operations const\n\nThis patch is inspired by Arjan\u0027s \"Patch series to mark struct\nfile_operations and struct inode_operations const\".\n\nCompile tested with gcc \u0026 sparse.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "754661f143e70d66eae6c48532ca245aa05dec0e",
      "tree": "c3ed0f7f96061931e497ed92d2b21294756b4831",
      "parents": [
        "9c2e08c592cd357a8330c34def1e8ecfdcf53275"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:38 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:46 2007 -0800"
      },
      "message": "[PATCH] mark struct inode_operations const 1\n\nMany struct inode_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5cbded585d129d0226cb48ac4202b253c781be26",
      "tree": "fb24edc194a57ee81a3bf8a4dd8a95030dd0ad22",
      "parents": [
        "0743b86800cf1dfbf96df4a438938127bbe4476c"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Wed Dec 13 00:35:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:58 2006 -0800"
      },
      "message": "[PATCH] getting rid of all casts of k[cmz]alloc() calls\n\nRun this:\n\n\t#!/bin/sh\n\tfor f in $(grep -Erl \"\\([^\\)]*\\) *k[cmz]alloc\" *) ; do\n\t  echo \"De-casting $f...\"\n\t  perl -pi -e \"s/ ?\u003d ?\\([^\\)]*\\) *(k[cmz]alloc) *\\(/ \u003d \\1\\(/\" $f\n\tdone\n\nAnd then go through and reinstate those cases where code is casting pointers\nto non-pointers.\n\nAnd then drop a few hunks which conflicted with outstanding work.\n\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e, Ian Molton \u003cspyro@f2s.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Karsten Keil \u003ckkeil@suse.de\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Jaroslav Kysela \u003cperex@suse.cz\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a4669ed8ed982dab494c5d4f2b32921e5a6531d8",
      "tree": "08104d07393d7301a59f1f82c93c63475899139b",
      "parents": [
        "81ed19b076f518e793283ccbd004fd0888877201"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:43 2006 -0800"
      },
      "message": "[PATCH] autofs4: change uses of f_{dentry, vfsmnt} to use f_path\n\nChange all the uses of f_{dentry,vfsmnt} to f_path.{dentry,mnt} in the autofs4\nfilesystem.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c949d4eb40ce021b1abc3b63af23aa535662cb17",
      "tree": "054b4464c4968f9e07f65fe9680b483cae6e71df",
      "parents": [
        "595142e0490918af5ffae5a833a2b2acd7097c02"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Dec 06 20:39:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:43 2006 -0800"
      },
      "message": "[PATCH] autofs: fix error code path in autofs_fill_sb()\n\nWhen kernel is compiled with old version of autofs (CONFIG_AUTOFS_FS), and\nnew (observed at least with 5.x.x) automount deamon is started, kernel\ncorrectly reports incompatible version of kernel and userland daemon, but\nthen screws things up instead of correct handling of the error:\n\n autofs: kernel does not match daemon version\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n [ BUG: bad unlock balance detected! ]\n -------------------------------------\n automount/4199 is trying to release lock (\u0026type-\u003es_umount_key) at:\n [\u003cc0163b9e\u003e] get_sb_nodev+0x76/0xa4\n but there are no more locks to release!\n\n other info that might help us debug this:\n no locks held by automount/4199.\n\n stack backtrace:\n  [\u003cc0103b15\u003e] dump_trace+0x68/0x1b2\n  [\u003cc0103c77\u003e] show_trace_log_lvl+0x18/0x2c\n  [\u003cc01041db\u003e] show_trace+0xf/0x11\n  [\u003cc010424d\u003e] dump_stack+0x12/0x14\n  [\u003cc012e02c\u003e] print_unlock_inbalance_bug+0xe7/0xf3\n  [\u003cc012fd4f\u003e] lock_release+0x8d/0x164\n  [\u003cc012b452\u003e] up_write+0x14/0x27\n  [\u003cc0163b9e\u003e] get_sb_nodev+0x76/0xa4\n  [\u003cc0163689\u003e] vfs_kern_mount+0x83/0xf6\n  [\u003cc016373e\u003e] do_kern_mount+0x2d/0x3e\n  [\u003cc017513f\u003e] do_mount+0x607/0x67a\n  [\u003cc0175224\u003e] sys_mount+0x72/0xa4\n  [\u003cc0102b96\u003e] sysenter_past_esp+0x5f/0x99\n DWARF2 unwinder stuck at sysenter_past_esp+0x5f/0x99\n Leftover inexact backtrace:\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nand then deadlock comes.\n\nThe problem: autofs_fill_super() returns EINVAL to get_sb_nodev(), but\nbefore that, it calls kill_anon_super() to destroy the superblock which\nwon\u0027t be needed.  This is however way too soon to call kill_anon_super(),\nbecause get_sb_nodev() has to perform its own cleanup of the superblock\nfirst (deactivate_super(), etc.).  The correct time to call\nkill_anon_super() is in the autofs_kill_sb() callback, which is called by\ndeactivate_super() at proper time, when the superblock is ready to be\nkilled.\n\nI can see the same faulty codepath also in autofs4.  This patch solves\nissues in both filesystems in a same way - it postpones the\nkill_anon_super() until the proper time is signalized by deactivate_super()\ncalling the kill_sb() callback.\n\n[raven@themaw.net: update comment]\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "ba8df43c0ee93ec05fc526278a80aaf4cb5ab1fa"
}
