)]}'
{
  "log": [
    {
      "commit": "6c52961743f38747401b47127b82159ab6d8a7a4",
      "tree": "cfc3ba22db14f6402e567b70cad424ffd43545a6",
      "parents": [
        "652f89f64fabcdae9143ee2b4253cfa838fb0279"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 15 18:38:10 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 15 18:44:36 2011 -0500"
      },
      "message": "NFS: Fix a regression in nfs_file_llseek()\n\nAfter commit 06222e491e663dac939f04b125c9dc52126a75c4 (fs: handle\nSEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek)\nthe behaviour of llseek() was changed so that it always revalidates\nthe file size. The bug appears to be due to a logic error in the\nafore-mentioned commit, which always evaluates to \u0027true\u0027.\n\nReported-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org [\u003e\u003d3.1]\n"
    },
    {
      "commit": "652f89f64fabcdae9143ee2b4253cfa838fb0279",
      "tree": "3ab618ec5a8f74c86d610e95ed04afa7b3b0b849",
      "parents": [
        "4b44b40e04a758e2242ff4a3f7c15982801ec8bc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 09 19:05:58 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 09 19:05:58 2011 -0500"
      },
      "message": "NFSv4: Do not accept delegated opens when a delegation recall is in effect\n\n...and report the servers that try to return a delegation when the client\nis using the CLAIM_DELEG_CUR open mode. That behaviour is explicitly\nforbidden in RFC3530.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4b44b40e04a758e2242ff4a3f7c15982801ec8bc",
      "tree": "2af50d7cbe9ed6c90bfb6581aac9fb0cdea6ea44",
      "parents": [
        "111d489f0fb431f4ae85d96851fbf8d3248c09d8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 09 16:31:52 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 09 16:31:52 2011 -0500"
      },
      "message": "NFSv4: Ensure correct locking when accessing the \u0027lock_states\u0027 list\n\nThere are currently 2 places in the state recovery code, where we do not\ntake sufficient precautions before accessing the state-\u003elock_states. In\nboth cases, we should be holding the state-\u003estate_lock.\n\nReported-by: Pascal Bouchareine \u003cpascal@gandi.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "111d489f0fb431f4ae85d96851fbf8d3248c09d8",
      "tree": "52314237a592989956bd772dc8eaa712e2f8cc92",
      "parents": [
        "4f38e4aadcca319650c0de31edf7193d7c384de2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 01 16:37:42 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 01 16:37:42 2011 -0500"
      },
      "message": "NFSv4.1: Ensure that we handle _all_ SEQUENCE status bits.\n\nCurrently, the code assumes that the SEQUENCE status bits are mutually\nexclusive. They are not...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org [\u003e\u003d 2.6.34]\n"
    },
    {
      "commit": "4f38e4aadcca319650c0de31edf7193d7c384de2",
      "tree": "b33e902da4078218c7246646aecb50ad6658660a",
      "parents": [
        "c25573b5134294c0be82bfaecc6d08136835b271"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 01 16:31:34 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 01 16:31:34 2011 -0500"
      },
      "message": "NFSv4: Don\u0027t error if we handled it in nfs4_recovery_handle_error\n\nIf we handled an error condition, then nfs4_recovery_handle_error should\nreturn \u00270\u0027 so that the state recovery thread can continue.\nAlso ensure that nfs4_check_lease() continues to abort if we haven\u0027t got\nany credentials by having it return ENOKEY (which is not handled).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e25ba0ce039d1c5cae0b0057e4b9e228dc6744bd",
      "tree": "3f5d705161f24c6a9dc36c1947ce7f81e53db41b",
      "parents": [
        "af36d15f58a3560617f1497ae011c3192049e40e",
        "62e4a76987eab2b7fa952546614bc83e5bfc9d3e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 22 08:54:15 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 22 08:54:15 2011 -0800"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFS: Revert pnfs ugliness from the generic NFS read code path\n  SUNRPC: destroy freshly allocated transport in case of sockaddr init error\n  NFS: Fix a regression in the referral code\n  nfs: move nfs_file_operations declaration to bottom of file.c (try #2)\n  nfs: when attempting to open a directory, fall back on normal lookup (try #5)\n"
    },
    {
      "commit": "ea441d1104cf1efb471fa81bc91e9fd1e6ae29fd",
      "tree": "32b7c4f7c78af47936a604e3f4e13e8e61f834a0",
      "parents": [
        "c13344958780b4046305ee6235d686c846535529"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 16 21:43:59 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 16 22:00:34 2011 -0500"
      },
      "message": "new helper: mount_subtree()\n\ntakes vfsmount and relative path, does lookup within that vfsmount\n(possibly triggering automounts) and returns the result as root\nof subtree suitable for return by -\u003emount() (i.e. a reference to\ndentry and an active reference to its superblock grabbed, superblock\nlocked exclusive).\n\nbtrfs and nfs switched to it instead of open-coding the sucker.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c13344958780b4046305ee6235d686c846535529",
      "tree": "aed2958283867030aa9e9f742c3fb94c895b2d5c",
      "parents": [
        "8d514bbf37eecf0a3e309284728637816a36764b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 16 16:12:14 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 16 16:12:14 2011 -0500"
      },
      "message": "switch create_mnt_ns() to saner calling conventions, fix double mntput() in nfs\n\nLife is much saner if create_mnt_ns(mnt) drops mnt in case of error...\nSwitch it to such calling conventions, switch callers, fix double mntput() in\nfs/nfs/super.c one.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "62e4a76987eab2b7fa952546614bc83e5bfc9d3e",
      "tree": "433ab5bde90a8d2dbeeabc29a6aa0c25deae5732",
      "parents": [
        "2aa13531bbbc6582874bedfcd853e1058b0fb4f9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Nov 10 14:30:37 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Nov 10 14:50:26 2011 -0500"
      },
      "message": "NFS: Revert pnfs ugliness from the generic NFS read code path\n\npNFS-specific code belongs in the pnfs layer. It should not be\nhijacking generic NFS read or write code paths.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a6f498a891c730327645a7afa10c5ae977de6fd8",
      "tree": "1b162b3f76a653cc5292f1ca04cf7c04905246df",
      "parents": [
        "0486958f57a496212e3c1e3d9194deebba3dc3d4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 07 15:50:32 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 07 16:20:00 2011 -0500"
      },
      "message": "NFS: Fix a regression in the referral code\n\nFix a regression that was introduced by commit\n0c2e53f11a6dae9e3af5f50f5ad0382e7c3e0cfa (NFS: Remove the unused\n\"lookupfh()\" version of nfs4_proc_lookup()).\n\nIn the case where the lookup gets an NFS4ERR_MOVED, we want to return\nthe result of nfs4_get_referral(). Instead, that value is getting\nclobbered by the call to nfs4_handle_exception()...\n\nReported-by: Tigran Mkrtchyan \u003ctigran.mkrtchyan@desy.de\u003e\nTested-by: Tigran Mkrtchyan \u003ctigran.mkrtchyan@desy.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "0486958f57a496212e3c1e3d9194deebba3dc3d4",
      "tree": "f8a0c8987f077a97ed4f4a6150de6aadbf83af7a",
      "parents": [
        "1788ea6e3b2a58cf4fb00206e362d9caff8d86a7"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Nov 04 13:31:22 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 16:39:11 2011 -0400"
      },
      "message": "nfs: move nfs_file_operations declaration to bottom of file.c (try #2)\n\n...a remove a set of forward declarations.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1788ea6e3b2a58cf4fb00206e362d9caff8d86a7",
      "tree": "24846fddf8b55f516f365a735defd79b6ea6d28a",
      "parents": [
        "1583171492eb514e267c7b51e96846b38de0f544"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Nov 04 13:31:21 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 16:39:04 2011 -0400"
      },
      "message": "nfs: when attempting to open a directory, fall back on normal lookup (try #5)\n\ncommit d953126 changed how nfs_atomic_lookup handles an -EISDIR return\nfrom an OPEN call. Prior to that patch, that caused the client to fall\nback to doing a normal lookup. When that patch went in, the code began\nreturning that error to userspace. The d_revalidate codepath however\nnever had the corresponding change, so it was still possible to end up\nwith a NULL ctx-\u003estate pointer after that.\n\nThat patch caused a regression. When we attempt to open a directory that\ndoes not have a cached dentry, that open now errors out with EISDIR. If\nyou attempt the same open with a cached dentry, it will succeed.\n\nFix this by reverting the change in nfs_atomic_lookup and allowing\nattempts to open directories to fall back to a normal lookup\n\nAlso, add a NFSv4-specific f_ops-\u003eopen routine that just returns\n-ENOTDIR. This should never be called if things are working properly,\nbut if it ever is, then the dprintk may help in debugging.\n\nTo facilitate this, a new file_operations field is also added to the\nnfs_rpc_ops struct.\n\nCc: stable@kernel.org\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6736c047995c560b73f3860095c631456b0bbea8",
      "tree": "1ef4d2ab9d7d2f2cd3fe26a3e9135fb312e81b85",
      "parents": [
        "16dfd1faed8c5235d9a7c190b91b6d97d6cd3272",
        "6070295efc90d1093b2031c43380bd7d9673c802"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 12:27:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 12:27:43 2011 -0700"
      },
      "message": "Merge branch \u0027nfs-for-3.2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\n* \u0027nfs-for-3.2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (25 commits)\n  nfs: set vs_hidden on nfs4_callback_version4 (try #2)\n  pnfs-obj: Support for RAID5 read-4-write interface.\n  pnfs-obj: move to ore 03: Remove old raid engine\n  pnfs-obj: move to ore 02: move to ORE\n  pnfs-obj: move to ore 01: ore_layout \u0026 ore_components\n  pnfs-obj: Rename objlayout_io_state \u003d\u003e objlayout_io_res\n  pnfs-obj: Get rid of objlayout_{alloc,free}_io_state\n  pnfs-obj: Return PNFS_NOT_ATTEMPTED in case of read/write_pagelist\n  pnfs-obj: Remove redundant EOF from objlayout_io_state\n  nfs: Remove unused variable from write.c\n  nfs: Fix unused variable warning from file.c\n  NFS: Remove no-op less-than-zero checks on unsigned variables.\n  NFS: Clean up nfs4_xdr_dec_secinfo()\n  NFS: Fix documenting comment for nfs_create_request()\n  NFS4: fix cb_recallany decode error\n  nfs4: serialize layoutcommit\n  SUNRPC: remove rpcbind clients destruction on module cleanup\n  SUNRPC: remove rpcbind clients creation during service registering\n  NFSd: call svc rpcbind cleanup explicitly\n  SUNRPC: cleanup service destruction\n  ...\n"
    },
    {
      "commit": "6070295efc90d1093b2031c43380bd7d9673c802",
      "tree": "f3c9f578db61c77b9d3603298b7793d65b6dae8a",
      "parents": [
        "31cbecb4ab538f433145bc5a46f3bea9b9627031"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Nov 04 07:04:10 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 09:00:09 2011 -0400"
      },
      "message": "nfs: set vs_hidden on nfs4_callback_version4 (try #2)\n\nThis service should not be registered with or unregistered from rpcbind.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "31cbecb4ab538f433145bc5a46f3bea9b9627031",
      "tree": "d6206d42dea7298f7ef05fd1f7bf474245f0d43a",
      "parents": [
        "2b72c9ccd22c4a3299e5a358dcd639fb253730f4",
        "278c023a99b0d6b471d0f4a79835c703482e29ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:40 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:40 2011 -0400"
      },
      "message": "Merge branch \u0027osd-devel\u0027 into nfs-for-next\n"
    },
    {
      "commit": "278c023a99b0d6b471d0f4a79835c703482e29ac",
      "tree": "77f49d04e4765817708407d37f54af52aa0a24eb",
      "parents": [
        "04291b628c450ab6fdb606836585f16336662a4e"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Mon Oct 31 15:16:54 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:09 2011 -0400"
      },
      "message": "pnfs-obj: Support for RAID5 read-4-write interface.\n\nThe ore need suplied a r4w_get_page/r4w_put_page API\nfrom Filesystem so it can get cache pages to read-into when\nwriting parial stripes.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "04291b628c450ab6fdb606836585f16336662a4e",
      "tree": "2b0e17d8e774c9188437fd04cc97a2bc50312bab",
      "parents": [
        "eecfc6312a24e6d0d2883de0a9a6ccf8e993f472"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Mon Oct 31 15:16:15 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:08 2011 -0400"
      },
      "message": "pnfs-obj: move to ore 03: Remove old raid engine\n\nFinally remove all the old raid engine, which is by now\ndead code.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eecfc6312a24e6d0d2883de0a9a6ccf8e993f472",
      "tree": "83b7b6d8895a007e698e59f065924527e8870d90",
      "parents": [
        "af4f5b54bcf0379089d01518e818f37258708fb7"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Mon Oct 31 15:15:38 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:08 2011 -0400"
      },
      "message": "pnfs-obj: move to ore 02: move to ORE\n\nIn this patch we are actually moving to the ORE.\n(Object Raid Engine).\n\nobjio_state holds a pointer to an ore_io_state. Once\nwe have an ore_io_state at hand we can call the ore\nfor reading/writing. We register on the done path\nto kick off the nfs io_done mechanism.\n\nAgain for Ease of reviewing the old code is \"#if 0\"\nbut is not removed so the diff command works better.\nThe old code will be removed in the next patch.\n\nfs/exofs/Kconfig::ORE is modified to also be auto-included\nif PNFS_OBJLAYOUT is set. Since we now depend on ORE.\n(See comments in fs/exofs/Kconfig)\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "af4f5b54bcf0379089d01518e818f37258708fb7",
      "tree": "f23c232ec8f03a53a1e2636053a8d4d8c12a3dce",
      "parents": [
        "e2e04355d9647305c666462a49223f2942a635f0"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Mon Oct 31 15:04:19 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:07 2011 -0400"
      },
      "message": "pnfs-obj: move to ore 01: ore_layout \u0026 ore_components\n\nFor Ease of reviewing I split the move to ore into 3 parts\n\tmove to ore 01: ore_layout \u0026 ore_components\n\tmove to ore 02: move to ORE\n\tmove to ore 03: Remove old raid engine\n\nThis patch modifies the objio_lseg, layout-segment level\nand devices and components arrays to use the ORE types.\n\nThough it will be removed soon, also the raid engine\nis modified to actually compile, possibly run, with\nthe new types. So it is the same old raid engine but\nwith some new ORE types.\n\nFor Ease of reviewing, some of the old code is\n\"#if 0\" but is not removed so the diff command works\nbetter. The old code will be removed in the 3rd patch.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e2e04355d9647305c666462a49223f2942a635f0",
      "tree": "ecfe8fb11a29a11d2728c1cdd8d5e2d82c724e41",
      "parents": [
        "96218556b03d3c6505e2880a097338bf277fd783"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Mon Oct 31 15:03:35 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:06 2011 -0400"
      },
      "message": "pnfs-obj: Rename objlayout_io_state \u003d\u003e objlayout_io_res\n\n* All instances of objlayout_io_state \u003d\u003e objlayout_io_res\n* All instances of state \u003d\u003e oir;\n* All instances of ol_state \u003d\u003e oir;\n\nBig but nothing to it\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "96218556b03d3c6505e2880a097338bf277fd783",
      "tree": "0e6d80437979a158af20b73b8d2cd985478e553d",
      "parents": [
        "e6c40fe3f4c4967f1cb486191ed4a5d5f55f3f7e"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Mon Oct 31 14:47:32 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:05 2011 -0400"
      },
      "message": "pnfs-obj: Get rid of objlayout_{alloc,free}_io_state\n\nThis is part of moving objio_osd to use the ORE.\n\nobjlayout_io_state had two functions:\n1. It was used in the error reporting mechanism at layout_return.\n   This function is kept intact.\n   (Later patch will rename objlayout_io_state \u003d\u003e objlayout_io_res)\n2. Carrier of rw io members into the objio_read/write_paglist API.\n   This is removed in this patch.\n\nThe {r,w}data received from NFS are passed directly to the\nobjio_{read,write}_paglist API. The io_engine is now allocating\nit\u0027s own IO state as part of the read/write. The minimal\nfunctionality that was part of the generic allocation is passed\nto the io_engine.\n\nSo part of this patch is rename of:\n\tios-\u003eol_state.foo \u003d\u003e ios-\u003efoo\n\nAt objlayout_{read,write}_done an objlayout_io_state is passed that\ndenotes the result of the IO. (Hence the later name change).\nIf the IO is successful objlayout calls an objio_free_result() API\nimmediately (Which for objio_osd causes the release of the io_state).\nIf the IO ended in an error it is hanged onto until reported in\nlayout_return and is released later through the objio_free_result()\nAPI. (All this is not new just renamed and cleaned)\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e6c40fe3f4c4967f1cb486191ed4a5d5f55f3f7e",
      "tree": "a7747effb21709bfbb0b3ded2e85253f37e7711e",
      "parents": [
        "4cdc685c7d06f659ef6c336d4242005cdd8df401"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Mon Oct 31 14:45:46 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:03 2011 -0400"
      },
      "message": "pnfs-obj: Return PNFS_NOT_ATTEMPTED in case of read/write_pagelist\n\nobjlayout driver was always returning PNFS_ATTEMPTED from it\u0027s\nread/write_pagelist operations. Even on error. Fix that.\n\nStart by establishing an error return API from io-engine, by\nnot returning ssize_t (length-or-error) but returning \"int\"\n0\u003dOK, 0\u003eError. And clean up all return types in io-engine.\n\nThen if io-engine returned error return PNFS_NOT_ATTEMPTED\nto generic layer. (With a dprint)\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4cdc685c7d06f659ef6c336d4242005cdd8df401",
      "tree": "af4074fae08ad9d24b035b54ab065f90bae31b5f",
      "parents": [
        "994c0e992522c123298b4a91b72f5e67ba2d1123"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Mon Oct 31 14:45:06 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:00 2011 -0400"
      },
      "message": "pnfs-obj: Remove redundant EOF from objlayout_io_state\n\nThe EOF calculation was done on .read_pagelist(), cached\nin objlayout_io_state-\u003eeof, and set in objlayout_read_done()\ninto nfs_read_data-\u003eres.eof.\n\nSo set it directly into nfs_read_data-\u003eres.eof and avoid\nthe extra member.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2b72c9ccd22c4a3299e5a358dcd639fb253730f4",
      "tree": "d7d01bf3cf5b4d7a460c50b7f5432aaa4b32b9db",
      "parents": [
        "6f276e49fd108362be3fd67154aaaacf872ea026"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Tue Nov 01 12:23:42 2011 +0600"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:50:24 2011 -0400"
      },
      "message": "nfs: Remove unused variable from write.c\n\nWhen CONFIG_NFS\u003dy and CONFIG_NFS_V3_{,V4}\u003dn we get the following warning.\n\n\tfs/nfs/write.c: In function ‘nfs_writeback_done’:\n\tfs/nfs/write.c:1246:21: warning: unused variable ‘server’\n\n Remove the variable \u0027server\u0027 to fix the above warning.\n\nSigned-off-by: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6f276e49fd108362be3fd67154aaaacf872ea026",
      "tree": "e44765996007b20727873ae26784ee682c23e425",
      "parents": [
        "e414966b81a74745ac8d6bfeda0d95fb721e6d91"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Tue Nov 01 12:16:15 2011 +0600"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:49:09 2011 -0400"
      },
      "message": "nfs: Fix unused variable warning from file.c\n\nFix the following unused variable warning.\n\nfs/nfs/file.c: In function ‘nfs_file_release’:\nfs/nfs/file.c:140:17: warning: unused variable ‘dentry’\nfs/nfs/file.c: In function ‘nfs_file_read’:\nfs/nfs/file.c:237:9: warning: unused variable ‘count’\n\nSigned-off-by: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6d6b77f163c7eabedbba00ed2abb7d4a570bff76",
      "tree": "6ce074a7dd5a25fae28ef9de6f59ddee08ea4e61",
      "parents": [
        "dd2a981f46a0903a8770a784f213d4d40bbb6f19"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:28 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add missing nlink wrappers\n\nReplace direct i_nlink updates with the respective updater function\n(inc_nlink, drop_nlink, clear_nlink, inode_dec_link_count).\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "143cb494cb6662e37c4020b7fe9839837f718e56",
      "tree": "249abcf5afe251a9244a414f9d66c73b9458274e",
      "parents": [
        "afeacc8c1f38b7bb93d4bc7b4ba04c2605061ef0"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri Jul 01 14:23:34 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:31 2011 -0400"
      },
      "message": "fs: add module.h to files that were implicitly using it\n\nSome files were using the complete module.h infrastructure without\nactually including the header at all.  Fix them up in advance so\nonce the implicit presence is removed, we won\u0027t get failures like this:\n\n  CC [M]  fs/nfsd/nfssvc.o\nfs/nfsd/nfssvc.c: In function \u0027nfsd_create_serv\u0027:\nfs/nfsd/nfssvc.c:335: error: \u0027THIS_MODULE\u0027 undeclared (first use in this function)\nfs/nfsd/nfssvc.c:335: error: (Each undeclared identifier is reported only once\nfs/nfsd/nfssvc.c:335: error: for each function it appears in.)\nfs/nfsd/nfssvc.c: In function \u0027nfsd\u0027:\nfs/nfsd/nfssvc.c:555: error: implicit declaration of function \u0027module_put_and_exit\u0027\nmake[3]: *** [fs/nfsd/nfssvc.o] Error 1\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "afeacc8c1f38b7bb93d4bc7b4ba04c2605061ef0",
      "tree": "e6eb248db3f932808ff2495a094e728d7d7f61e1",
      "parents": [
        "79bb1ee46ad1b76069108ca9b5467a3c14574744"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 16:00:52 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:31 2011 -0400"
      },
      "message": "fs: add export.h to files using EXPORT_SYMBOL/THIS_MODULE macros\n\nThese files were getting \u003clinux/module.h\u003e via an implicit include\npath, but we want to crush those out of existence since they cost\ntime during compiles of processing thousands of lines of headers\nfor no reason.  Give them the lightweight header that just contains\nthe EXPORT_SYMBOL infrastructure.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "e414966b81a74745ac8d6bfeda0d95fb721e6d91",
      "tree": "a4851a80ca1b1fd965da9f475135356ab872db59",
      "parents": [
        "c6e696660213a89a5bfde8b49d539553904c808f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Oct 25 12:18:03 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 31 11:52:47 2011 -0400"
      },
      "message": "NFS: Remove no-op less-than-zero checks on unsigned variables.\n\nIntroduced by commit 16b374ca \"NFSv4.1: pnfs: filelayout: add driver\u0027s\nLAYOUTGET and GETDEVICEINFO infrastructure\" (October 20, 2010).\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c6e696660213a89a5bfde8b49d539553904c808f",
      "tree": "07ae73d24e871d89d5ca8b8a6e9e761d5f2ba48e",
      "parents": [
        "c02f557dd0a026d7147da3b6f7daf52c6ff5580f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Oct 25 12:17:53 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 31 11:52:47 2011 -0400"
      },
      "message": "NFS: Clean up nfs4_xdr_dec_secinfo()\n\nClean up: Remove superfluous logic at the tail of\nnfs4_xdr_dec_secinfo() .\n\nIntroduced by commit 5a5ea0d4 \"NFS: Add secinfo procedure\" (March 24,\n2011).\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c02f557dd0a026d7147da3b6f7daf52c6ff5580f",
      "tree": "3aca1c945e5978bd1321eadc4d091f9d907d53bb",
      "parents": [
        "d743c3c9c236cc61403a4f7d6283d59ddf68b2bd"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Oct 25 12:17:43 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 31 11:52:47 2011 -0400"
      },
      "message": "NFS: Fix documenting comment for nfs_create_request()\n\nClean up: the first parameter of nfs_create_request() has been\nincorrectly documented since time immemorial (OK, since before\n2.6.12).\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d743c3c9c236cc61403a4f7d6283d59ddf68b2bd",
      "tree": "9eb73b3ba65167f61f8b455c8d54ff68a1905b2e",
      "parents": [
        "92407e75ce45b41c46944891711fd8faf0714d84"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Sun Oct 23 20:22:38 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 31 11:51:28 2011 -0400"
      },
      "message": "NFS4: fix cb_recallany decode error\n\ncraa_type_mask is bitmap4 per RFC5661. We need to expect a length before\nextracting bitmap value.\n\nCc: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "92407e75ce45b41c46944891711fd8faf0714d84",
      "tree": "6616482a99f4b328f2a2acc853af20f273faf08f",
      "parents": [
        "e20de377578e9504f8467c05ab1db98b4935d4ed"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Sun Oct 23 20:21:17 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 31 11:51:28 2011 -0400"
      },
      "message": "nfs4: serialize layoutcommit\n\nCurrent pnfs_layoutcommit_inode can not handle parallel layoutcommit.\nAnd as Trond suggested , there is no need for client to optimize for\nparallel layoutcommit. So add NFS_INO_LAYOUTCOMMITTING flag to\nmark inflight layoutcommit and serialize lalyoutcommit with it.\nAlso mark_inode_dirty_sync if pnfs_layoutcommit_inode fails to issue\nlayoutcommit.\n\nReported-by: Vitaliy Gusev \u003cgusev.vitaliy@nexenta.com\u003e\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f362f98e7c445643d27c610bb7a86b79727b592e",
      "tree": "399d9ebccdfbdfe9690ab1403a001d6f08e54b41",
      "parents": [
        "f793f2961170c0b49c1650e69e7825484159ce62",
        "f3c7691e8d30d88899b514675c7c86d19057b5fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue: (21 commits)\n  leases: fix write-open/read-lease race\n  nfs: drop unnecessary locking in llseek\n  ext4: replace cut\u0027n\u0027pasted llseek code with generic_file_llseek_size\n  vfs: add generic_file_llseek_size\n  vfs: do (nearly) lockless generic_file_llseek\n  direct-io: merge direct_io_walker into __blockdev_direct_IO\n  direct-io: inline the complete submission path\n  direct-io: separate map_bh from dio\n  direct-io: use a slab cache for struct dio\n  direct-io: rearrange fields in dio/dio_submit to avoid holes\n  direct-io: fix a wrong comment\n  direct-io: separate fields only used in the submission path from struct dio\n  vfs: fix spinning prevention in prune_icache_sb\n  vfs: add a comment to inode_permission()\n  vfs: pass all mask flags check_acl and posix_acl_permission\n  vfs: add hex format for MAY_* flag values\n  vfs: indicate that the permission functions take all the MAY_* flags\n  compat: sync compat_stats with statfs.\n  vfs: add \"device\" tag to /proc/self/mountstats\n  cleanup: vfs: small comment fix for block_invalidatepage\n  ...\n\nFix up trivial conflict in fs/gfs2/file.c (llseek changes)\n"
    },
    {
      "commit": "79835a710d6ff811659c8de46f89c7577c3b8cc6",
      "tree": "0c0c3ab2fc4bfb506bc32e7afc18cad31e4086b9",
      "parents": [
        "4cce0e28b932c11454f75d1c1fae674600c23fbf"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:52 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:59:00 2011 +0200"
      },
      "message": "nfs: drop unnecessary locking in llseek\n\nThis makes NFS follow the standard generic_file_llseek locking scheme.\n\nCc: Trond.Myklebust@netapp.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "ef3d0fd27e90f67e35da516dafc1482c82939a60",
      "tree": "dea852eab2a52782867becffb11bce2577ed2b91",
      "parents": [
        "847cc6371ba820763773e993000410d6d8d23515"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:48 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:58 2011 +0200"
      },
      "message": "vfs: do (nearly) lockless generic_file_llseek\n\nThe i_mutex lock use of generic _file_llseek hurts.  Independent processes\naccessing the same file synchronize over a single lock, even though\nthey have no need for synchronization at all.\n\nUnder high utilization this can cause llseek to scale very poorly on larger\nsystems.\n\nThis patch does some rethinking of the llseek locking model:\n\nFirst the 64bit f_pos is not necessarily atomic without locks\non 32bit systems. This can already cause races with read() today.\nThis was discussed on linux-kernel in the past and deemed acceptable.\nThe patch does not change that.\n\nLet\u0027s look at the different seek variants:\n\nSEEK_SET: Doesn\u0027t really need any locking.\nIf there\u0027s a race one writer wins, the other loses.\n\nFor 32bit the non atomic update races against read()\nstay the same. Without a lock they can also happen\nagainst write() now.  The read() race was deemed\nacceptable in past discussions, and I think if it\u0027s\nok for read it\u0027s ok for write too.\n\n\u003d\u003e Don\u0027t need a lock.\n\nSEEK_END: This behaves like SEEK_SET plus it reads\nthe maximum size too. Reading the maximum size would have the\n32bit atomic problem. But luckily we already have a way to read\nthe maximum size without locking (i_size_read), so we\ncan just use that instead.\n\nWithout i_mutex there is no synchronization with write() anymore,\nhowever since the write() update is atomic on 64bit it just behaves\nlike another racy SEEK_SET.  On non atomic 32bit it\u0027s the same\nas SEEK_SET.\n\n\u003d\u003e Don\u0027t need a lock, but need to use i_size_read()\n\nSEEK_CUR: This has a read-modify-write race window\non the same file. One could argue that any application\ndoing unsynchronized seeks on the same file is already broken.\nBut for the sake of not adding a regression here I\u0027m\nusing the file-\u003ef_lock to synchronize this. Using this\nlock is much better than the inode mutex because it doesn\u0027t\nsynchronize between processes.\n\n\u003d\u003e So still need a lock, but can use a f_lock.\n\nThis patch implements this new scheme in generic_file_llseek.\nI dropped generic_file_llseek_unlocked and changed all callers.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "ef78cc75f11ba3b085b105209cbfc6666ee10499",
      "tree": "1820dbd8ebb422b0a5751981cdfb6a2ecd30e20b",
      "parents": [
        "1442d1678ca7e53574fd403ba7bee6f4125d920c",
        "940aab490215424a269f93d2eba2794fc8b3e269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 15:44:06 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 15:44:06 2011 +0200"
      },
      "message": "Merge branch \u0027nfs-for-3.2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\n* \u0027nfs-for-3.2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (26 commits)\n  Check validity of cl_rpcclient in nfs_server_list_show\n  NFS: Get rid of the nfs_rdata_mempool\n  NFS: Don\u0027t rely on PageError in nfs_readpage_release_partial\n  NFS: Get rid of unnecessary calls to ClearPageError() in read code\n  NFS: Get rid of nfs_restart_rpc()\n  NFS: Get rid of the unused nfs_write_data-\u003eflags field\n  NFS: Get rid of the unused nfs_read_data-\u003eflags field\n  NFSv4: Translate NFS4ERR_BADNAME into ENOENT when applied to a lookup\n  NFS: Remove the unused \"lookupfh()\" version of nfs4_proc_lookup()\n  NFS: Use the inode-\u003ei_version to cache NFSv4 change attribute information\n  SUNRPC: Remove unnecessary export of rpc_sockaddr2uaddr\n  SUNRPC: Fix rpc_sockaddr2uaddr\n  nfs/super.c: local functions should be static\n  pnfsblock: fix writeback deadlock\n  pnfsblock: fix NULL pointer dereference\n  pnfs: recoalesce when ld read pagelist fails\n  pnfs: recoalesce when ld write pagelist fails\n  pnfs: make _set_lo_fail generic\n  pnfsblock: add missing rpc_put_mount and path_put\n  SUNRPC/NFS: make rpc pipe upcall generic\n  ...\n"
    },
    {
      "commit": "1442d1678ca7e53574fd403ba7bee6f4125d920c",
      "tree": "fd053a849158d2c5b8345ced8982108825b85736",
      "parents": [
        "7e0bb71e75020348bee523720a0c2f04cc72f540",
        "345c284290cabb5484df909303e73d6def8ec8ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 15:42:01 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 15:42:01 2011 +0200"
      },
      "message": "Merge branch \u0027for-3.2\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-3.2\u0027 of git://linux-nfs.org/~bfields/linux: (103 commits)\n  nfs41: implement DESTROY_CLIENTID operation\n  nfsd4: typo logical vs bitwise negate for want_mask\n  nfsd4: allow NFS4_SHARE_SIGNAL_DELEG_WHEN_RESRC_AVAIL | NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED\n  nfsd4: seq-\u003estatus_flags may be used unitialized\n  nfsd41: use SEQ4_STATUS_BACKCHANNEL_FAULT when cb_sequence is invalid\n  nfsd4: implement new 4.1 open reclaim types\n  nfsd4: remove unneeded CLAIM_DELEGATE_CUR workaround\n  nfsd4: warn on open failure after create\n  nfsd4: preallocate open stateid in process_open1()\n  nfsd4: do idr preallocation with stateid allocation\n  nfsd4: preallocate nfs4_file in process_open1()\n  nfsd4: clean up open owners on OPEN failure\n  nfsd4: simplify process_open1 logic\n  nfsd4: make is_open_owner boolean\n  nfsd4: centralize renew_client() calls\n  nfsd4: typo logical vs bitwise negate\n  nfs: fix bug about IPv6 address scope checking\n  nfsd4: more robust ignoring of WANT bits in OPEN\n  nfsd4: move name-length checks to xdr\n  nfsd4: move access/deny validity checks to xdr code\n  ...\n"
    },
    {
      "commit": "940aab490215424a269f93d2eba2794fc8b3e269",
      "tree": "6dec5a3d9476fd3c409d7a73040e0eafb1eba756",
      "parents": [
        "b6ee8cd2642f6d822dd1a4ba62298b65ff99b72e"
      ],
      "author": {
        "name": "Malahal Naineni",
        "email": "malahal@us.ibm.com",
        "time": "Tue Sep 20 17:27:14 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 20 18:44:04 2011 -0500"
      },
      "message": "Check validity of cl_rpcclient in nfs_server_list_show\n\nAs soon as the nfs_client gets created, its cl_rpcclient is set to\nERR_PTR(-EINVAL). The rpc client structure is allocated later. Check\nif the client is ready before using the cl_rpcclient pointer.\n\nSigned-off-by: Malahal Naineni \u003cmalahal@us.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b6ee8cd2642f6d822dd1a4ba62298b65ff99b72e",
      "tree": "7396c32b86b417b3a7158599bbd2aa0889c86c48",
      "parents": [
        "fba730050d1246d0e6ef44e026e0b584732fec2b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 19 12:17:29 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 19 13:58:38 2011 -0700"
      },
      "message": "NFS: Get rid of the nfs_rdata_mempool\n\nWe don\u0027t need a mempool in order to guarantee reliable NFS read performance.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fba730050d1246d0e6ef44e026e0b584732fec2b",
      "tree": "0f82efd65d61d40e6cc994fd8e69b9db0a2e6cb1",
      "parents": [
        "fbb5a9abf0d589e9471dc93b18025b7b921d22c9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 19 12:17:29 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 19 13:58:38 2011 -0700"
      },
      "message": "NFS: Don\u0027t rely on PageError in nfs_readpage_release_partial\n\nDon\u0027t rely on the PageError flag to tell us if one of the partial reads of\nthe page failed. Instead, replace that with a dedicated flag in the\nstruct nfs_page.\n\nThen clean out redundant uses of the PageError flag: the VM no longer\nchecks it for reads.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fbb5a9abf0d589e9471dc93b18025b7b921d22c9",
      "tree": "0f9ad68b242159289fd57b39dddd5fb4da7ea708",
      "parents": [
        "d00c5d43866720963a265fa3129f3203cac35b8e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 19 12:17:29 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 19 13:58:37 2011 -0700"
      },
      "message": "NFS: Get rid of unnecessary calls to ClearPageError() in read code\n\nThe generic file read code does that for us anyway.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d00c5d43866720963a265fa3129f3203cac35b8e",
      "tree": "0121c93156007c7764a818cc70b6864614e40536",
      "parents": [
        "b8ef70639b609c5d12c618f1d9ffae6ac13aebe3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 19 12:17:29 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 19 13:58:30 2011 -0700"
      },
      "message": "NFS: Get rid of nfs_restart_rpc()\n\nIt can trivially be replaced with rpc_restart_call_prepare.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "08ef7bd3bc04261d14d570ac7eaac3eac947b1ba",
      "tree": "cc64173b71d4df4a8da4fd2230ae121828fd5443",
      "parents": [
        "0c2e53f11a6dae9e3af5f50f5ad0382e7c3e0cfa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 16:11:49 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 16:13:51 2011 -0700"
      },
      "message": "NFSv4: Translate NFS4ERR_BADNAME into ENOENT when applied to a lookup\n\nBoth LOOKUP and OPEN operations may return NFS4ERR_BADNAME if we send a\nan invalid name as a filename argument. As far as the application is\nconcerned, it just has to know that the file doesn\u0027t exist, and so\nENOENT would be the appropriate reply. We should only return EINVAL\nif the filename is being used to _create_ a new object on the\nremote filesystem.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0c2e53f11a6dae9e3af5f50f5ad0382e7c3e0cfa",
      "tree": "a79761d89ca6ca2c9018724a6245b3a7566c89a9",
      "parents": [
        "a9a4a87a5942e9271523197a90aaa82349c818fb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 16:11:22 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 16:13:51 2011 -0700"
      },
      "message": "NFS: Remove the unused \"lookupfh()\" version of nfs4_proc_lookup()\n\n...and also remove the associated nfs_v4_clientops entry.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a9a4a87a5942e9271523197a90aaa82349c818fb",
      "tree": "88001fc58944798ff41d36a08ccf2bdace2cda6e",
      "parents": [
        "919066d690541f4bd727b0e0fc2f7a20a7e3b3a7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 17 16:08:46 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:14:34 2011 -0700"
      },
      "message": "NFS: Use the inode-\u003ei_version to cache NFSv4 change attribute information\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "45402c38eec740f52422aafc92937c6a4a8c8c0e",
      "tree": "c5ca2061deba7b2a1cc8b923ef781d8c3cdee011",
      "parents": [
        "7542274519b3ba87555410c66e8356ac1e3bc9b3"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Fri Sep 02 14:39:12 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:15 2011 -0700"
      },
      "message": "nfs/super.c: local functions should be static\n\ncommit ae50c0b5 \"pnfs: client stats\" added additional information to\nthe output of /proc/self/mountstats. The new functions introduced are\nonly used in this file and should be marked static.\n\nIf CONFIG_NFS_V4_1 is not defined, empty stub functions are used.  If\nCONFIG_NFS_V4 is not defined these stub functions are not used at all.\nAdding static for the functions results in compile warnings:\n\nfs/nfs/super.c:743: warning: \u0027show_sessions\u0027 defined but not used\nfs/nfs/super.c:756: warning: \u0027show_pnfs\u0027 defined but not used\n\nFix this by adding a #ifdef CONFIG_NFS_V4 guard around the two\nshow_ functions.\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7542274519b3ba87555410c66e8356ac1e3bc9b3",
      "tree": "9245c8fde7984b4338a341033c9caa5c9f128dd4",
      "parents": [
        "e6d05a757c314ad88d0649d3835a8a1daa964236"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:17 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:15 2011 -0700"
      },
      "message": "pnfsblock: fix writeback deadlock\n\nWe should check if the sector is already initialized before\ntrying to grab the page from page cache. Otherwise when two\npages of the same block are written back by two threads each\ncalling from writepage_locked, it can cause deadlock like bellow.\n\n [ 1080.972099] INFO: task kswapd0:25 blocked for more than 120 seconds.\n [ 1080.972377] \"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\n [ 1080.972812] kswapd0         D ffff88000c4926c0     0    25      2 0x00000000\n [ 1080.972816]  ffff88000df276b0 0000000000000046 ffff88000df27640 ffffffff81013ba7\n [ 1080.972821]  ffff88000c492310 ffff88000df27fd8 ffff88000df27fd8 00000000001d3440\n [ 1080.972824]  ffff88000c378000 ffff88000c492310 ffff8800175d3d40 ffff880017fc75a8\n [ 1080.972828] Call Trace:\n [ 1080.972860]  [\u003cffffffff81013ba7\u003e] ? read_tsc+0x9/0x19\n [ 1080.972877]  [\u003cffffffff810e0b23\u003e] ? lock_page+0x2b/0x2b\n [ 1080.972899]  [\u003cffffffff81475a1d\u003e] io_schedule+0x63/0x7e\n [ 1080.972902]  [\u003cffffffff810e0b31\u003e] sleep_on_page+0xe/0x12\n [ 1080.972905]  [\u003cffffffff81475fe8\u003e] __wait_on_bit_lock+0x46/0x8f\n [ 1080.972916]  [\u003cffffffff810822d7\u003e] ? lock_release_holdtime.part.7+0x6b/0x72\n [ 1080.972919]  [\u003cffffffff810e0af6\u003e] __lock_page+0x66/0x68\n [ 1080.972928]  [\u003cffffffff81072705\u003e] ? autoremove_wake_function+0x3d/0x3d\n [ 1080.972932]  [\u003cffffffff810e0b1f\u003e] lock_page+0x27/0x2b\n [ 1080.972934]  [\u003cffffffff810e0bcf\u003e] find_lock_page+0x34/0x57\n [ 1080.972937]  [\u003cffffffff810e1738\u003e] find_or_create_page+0x34/0x8a\n [ 1080.972947]  [\u003cffffffffa034245b\u003e] bl_write_pagelist+0x205/0x6da [blocklayoutdriver]\n [ 1080.972951]  [\u003cffffffffa034145d\u003e] ? bl_free_lseg+0x38/0x38 [blocklayoutdriver]\n [ 1080.972995]  [\u003cffffffffa02e27b9\u003e] ? nfs_write_rpcsetup+0x118/0x123 [nfs]\n [ 1080.973033]  [\u003cffffffffa030246b\u003e] pnfs_generic_pg_writepages+0x10b/0x1f4 [nfs]\n [ 1080.973089]  [\u003cffffffffa02deaae\u003e] nfs_pageio_doio+0x1a/0x43 [nfs]\n [ 1080.973098]  [\u003cffffffffa02df035\u003e] nfs_pageio_complete+0x16/0x2d [nfs]\n [ 1080.973108]  [\u003cffffffffa02e2d8f\u003e] nfs_writepage_locked+0xa0/0xbf [nfs]\n [ 1080.973119]  [\u003cffffffffa02e36a1\u003e] nfs_writepage+0x16/0x2b [nfs]\n [ 1080.973122]  [\u003cffffffff810e8762\u003e] ? clear_page_dirty_for_io+0x87/0x9a\n [ 1080.973133]  [\u003cffffffff810efc5b\u003e] shrink_page_list+0x39b/0x6c8\n [ 1080.973139]  [\u003cffffffff810f03bb\u003e] shrink_inactive_list+0x22c/0x39e\n [ 1080.973144]  [\u003cffffffff810822d7\u003e] ? lock_release_holdtime.part.7+0x6b/0x72\n [ 1080.973148]  [\u003cffffffff810f0c33\u003e] shrink_zone+0x445/0x588\n [ 1080.973152]  [\u003cffffffff810f1a11\u003e] balance_pgdat+0x2c2/0x56b\n [ 1080.973170]  [\u003cffffffff81254208\u003e] ? __bitmap_weight+0x34/0x80\n [ 1080.973175]  [\u003cffffffff810f1f78\u003e] kswapd+0x2be/0x2fa\n [ 1080.973179]  [\u003cffffffff810726c8\u003e] ? __init_waitqueue_head+0x4b/0x4b\n [ 1080.973183]  [\u003cffffffff810f1cba\u003e] ? balance_pgdat+0x56b/0x56b\n [ 1080.973187]  [\u003cffffffff81071f69\u003e] kthread+0xa8/0xb0\n [ 1080.973200]  [\u003cffffffff814806b4\u003e] kernel_thread_helper+0x4/0x10\n [ 1080.973205]  [\u003cffffffff81071ec1\u003e] ? __init_kthread_worker+0x5a/0x5a\n [ 1080.973210]  [\u003cffffffff814806b0\u003e] ? gs_change+0x13/0x13\n [ 1080.973213] no locks held by kswapd0/25.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e6d05a757c314ad88d0649d3835a8a1daa964236",
      "tree": "f900bf7912f5eb2546769f19fdfacccbc36e6b59",
      "parents": [
        "9b7eecdcfeb943f130d86bbc249fde4994b6fe30"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:16 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:14 2011 -0700"
      },
      "message": "pnfsblock: fix NULL pointer dereference\n\nbl_add_page_to_bio returns error pointer. bio should be reset to\nNULL in failure cases as the out path always calls bl_submit_bio.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9b7eecdcfeb943f130d86bbc249fde4994b6fe30",
      "tree": "8aacc21981ce4f482bb5bab7f4e5fc546b6b99ff",
      "parents": [
        "8ce160c5ef06cc89c2b6b26bfa5ef7a5ce2c93e0"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:15 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:14 2011 -0700"
      },
      "message": "pnfs: recoalesce when ld read pagelist fails\n\nFor pnfs pagelist read failure, we need to pg_recoalesce and resend IO to\nmds.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8ce160c5ef06cc89c2b6b26bfa5ef7a5ce2c93e0",
      "tree": "3f9bc67bba0f7cac91677759ed0eceefbf74984e",
      "parents": [
        "1b0ae068779874f54b55aac3a2a992bcf3f2c3c4"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:14 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:13 2011 -0700"
      },
      "message": "pnfs: recoalesce when ld write pagelist fails\n\nFor pnfs pagelist write failure, we need to pg_recoalesce and resend IO to\nmds.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1b0ae068779874f54b55aac3a2a992bcf3f2c3c4",
      "tree": "2cfc6f406312ca02704fedb9675a02a5ec2993bf",
      "parents": [
        "760383f1ee4d14b0e0bdf0cddee648d9b8633429"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:12 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:13 2011 -0700"
      },
      "message": "pnfs: make _set_lo_fail generic\n\nfile layout and block layout both use it to set mark layout io failure\nbit. So make it generic.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "760383f1ee4d14b0e0bdf0cddee648d9b8633429",
      "tree": "8297364891043bf07938a97018ea763afbd9298f",
      "parents": [
        "c1225158a8dad9e9d5eee8a17dbbd9c7cda05ab9"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:11 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:12 2011 -0700"
      },
      "message": "pnfsblock: add missing rpc_put_mount and path_put\n\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c1225158a8dad9e9d5eee8a17dbbd9c7cda05ab9",
      "tree": "ed543930670a47c3cb911d5580941584509b73f2",
      "parents": [
        "fdc17abbc4b6094b34ee8ff5d91eaba8637594a2"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Thu Sep 22 21:50:10 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:12 2011 -0700"
      },
      "message": "SUNRPC/NFS: make rpc pipe upcall generic\n\nThe same function is used by idmap, gss and blocklayout code. Make it\ngeneric.\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fdc17abbc4b6094b34ee8ff5d91eaba8637594a2",
      "tree": "e69fd0ed928128eac8adb4ea5ab523410d9eb276",
      "parents": [
        "516f2e24faa7548a61d9ba790958528469c2e284"
      ],
      "author": {
        "name": "Jim Rees",
        "email": "rees@umich.edu",
        "time": "Thu Sep 22 21:50:09 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:11 2011 -0700"
      },
      "message": "pnfsblock: fix size of upcall message\n\nMake the status field explicitly 32 bits.  \"...it\u0027s unlikely that the kernel\nand userspace would differ on the size of an int here, but it might be a\ngood idea to go ahead and make that explicitly 32 bits in case we end up\ndealing with more exotic arches at some point in the future.\"\n\nSuggested-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "516f2e24faa7548a61d9ba790958528469c2e284",
      "tree": "d4aa8a2fe75ada9a1af5257be8d14cb3b13fef65",
      "parents": [
        "2da956523526e440ef4f4dd174e26f5ac06fe011"
      ],
      "author": {
        "name": "Jim Rees",
        "email": "rees@umich.edu",
        "time": "Thu Sep 22 21:50:08 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:11 2011 -0700"
      },
      "message": "pnfsblock: fix return code confusion\n\nAlways return PTR_ERR, not NULL, from nfs4_blk_get_deviceinfo and\nnfs4_blk_decode_device.\n\nCheck for IS_ERR, not NULL, in bl_set_layoutdriver when calling\nnfs4_blk_get_deviceinfo.\n\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nCc: stable@kernel.org [3.0]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2da956523526e440ef4f4dd174e26f5ac06fe011",
      "tree": "718d8edd26d3eb59727dea97075ff59ba4d068fa",
      "parents": [
        "b9dd3abbbc708da5e3c53424a5b2c66ab580f97e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 12 10:57:42 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:11 2011 -0700"
      },
      "message": "nfs: don\u0027t try to migrate pages with active requests\n\nnfs_find_and_lock_request will take a reference to the nfs_page and\nwill then put it if the req is already locked. It\u0027s possible though\nthat the reference will be the last one. That put then can kick off\na whole series of reference puts:\n\nnfs_page\n   nfs_open_context\n      dentry\n          inode\n\nIf the inode ends up being deleted, then the VFS will call\ntruncate_inode_pages. That function will try to take the page lock, but\nit was already locked when migrate_page was called. The code\ndeadlocks.\n\nFix this by simply refusing the migration request if PagePrivate is\nalready set, indicating that the page is already associated with an\nactive read or write request.\n\nWe\u0027ve had a customer test a backported version of this patch and\nthe preliminary results seem good.\n\nCc: stable@kernel.org\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReported-by: Harshula Jayasuriya \u003charshula@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b9dd3abbbc708da5e3c53424a5b2c66ab580f97e",
      "tree": "f24b18e9651fd93aaf871c3de99a8903a6c36826",
      "parents": [
        "3236c3e1adc0c7ec83eaff1de2d06746b7c5bb28"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Wed Oct 12 15:09:34 2011 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:10 2011 -0700"
      },
      "message": "nfs: fix bug about IPv6 address scope checking\n\nThe result from ipv6_addr_scope() always not be a single SCOPE,\nso we can\u0027t use equal to compare the result with IPV6_ADDR_SCOPE_LINKLOCAL\nat nfs_sockaddr_match_ipaddr6.\n\nThis patch fixs the problem, and lets checking address before scope_id.\n\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3236c3e1adc0c7ec83eaff1de2d06746b7c5bb28",
      "tree": "56f360348d301c7f238a7bac464440f84930e293",
      "parents": [
        "59b7c05fffba030e5d9e72324691e2f99aa69b79"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Oct 11 09:49:21 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:10 2011 -0700"
      },
      "message": "nfs: don\u0027t redirty inode when ncommit \u003d\u003d 0 in nfs_commit_unstable_pages\n\ncommit 420e3646 allowed the kernel to reduce the number of unnecessary\ncommit calls by skipping the commit when there are a large number of\noutstanding pages.\n\nHowever, the current test in nfs_commit_unstable_pages does not handle\nthe edge condition properly. When ncommit \u003d\u003d 0, then that means that the\nkernel doesn\u0027t need to do anything more for the inode. The current test\nthough in the WB_SYNC_NONE case will return true, and the inode will end\nup being marked dirty. Once that happens the inode will never be clean\nuntil there\u0027s a WB_SYNC_ALL flush.\n\nFix this by immediately returning from nfs_commit_unstable_pages when\nncommit \u003d\u003d 0.\n\nMike noticed this problem initially in RHEL5 (2.6.18-based kernel) which\nhas a backported version of 420e3646. The inode cache there was growing\nvery large. The inode cache was unable to be shrunk since the inodes\nwere all marked dirty. Calling sync() would essentially \"fix\" the\nproblem -- the WB_SYNC_ALL flush would result in the inodes all being\nmarked clean.\n\nWhat I\u0027m not clear on is how big a problem this is in mainline kernels\nas the writeback code there is very different. Either way, it seems\nincorrect to re-mark the inode dirty in this case.\n\nReported-by: Mike McLean \u003cmikem@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: stable@kernel.org [2.6.34+]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "59b7c05fffba030e5d9e72324691e2f99aa69b79",
      "tree": "20736d2dede2244fa76413302db0d89c43b8ee70",
      "parents": [
        "899e3ee404961a90b828ad527573aaaac39f0ab1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 17 18:22:55 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 09:08:09 2011 -0700"
      },
      "message": "Revert \"NFS: Ensure that writeback_single_inode() calls write_inode() when syncing\"\n\nThis reverts commit b80c3cb628f0ebc241b02e38dd028969fb8026a2.\n\nThe reverted commit was rendered obsolete by a VFS fix: commit\n5547e8aac6f71505d621a612de2fca0dd988b439 (writeback: Update dirty flags in\ntwo steps). We now no longer need to worry about writeback_single_inode()\nmissing our marking the inode for COMMIT in \u0027do_writepages()\u0027 call.\n\nReverting this patch, fixes a performance regression in which the inode\nwould continuously get queued to the dirty list, causing the writeback\ncode to unnecessarily try to send a COMMIT.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust\u003e\nTested-by: Simon Kirby \u003csim@hostway.ca\u003e\nCc: stable@kernel.org [2.6.35+]\n"
    },
    {
      "commit": "5703728ac1194baee554163180415baf4ccd9996",
      "tree": "721eff2e021212310ebb22518c7b0d3d8a5bf1cc",
      "parents": [
        "b6d2f1ca3c1162f51098969e9c52fd099720416a"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Wed Oct 12 15:09:34 2011 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Oct 12 10:30:29 2011 -0400"
      },
      "message": "nfs: fix bug about IPv6 address scope checking\n\nThe result from ipv6_addr_scope() is a set of flags, not a single value,\nso we can\u0027t just compare the result with  IPV6_ADDR_SCOPE_LINKLOCAL.\n\nThis patch fixs the problem, and checks for unequal addresses before\nscope_id.\n\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "815d405ceff0d6964683f033e18b9b23a88fba87",
      "tree": "2bec24a44bc3edbdcedf8ae65256a0533ce4e46a",
      "parents": [
        "d94c177beeb4469cd4f6e83354ab0223353e98ed"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Sep 26 20:36:09 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 26 19:16:46 2011 -0700"
      },
      "message": "VFS: Fix the remaining automounter semantics regressions\n\nThe concensus seems to be that system calls such as stat() etc should\nnot trigger an automount.  Neither should the l* versions.\n\nThis patch therefore adds a LOOKUP_AUTOMOUNT flag to tag those lookups\nthat _should_ trigger an automount on the last path element.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[ Edited to leave out the cases that are already covered by LOOKUP_OPEN,\n  LOOKUP_DIRECTORY and LOOKUP_CREATE - all of which also fundamentally\n  force automounting for their own reasons   - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb2088ccc139ffbf1cf359216883712dab4ae43d",
      "tree": "88fd8cad42bd9d7518fdc25b519965b37cdcb4a5",
      "parents": [
        "f13c3620a4d1123dbf032f93f350b856ef292ced"
      ],
      "author": {
        "name": "Sachin Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Mon Aug 01 12:10:12 2011 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 13 17:10:15 2011 -0400"
      },
      "message": "nfs: Do not allow multiple mounts on same mountpoint when using -o noac\n\nDo not allow multiple mounts on same mountpoint when using -o noac\n\nWhen you normally attempt to mount a share twice on the same mountpoint,\na check in do_add_mount causes it to return an error\n\n# mount localhost:/nfsv3 /mnt\n# mount localhost:/nfsv3 /mnt\nmount.nfs: /mnt is already mounted or busy\n\nHowever when using the option \u0027noac\u0027, the user is able to mount the same\nshare on the same mountpoint multiple times. This happens because a\nshare mounted with the noac option is automatically assigned the \u0027sync\u0027\nflag MS_SYNCHRONOUS in nfs_initialise_sb(). This flag is set after the\ncheck for already existing superblocks is done in sget(). The check for\nthe mount flags in nfs_compare_mount_options() does not take into\naccount the \u0027sync\u0027 flag applied later on in the code path. This means\nthat when using \u0027noac\u0027, a new superblock structure is assigned for every\nnew mount of the same share and multiple shares on the same mountpoint\nare allowed.\n\nie.\n# mount -onoac localhost:/nfsv3 /mnt\ncan be run multiple times.\n\nThe patch checks for noac and assigns the sync flag before sget() is\ncalled to obtain an already existing superblock structure.\n\nSigned-off-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f13c3620a4d1123dbf032f93f350b856ef292ced",
      "tree": "b368b1d8d0174277396de2edb9bec565d300732b",
      "parents": [
        "042b60beb410caf68f576d63d6849d0f0a545eb0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Sep 12 11:47:53 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 13 17:06:57 2011 -0400"
      },
      "message": "NFS: Fix a typo in nfs_flush_multi\n\nFix a typo which causes an Oops in the RPC layer, when using wsize \u003c 4k.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nTested-by: Sricharan R \u003cr.sricharan@ti.com\u003e\n"
    },
    {
      "commit": "a9004abc34239705840eaf6fe3d6cc9cb7656cba",
      "tree": "98393ed5b30ed4d789485938ad52116eb15c7f65",
      "parents": [
        "28dde241cc65c9464b7627d9a9ed3a66e4df2586"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Aug 23 15:43:04 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Aug 27 14:21:26 2011 -0400"
      },
      "message": "nfsd4: cleanup and consolidate seqid_mutating_err\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "042b60beb410caf68f576d63d6849d0f0a545eb0",
      "tree": "82f2a8c3ed32deb165181373b619dd04902e13cc",
      "parents": [
        "2f60ea6b8ceda61ae08bef71a652eac36ec193b3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 24 15:07:37 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 24 15:07:37 2011 -0400"
      },
      "message": "NFSv4: renewd needs to be able to handle the NFS4ERR_CB_PATH_DOWN error\n\nThe NFSv4 spec does not specify that the server must repeat that error,\nso in order to avoid having the delegations revoked, we should handle\nit immediately.\n\nAlso note that NFS4ERR_CB_PATH_DOWN does in fact renew the lease...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2f60ea6b8ceda61ae08bef71a652eac36ec193b3",
      "tree": "f950b29615be254fb7f90a607caf3f307518a34b",
      "parents": [
        "8534d4ec055d854be6c94e8e5654fa87678ea5f7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 24 15:07:37 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 24 15:07:37 2011 -0400"
      },
      "message": "NFSv4: The NFSv4.0 client must send RENEW calls if it holds a delegation\n\nRFC3530 states that if the client holds a delegation, then it is obliged\nto continue to send RENEW calls once every lease period in order to allow\nthe server to return NFS4ERR_CB_PATH_DOWN if the callback path is\nunreachable.\n\nThis is not required for NFSv4.1, since the server can at any time set\nthe SEQ4_STATUS_CB_PATH_DOWN_SESSION in any SEQUENCE operation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8534d4ec055d854be6c94e8e5654fa87678ea5f7",
      "tree": "6811f11c35d6b0fe2c45b8b085d58237f2701d6d",
      "parents": [
        "b569ad34926defcff998f214afeb260331165985"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 24 15:07:37 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 24 15:07:37 2011 -0400"
      },
      "message": "NFSv4: nfs4_proc_renew should be declared static\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b569ad34926defcff998f214afeb260331165985",
      "tree": "79dc438ecac870a822df190ce130ac9bf1866964",
      "parents": [
        "a53e77fa57145cef6e2a63925db3d426128b2335"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 24 15:07:35 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 24 15:07:35 2011 -0400"
      },
      "message": "NFSv4: nfs4_proc_async_renew should use a GFP_NOFS allocation\n\nWe shouldn\u0027t allow the renew daemon to do direct reclaim on the NFS\npartition.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "11fd165c68b73434ca1273e21f21db5eecc90926",
      "tree": "75c3e2d97b2d59ebaaa4571df2ead80a4c4f35a5",
      "parents": [
        "c1f24ef4ed46f58ea5e524a2364c93b6847fb164"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jul 28 20:04:09 2011 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 19 13:25:36 2011 -0400"
      },
      "message": "sunrpc: use better NUMA affinities\n\nUse NUMA aware allocations to reduce latencies and increase throughput.\n\nsunrpc kthreads can use kthread_create_on_node() if pool_mode is\n\"percpu\" or \"pernode\", and svc_prepare_thread()/svc_init_buffer() can\nalso take into account NUMA node affinity for memory allocations.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCC: Neil Brown \u003cneilb@suse.de\u003e\nCC: David Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Greg Banks \u003cgnb@fastmail.fm\u003e\n[bfields@redhat.com: fix up caller nfs41_callback_up]\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "35a21b429917baf86d7595826e7314662ec09d0a",
      "tree": "b60e4451fe84fe113fbb98ef09733cd2071998bb",
      "parents": [
        "5c80c71b9a0ec518b4b58d2a61de01a04f4a4453",
        "910ac68a2b80c7de95bc8488734067b1bb15d583"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 18 22:47:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 18 22:47:13 2011 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFSv4.1: Return NFS4ERR_BADSESSION to callbacks during session resets\n  NFSv4.1: Fix the callback \u0027highest_used_slotid\u0027 behaviour\n  pnfs-obj: Fix the comp_index !\u003d 0 case\n  pnfs-obj: Bug when we are running out of bio\n  nfs: add missing prefetch.h include\n"
    },
    {
      "commit": "8cf1fb21632d302fad6404f891b002ab8c13b1b4",
      "tree": "92c7fd08c3a1b8e9a789a285306504b6fece6f23",
      "parents": [
        "8c20871998c082f6fbc963f1449a5ba5140ee39a"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Aug 11 14:29:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 11 17:51:27 2011 -0700"
      },
      "message": "pnfs: Automatically select blocks \u0026 objects layouts\n\nJust like files-layout, blocks \u0026 objects layouts are part of the\nNFS 4.1 protocol and should be automatically selected if NFS_4_1\nis selected. The small problem is that these depend on other\nKernel support being present, while files only depends on NFS\nitself.\n\nThis patch removes from the user choice the presence of objects\nand blocks layout. But makes sure these are selected only if\nthe depended subsystems are present in the Kernel.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nAcked-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54a33b190aa5386dd214b4ad02986445e20e83d1",
      "tree": "47f4b28e45bcc2e8c60cc758b8e92f80f446c505",
      "parents": [
        "068ef739127af1faf6f342b56d41ceea89f76c75"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Wed Aug 10 18:29:21 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 11 08:58:02 2011 -0700"
      },
      "message": "NFS41: make PNFS_BLOCK selectable\n\nPNFS_BLOCK needs BLK_DEV_DM/MD, which is not a dependency for other\npnfs layout drivers. Seperate it out so others can still build when\nBLK_DEV_DM/MD is not enabled.\n\nAlso change select to depends on to avoid build failures.\n\nReported-and-tested-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nAcked-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "910ac68a2b80c7de95bc8488734067b1bb15d583",
      "tree": "b9f7e2af9c35fcee44eb33c7cbde276885b3285c",
      "parents": [
        "55a673990ec04cf63005318bcf08c2b0046e5778"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 02 14:46:52 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 04 11:55:35 2011 -0400"
      },
      "message": "NFSv4.1: Return NFS4ERR_BADSESSION to callbacks during session resets\n\nIf the client is in the process of resetting the session when it receives\na callback, then returning NFS4ERR_DELAY may cause a deadlock with the\nDESTROY_SESSION call.\n\nBasically, if the client returns NFS4ERR_DELAY in response to the\nCB_SEQUENCE call, then the server is entitled to believe that the\nclient is busy because it is already processing that call. In that\ncase, the server is perfectly entitled to respond with a\nNFS4ERR_BACK_CHAN_BUSY to any DESTROY_SESSION call.\n\nFix this by having the client reply with a NFS4ERR_BADSESSION in\nresponse to the callback if it is resetting the session.\n\nCc: stable@kernel.org [2.6.38+]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "55a673990ec04cf63005318bcf08c2b0046e5778",
      "tree": "71e4fb3292060553063042c6190031d104d9c1f5",
      "parents": [
        "9af7db3228acc286c50e3a0f054ec982efdbc6c6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 02 14:46:29 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 04 11:55:35 2011 -0400"
      },
      "message": "NFSv4.1: Fix the callback \u0027highest_used_slotid\u0027 behaviour\n\nCurrently, there is no guarantee that we will call nfs4_cb_take_slot() even\nthough nfs4_callback_compound() will consistently call\nnfs4_cb_free_slot() provided the cb_process_state has set the \u0027clp\u0027 field.\nThe result is that we can trigger the BUG_ON() upon the next call to\nnfs4_cb_take_slot().\n\nThis patch fixes the above problem by using the slot id that was taken in\nthe CB_SEQUENCE operation as a flag for whether or not we need to call\nnfs4_cb_free_slot().\nIt also fixes an atomicity problem: we need to set tbl-\u003ehighest_used_slotid\natomically with the check for NFS4_SESSION_DRAINING, otherwise we end up\nracing with the various tests in nfs4_begin_drain_session().\n\nCc: stable@kernel.org [2.6.38+]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9af7db3228acc286c50e3a0f054ec982efdbc6c6",
      "tree": "caf8fee7b55477d3710b08436c3d3285013bbc09",
      "parents": [
        "20618b21da0796115e81906d24ff1601552701b7"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Wed Aug 03 21:52:51 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 04 11:54:48 2011 -0400"
      },
      "message": "pnfs-obj: Fix the comp_index !\u003d 0 case\n\nThere were bugs in the case of partial layout where olo_comp_index\nis not zero. This used to work and was tested but one of the later\ncleanup SQUASHMEs broke it and was not tested since.\n\nAlso add a dprint that specify those received layout parameters.\nEverything else was already printed.\n\n[Needed in v3.0]\nCC: Stable Tree \u003cstable@kernel.org\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "20618b21da0796115e81906d24ff1601552701b7",
      "tree": "11f544d34a9e27ff941597018dc9ba2ae74c845e",
      "parents": [
        "88c9e42196285a7c573e2abda11a4b5037c669bc"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Wed Aug 03 21:54:33 2011 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 04 11:54:38 2011 -0400"
      },
      "message": "pnfs-obj: Bug when we are running out of bio\n\nWhen we have a situation that the number of pages we want\nto encode is bigger then the size of the bio. (Which can\ncurrently happen only when all IO is going to a single device\n.e.g group_width\u003d\u003d1) then the IO is submitted short and we\nreport back only the amount of bytes we actually wrote/read\nand all is fine. BUT ...\n\nThere was a bug that the current length counter was advanced\nbefore the fail to add the extra page, and we come to a situation\nthat the CDB length was one-page longer then the actual bio size,\nwhich is of course rejected by the osd-target.\n\nWhile here also fix the bio size calculation, in the case\nthat we received more then one group of devices.\n\nCC: Stable Tree \u003cstable@kernel.org\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88c9e42196285a7c573e2abda11a4b5037c669bc",
      "tree": "f9931629ff8c418aaa15b9c66a3e287a465dccc1",
      "parents": [
        "288d5abec8314ae50fe6692f324b0444acae8486"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Aug 02 09:57:35 2011 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 04 11:54:25 2011 -0400"
      },
      "message": "nfs: add missing prefetch.h include\n\nFix this compile error on s390:\n\n  CC [M]  fs/nfs/blocklayout/blocklayout.o\nfs/nfs/blocklayout/blocklayout.c: In function \u0027bl_end_io_read\u0027:\nfs/nfs/blocklayout/blocklayout.c:201:4: error: implicit declaration of function \u0027prefetchw\u0027\n\nIntroduced with 9549ec01 \"pnfsblock: bl_read_pagelist\".\n\nCc: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1b8e94993c4752d98c33903aa836acc15f7e6d5c",
      "tree": "b78cba208f0a193ce6ceebbc146021af4425b4e1",
      "parents": [
        "12ff47e7f5fb64c566f62e6cf6a3b291c51bd337",
        "206d440f64030b6425841bf7cb38e26a5ea0c382"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 01 13:48:31 2011 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 01 13:48:31 2011 -1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set\n  VFS: Reorganise shrink_dcache_for_umount_subtree() after demise of dcache_lock\n  VFS: Remove dentry-\u003ed_lock locking from shrink_dcache_for_umount_subtree()\n  VFS: Remove detached-dentry counter from shrink_dcache_for_umount_subtree()\n  switch posix_acl_chmod() to umode_t\n  switch posix_acl_from_mode() to umode_t\n  switch posix_acl_equiv_mode() to umode_t *\n  switch posix_acl_create() to umode_t *\n  block: initialise bd_super in bdget()\n  vfs: avoid call to inode_lru_list_del() if possible\n  vfs: avoid taking inode_hash_lock on pipes and sockets\n  vfs: conditionally call inode_wb_list_del()\n  VFS: Fix automount for negative autofs dentries\n  Btrfs: load the key from the dir item in readdir into a fake dentry\n  devtmpfs: missing initialialization in never-hit case\n  hppfs: missing include\n"
    },
    {
      "commit": "d3fb612076eebec6f67257db0c7a9666ac7e5892",
      "tree": "5265fca258a74ffa75b845998492abb9446db72c",
      "parents": [
        "782b94cdf577b4df1feb376f372dccc28e66a771"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 18:37:50 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 02:09:42 2011 -0400"
      },
      "message": "switch posix_acl_create() to umode_t *\n\nso we can pass \u0026inode-\u003ei_mode to it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a00ed25cce6fe856388f89c7cd40da0eee7666a6",
      "tree": "24f7bfe891bfd40ed1f0013242c757c4be58b47e",
      "parents": [
        "24c3047095fa3954f114bfff2e37b8fcbb216396"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 16:39:04 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 31 14:27:04 2011 -1000"
      },
      "message": "NFS: Re-enable compilation of nfs with !CONFIG_NFS_V4 || !CONFIG_NFS_V4_1\n\nFix two recently introduced compile problems:\n\nFix a typo in fs/nfs/pnfs.h\n\nMove the pnfs_blksize declaration outside the CONFIG_NFS_V4 section in\nstruct nfs_server.\n\nReported-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24c3047095fa3954f114bfff2e37b8fcbb216396",
      "tree": "a2263a4425d511ae619ca8b055705261dab9ec12",
      "parents": [
        "6581058f44533f9d45548bcfe986c125376859e9",
        "71cdd40fd498f12679070def668f6a4719ddbd1c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 31 06:26:50 2011 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 31 06:26:50 2011 -1000"
      },
      "message": "Merge branch \u0027nfs-for-3.1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\n* \u0027nfs-for-3.1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (28 commits)\n  pnfsblock: write_pagelist handle zero invalid extents\n  pnfsblock: note written INVAL areas for layoutcommit\n  pnfsblock: bl_write_pagelist\n  pnfsblock: bl_read_pagelist\n  pnfsblock: cleanup_layoutcommit\n  pnfsblock: encode_layoutcommit\n  pnfsblock: merge rw extents\n  pnfsblock: add extent manipulation functions\n  pnfsblock: bl_find_get_extent\n  pnfsblock: xdr decode pnfs_block_layout4\n  pnfsblock: call and parse getdevicelist\n  pnfsblock: merge extents\n  pnfsblock: lseg alloc and free\n  pnfsblock: remove device operations\n  pnfsblock: add device operations\n  pnfsblock: basic extent code\n  pnfsblock: use pageio_ops api\n  pnfsblock: add blocklayout Kconfig option, Makefile, and stubs\n  pnfs: cleanup_layoutcommit\n  pnfs: ask for layout_blksize and save it in nfs_server\n  ...\n"
    },
    {
      "commit": "71cdd40fd498f12679070def668f6a4719ddbd1c",
      "tree": "d9f41109c962fd2a54e16217ce8abc37c7e99918",
      "parents": [
        "31e6306a4046926b598484f1cacf69309382eac6"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Sat Jul 30 20:52:56 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: write_pagelist handle zero invalid extents\n\nFor invalid extents, find other pages in the same fsblock and write them out.\n\n[pnfsblock: write_begin]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "31e6306a4046926b598484f1cacf69309382eac6",
      "tree": "3b71cc552cc00a37b3838c7eb0c7dd4d320fc71d",
      "parents": [
        "650e2d39bd8f6b99f39b5009dbed9fbd3bb65e54"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:55 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: note written INVAL areas for layoutcommit\n\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "650e2d39bd8f6b99f39b5009dbed9fbd3bb65e54",
      "tree": "e078728da5ac6b40af0206ca9903b95e49731cb2",
      "parents": [
        "9549ec01b0dcf1c1eb277cba60067236b3f48508"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:54 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: bl_write_pagelist\n\nNote: When upper layer\u0027s read/write request cannot be fulfilled, the block\nlayout driver shouldn\u0027t silently mark the page as error. It should do\nwhat can be done and  leave the rest to the upper layer. To do so, we\nshould set rdata/wdata-\u003eres.count properly.\n\nWhen upper layer re-send the read/write request to finish the rest\npart of the request, pgbase is the position where we should start at.\n\n[pnfsblock: bl_write_pagelist support functions]\n[pnfsblock: bl_write_pagelist adjust for missing PG_USE_PNFS]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: handle errors when read or write pagelist.]\nSigned-off-by: Zhang Jingwang \u003cyyalone@gmail.com\u003e\n[pnfs-block: use new write_pagelist api]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\n\n[SQUASHME: pnfsblock: mds_offset is set in the generic layer]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n\n[pnfsblock: mark IO error with NFS_LAYOUT_{RW|RO}_FAILED]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\n[pnfsblock: SQUASHME: adjust to API change]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: fixup blksize alignment in bl_setup_layoutcommit]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[pnfsblock: bl_write_pagelist adjust for missing PG_USE_PNFS]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: handle errors when read or write pagelist.]\nSigned-off-by: Zhang Jingwang \u003cyyalone@gmail.com\u003e\n[pnfs-block: use new write_pagelist api]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9549ec01b0dcf1c1eb277cba60067236b3f48508",
      "tree": "5f6aaeaafd088a13cf8369a11ac37367a44c2cde",
      "parents": [
        "b2be7811dd94816f3df76708c8eb7f55bf7289e2"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:53 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: bl_read_pagelist\n\nNote: When upper layer\u0027s read/write request cannot be fulfilled, the block\nlayout driver shouldn\u0027t silently mark the page as error. It should do\nwhat can be done and  leave the rest to the upper layer. To do so, we\nshould set rdata/wdata-\u003eres.count properly.\n\nWhen upper layer re-send the read/write request to finish the rest\npart of the request, pgbase is the position where we should start at.\n\n[pnfsblock: mark IO error with NFS_LAYOUT_{RW|RO}_FAILED]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\n[pnfsblock: read path error handling]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: handle errors when read or write pagelist.]\nSigned-off-by: Zhang Jingwang \u003cyyalone@gmail.com\u003e\n[pnfs-block: use new read_pagelist api]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b2be7811dd94816f3df76708c8eb7f55bf7289e2",
      "tree": "45bd90a9b478dc0a81485cfe9ec228141d4dcbf2",
      "parents": [
        "90ace12ac42f65d1f077c5ef5ec2efafdcac338f"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:52 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: cleanup_layoutcommit\n\nIn blocklayout driver. There are two things happening\nwhile layoutcommit/cleanup.\n1. the modified extents are encoded.\n2. On cleanup the extents are put back on the layout rw\n   extents list, for reads.\n\nIn the new system where actual xdr encoding is done in\nencode_layoutcommit() directly into xdr buffer, these are\nthe new commit stages:\n\n1. On setup_layoutcommit, the range is adjusted as before\n   and a structure is allocated for communication with\n   bl_encode_layoutcommit \u0026\u0026 bl_cleanup_layoutcommit\n   (Generic layer provides a void-star to hang it on)\n\n2. bl_encode_layoutcommit is called to do the actual\n   encoding directly into xdr. The commit-extent-list is not\n   freed and is stored on above structure.\n   FIXME: The code is not yet converted to the new XDR cleanup\n\n3. On cleanup the commit-extent-list is put back by a call\n   to set_to_rw() as before, but with no need for XDR decoding\n   of the list as before. And the commit-extent-list is freed.\n   Finally allocated structure is freed.\n\n[rm inode and pnfs_layout_hdr args from cleanup_layoutcommit()]\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\n[pnfsblock: introduce bl_committing list]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\n[pnfsblock: SQUASHME: adjust to API change]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[blocklayout: encode_layoutcommit implementation]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[pnfsblock: fix bug setting up layoutcommit.]\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\n[pnfsblock: cleanup_layoutcommit wants a status parameter]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "90ace12ac42f65d1f077c5ef5ec2efafdcac338f",
      "tree": "b68267bbb609498f1005c56fe957251d92e14d78",
      "parents": [
        "9f3770422c771da32c1d14e650c695eec27dbd1d"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:51 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: encode_layoutcommit\n\nIn blocklayout driver. There are two things happening\nwhile layoutcommit/cleanup.\n1. the modified extents are encoded.\n2. On cleanup the extents are put back on the layout rw\n   extents list, for reads.\n\nIn the new system where actual xdr encoding is done in\nencode_layoutcommit() directly into xdr buffer, these are\nthe new commit stages:\n\n1. On setup_layoutcommit, the range is adjusted as before\n   and a structure is allocated for communication with\n   bl_encode_layoutcommit \u0026\u0026 bl_cleanup_layoutcommit\n   (Generic layer provides a void-star to hang it on)\n\n2. bl_encode_layoutcommit is called to do the actual\n   encoding directly into xdr. The commit-extent-list is not\n   freed and is stored on above structure.\n   FIXME: The code is not yet converted to the new XDR cleanup\n\n3. On cleanup the commit-extent-list is put back by a call\n   to set_to_rw() as before, but with no need for XDR decoding\n   of the list as before. And the commit-extent-list is freed.\n   Finally allocated structure is freed.\n\n[rm inode and pnfs_layout_hdr args from cleanup_layoutcommit()]\n[pnfsblock: get rid of deprecated xdr macros]\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[blocklayout: encode_layoutcommit implementation]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[pnfsblock: fix bug setting up layoutcommit.]\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\n[pnfsblock: prevent commit list corruption]\n[pnfsblock: fix layoutcommit with an empty opaque]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9f3770422c771da32c1d14e650c695eec27dbd1d",
      "tree": "5c0ce4d8af872198c21c0fe3fd21fc8bf06a2d4b",
      "parents": [
        "c1c2a4cd352269f1fb585b4a5c63abe24dd946c6"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:50 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: merge rw extents\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c1c2a4cd352269f1fb585b4a5c63abe24dd946c6",
      "tree": "0fc7470702b0fc3e7d156ac49285ec58de797fa3",
      "parents": [
        "6d742ba538f98164f3c5e05cdcadb4ec6ddf504f"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:49 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:17 2011 -0400"
      },
      "message": "pnfsblock: add extent manipulation functions\n\nAdds working implementations of various support functions\nto handle INVAL extents, needed by writes, such as\nbl_mark_sectors_init and bl_is_sector_init.\n\n[pnfsblock: fix 64-bit compiler warnings for extent manipulation]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[Implement release_inval_marks]\nSigned-off-by: Zhang Jingwang \u003czhangjingwang@nrchpc.ac.cn\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6d742ba538f98164f3c5e05cdcadb4ec6ddf504f",
      "tree": "b87c6f5d42eccfb028a207ce48dfa474c168fd1e",
      "parents": [
        "e9437ccef92a28ba4c9009404bb8c9b5672dc54a"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:48 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: bl_find_get_extent\n\nImplement bl_find_get_extent(), one of the core extent manipulation\nroutines.\n\n[pnfsblock: Lookup list entry of layouts and tags in reverse order]\nSigned-off-by: Zhang Jingwang \u003czhangjingwang@nrchpc.ac.cn\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\n\npnfsblock: fix print format warnings for sector_t and size_t\n\ngcc spews warnings about these on x86_64, e.g.:\nfs/nfs/blocklayout/blocklayout.c:74: warning: format ‘%Lu’ expects type ‘long long unsigned int’, but argument 2 has type ‘sector_t’\nfs/nfs/blocklayout/blocklayout.c:388: warning: format ‘%d’ expects type ‘int’, but argument 5 has type ‘size_t’\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e9437ccef92a28ba4c9009404bb8c9b5672dc54a",
      "tree": "e14c1076b32c7d1ce4ba19c98beade79a74ac818",
      "parents": [
        "2f9fd182607e7b3bdca35f6ed7f2fae539f7c46b"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:47 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: xdr decode pnfs_block_layout4\n\nXDR decodes the block layout payload sent in LAYOUTGET result, storing\nthe result in an extent list.\n\n[pnfsblock: get rid of deprecated xdr macros]\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: fix bug getting pnfs_layout_type in translate_devid().]\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2f9fd182607e7b3bdca35f6ed7f2fae539f7c46b",
      "tree": "9a61ca5ef63c4160c3b632fe333720d3927b627f",
      "parents": [
        "03341d2cc91c700fc38883e572043a6a8f17dd5c"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:46 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: call and parse getdevicelist\n\nCall GETDEVICELIST during mount, then call and parse GETDEVICEINFO\nfor each device returned.\n\n[pnfsblock: get rid of deprecated xdr macros]\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\n[pnfsblock: fix pnfs_deviceid references]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: fix print format warnings for sector_t and size_t]\n[pnfs-block: #include \u003clinux/vmalloc.h\u003e]\n[pnfsblock: no PNFS_NFS_SERVER]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfsblock: fix bug determining size of striped volume]\n[pnfsblock: fix oops when using multiple devices]\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[pnfsblock: get rid of vmap and deviceid-\u003earea structure]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "03341d2cc91c700fc38883e572043a6a8f17dd5c",
      "tree": "b5e25d8597188adac536b24158f51ed99e0b10f9",
      "parents": [
        "a60d2ebd93d3c5db5b6913c4844b8e6bd3b5538e"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:45 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: merge extents\n\nReplace a stub, so that extents underlying the layouts are properly\nadded, merged, or ignored as necessary.\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: delete the new node before put it]\nSigned-off-by: Mingyang Guo \u003cguomingyang@nrchpc.ac.cn\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a60d2ebd93d3c5db5b6913c4844b8e6bd3b5538e",
      "tree": "34ef84344eb3cf3418c5ffe0058e65b3a3ec3dff",
      "parents": [
        "025a70ed6518f635f66f314d6959718be79638db"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:44 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: lseg alloc and free\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\n[pnfsblock: fix bug getting pnfs_layout_type in translate_devid().]\nSigned-off-by: Tao Guo \u003cguotao@nrchpc.ac.cn\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Zhang Jingwang \u003cJingwang.Zhang@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "025a70ed6518f635f66f314d6959718be79638db",
      "tree": "9ad10662a6dc6d864c2459012d6751e77964794b",
      "parents": [
        "fe0a9b740881d181e3c96c1f6f6043e252692ffe"
      ],
      "author": {
        "name": "Jim Rees",
        "email": "rees@umich.edu",
        "time": "Sat Jul 30 20:52:43 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: remove device operations\n\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[upcall bugfixes]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe0a9b740881d181e3c96c1f6f6043e252692ffe",
      "tree": "11dff7e25a2a9d922fba32d331530d671769c550",
      "parents": [
        "9e69296999362c4e4b2821b64389b47e86e4821b"
      ],
      "author": {
        "name": "Jim Rees",
        "email": "rees@umich.edu",
        "time": "Sat Jul 30 20:52:42 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: add device operations\n\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\n[upcall bugfixes]\nSigned-off-by: Peng Tao \u003cpeng_tao@emc.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9e69296999362c4e4b2821b64389b47e86e4821b",
      "tree": "e8810b4207cc054086eaeb519aa53d2af621ff0d",
      "parents": [
        "e9643fe80d1a1e0ad6acdf43138c39b5709fdbbe"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@citi.umich.edu",
        "time": "Sat Jul 30 20:52:41 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 31 12:18:16 2011 -0400"
      },
      "message": "pnfsblock: basic extent code\n\nAdds structures and basic create/delete code for extents.\n\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Zhang Jingwang \u003cJingwang.Zhang@emc.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "e9643fe80d1a1e0ad6acdf43138c39b5709fdbbe"
}
