)]}'
{
  "log": [
    {
      "commit": "105f4622104848ff1ee1f644d661bef9dec3eb27",
      "tree": "b50b0fb47e9530b8d67cb8cfd717f7bbd7559138",
      "parents": [
        "7d751f6f8c679f51b73d01a1b5269347a929004c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jun 07 11:50:23 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jun 20 10:38:01 2011 -0400"
      },
      "message": "nfsd4: fix break_lease flags on nfsd open\n\nThanks to Casey Bodley for pointing out that on a read open we pass 0,\ninstead of O_RDONLY, to break_lease, with the result that a read open is\ntreated like a write open for the purposes of lease breaking!\n\nReported-by: Casey Bodley \u003ccbodley@citi.umich.edu\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7d751f6f8c679f51b73d01a1b5269347a929004c",
      "tree": "d3197afcf1f8f241000eca04c45735fff973e70d",
      "parents": [
        "be1f4084b4824301e640e81d63b6275cd99ee6a1"
      ],
      "author": {
        "name": "Casey Bodley",
        "email": "cbodley@citi.umich.edu",
        "time": "Fri Jun 03 12:21:23 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jun 06 18:46:56 2011 -0400"
      },
      "message": "nfsd: link returns nfserr_delay when breaking lease\n\nfix for commit 4795bb37effb7b8fe77e2d2034545d062d3788a8, nfsd: break\nlease on unlink, link, and rename\n\nif the LINK operation breaks a delegation, it returns NFS4ERR_NOENT\n(which is not a valid error in rfc 5661) instead of NFS4ERR_DELAY.\nthe return value of nfsd_break_lease() in nfsd_link() must be\nconverted from host_err to err\n\nSigned-off-by: Casey Bodley \u003ccbodley@citi.umich.edu\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "be1f4084b4824301e640e81d63b6275cd99ee6a1",
      "tree": "f84810e6e2a4656b1446467b3d6c640f92a45803",
      "parents": [
        "b084f598df36b62dfae83c10ed17f0b66b50f442"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Jun 06 11:22:17 2011 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jun 06 18:37:35 2011 -0400"
      },
      "message": "nfsd: v4 support requires CRYPTO\n\nnfsd V4 support uses crypto interfaces, so select CRYPTO\nto fix build errors in 2.6.39:\n\nERROR: \"crypto_destroy_tfm\" [fs/nfsd/nfsd.ko] undefined!\nERROR: \"crypto_alloc_base\" [fs/nfsd/nfsd.ko] undefined!\n\nReported-by: Wakko Warner \u003cwakko@animx.eu.org\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b084f598df36b62dfae83c10ed17f0b66b50f442",
      "tree": "afc1539781e533fc5db158f674eb1a1d88f00347",
      "parents": [
        "59c5f46fbe01a00eedf54a23789634438bb80603"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue May 31 12:24:58 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jun 06 15:07:15 2011 -0400"
      },
      "message": "nfsd: fix dependency of nfsd on auth_rpcgss\n\nCommit b0b0c0a26e84 \"nfsd: add proc file listing kernel\u0027s gss_krb5\nenctypes\" added an nunnecessary dependency of nfsd on the auth_rpcgss\nmodule.\n\nIt\u0027s a little ad hoc, but since the only piece of information nfsd needs\nfrom rpcsec_gss_krb5 is a single static string, one solution is just to\nshare it with an include file.\n\nCc: stable@kernel.org\nReported-by: Michael Guntsche \u003cmike@it-loops.com\u003e\nCc: Kevin Coffman \u003ckwc@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a74d70b63f1a0230831bcca3145d85ae016f9d4c",
      "tree": "24392a2843b19e81a1a38d88b34e772bd688502b",
      "parents": [
        "b11b06d90a41766c2d31f0acb8a87aa0f2a7188f",
        "c47d832bc0155153920e507f075647519bad09a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:21:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:21:12 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.40\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.40\u0027 of git://linux-nfs.org/~bfields/linux: (22 commits)\n  nfsd: make local functions static\n  NFSD: Remove unused variable from nfsd4_decode_bind_conn_to_session()\n  NFSD: Check status from nfsd4_map_bcts_dir()\n  NFSD: Remove setting unused variable in nfsd_vfs_read()\n  nfsd41: error out on repeated RECLAIM_COMPLETE\n  nfsd41: compare request\u0027s opcnt with session\u0027s maxops at nfsd4_sequence\n  nfsd v4.1 lOCKT clientid field must be ignored\n  nfsd41: add flag checking for create_session\n  nfsd41: make sure nfs server process OPEN with EXCLUSIVE4_1 correctly\n  nfsd4: fix wrongsec handling for PUTFH + op cases\n  nfsd4: make fh_verify responsibility of nfsd_lookup_dentry caller\n  nfsd4: introduce OPDESC helper\n  nfsd4: allow fh_verify caller to skip pseudoflavor checks\n  nfsd: distinguish functions of NFSD_MAY_* flags\n  svcrpc: complete svsk processing on cb receive failure\n  svcrpc: take advantage of tcp autotuning\n  SUNRPC: Don\u0027t wait for full record to receive tcp data\n  svcrpc: copy cb reply instead of pages\n  svcrpc: close connection if client sends short packet\n  svcrpc: note network-order types in svc_process_calldir\n  ...\n"
    },
    {
      "commit": "c47d832bc0155153920e507f075647519bad09a2",
      "tree": "3ec53c2ac4f398d046d0bcf8409db7630a9b473e",
      "parents": [
        "6ce2357f1e73e0da8ebeace6ec829f48a646bb8c"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "zonque@gmail.com",
        "time": "Mon May 16 16:38:14 2011 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed May 18 15:28:31 2011 -0400"
      },
      "message": "nfsd: make local functions static\n\nThis also fixes a number of sparse warnings.\n\nSigned-off-by: Daniel Mack \u003czonque@gmail.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "70f23fd66bc821a0e99647f70a809e277cc93c4c",
      "tree": "3e768b77e63c6364ef32cf257c9449369afd215f",
      "parents": [
        "c719864f15676af92b705589c93ba1468b89cd24"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Tue May 10 10:16:21 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue May 10 10:16:21 2011 +0200"
      },
      "message": "treewide: fix a few typos in comments\n\n- kenrel -\u003e kernel\n- whetehr -\u003e whether\n- ttt -\u003e tt\n- sss -\u003e ss\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "6ce2357f1e73e0da8ebeace6ec829f48a646bb8c",
      "tree": "270bbbadd4fb2e1ae3e421a342a14f17ecd4372a",
      "parents": [
        "1db2b9dde3317e181f76860410cb0e7433896f28"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Apr 27 15:47:16 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 29 20:47:59 2011 -0400"
      },
      "message": "NFSD: Remove unused variable from nfsd4_decode_bind_conn_to_session()\n\nCompiling gave me this warning:\nfs/nfsd/nfs4xdr.c: In function ‘nfsd4_decode_bind_conn_to_session’:\nfs/nfsd/nfs4xdr.c:427:6: warning: variable ‘dummy’ set but not used\n[-Wunused-but-set-variable]\n\nThe local variable \"dummy\" wasn\u0027t being used past the READ32() macro that\nset it.  READ_BUF() should ensure that the xdr buffer is pushed past the\ndata read into dummy already, so nothing needs to be read in.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\n[bfields@redhat.com: minor comment fixup.]\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "1db2b9dde3317e181f76860410cb0e7433896f28",
      "tree": "e5175ed6fe697559debe07d44c52d1f6141fb61f",
      "parents": [
        "fccb13c947de83a368e1f3c2216bbf4d8d41efa1"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Apr 27 15:47:15 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 29 20:47:58 2011 -0400"
      },
      "message": "NFSD: Check status from nfsd4_map_bcts_dir()\n\nCompiling gave me this warning:\nfs/nfsd/nfs4state.c: In function ‘nfsd4_bind_conn_to_session’:\nfs/nfsd/nfs4state.c:1623:9: warning: variable ‘status’ set but not used\n[-Wunused-but-set-variable]\n\nThe local variable \"status\" was being set by nfsd4_map_bcts_dir() and\nthen ignored before calling nfsd4_new_conn().\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "fccb13c947de83a368e1f3c2216bbf4d8d41efa1",
      "tree": "48f4ce535e1e34e610cf0eb4b6127db76e7b6a55",
      "parents": [
        "bcecf1ccc336200ee488e8eb68acdafc4b0dbd1a"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Apr 27 15:47:14 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 29 20:47:57 2011 -0400"
      },
      "message": "NFSD: Remove setting unused variable in nfsd_vfs_read()\n\nCompiling gave me this warning:\nfs/nfsd/vfs.c: In function ‘nfsd_vfs_read’:\nfs/nfsd/vfs.c:880:16: warning: variable ‘inode’ set but not used\n[-Wunused-but-set-variable]\n\nI discovered that a local variable \"inode\" was being set towards the\nbeginning of nfsd_vfs_read() and then ignored for the rest of the\nfunction.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "bcecf1ccc336200ee488e8eb68acdafc4b0dbd1a",
      "tree": "b3376aa05de0925490c04a19edfdabf87c4507d6",
      "parents": [
        "868b89c3dc25eec03985b31ff070e8f73c818980"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Wed Apr 27 09:14:30 2011 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 29 20:47:56 2011 -0400"
      },
      "message": "nfsd41: error out on repeated RECLAIM_COMPLETE\n\nServers are supposed to return nfserr_complete_already to clients that\nattempt to send multiple RECLAIM_COMPLETEs.\n\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "868b89c3dc25eec03985b31ff070e8f73c818980",
      "tree": "f3ef1fc3c5d7414195af355fddd956d81fc81fc6",
      "parents": [
        "b7c66360dc34e64742edabf4dc410070aa883119"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Wed Apr 27 09:09:58 2011 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 29 20:47:55 2011 -0400"
      },
      "message": "nfsd41: compare request\u0027s opcnt with session\u0027s maxops at nfsd4_sequence\n\nMake sure nfs server errors out if request contains more ops\nthan channel allows.\n\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\n[bfields@redhat.com: use helper function]\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b7c66360dc34e64742edabf4dc410070aa883119",
      "tree": "289f97cc0109f822d36b3538e6da18e00e54a19b",
      "parents": [
        "a62573dc353b255dbbc8520bfdcb1c8a8c1ada87"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 22 12:45:59 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 29 20:47:54 2011 -0400"
      },
      "message": "nfsd v4.1 lOCKT clientid field must be ignored\n\nRFC 5661 Section 18.11.3\n\n   The clientid field of the owner MAY be set to any value by the client\n   and MUST be ignored by the server.  The reason the server MUST ignore\n   the clientid field is that the server MUST derive the client ID from\n   the session ID from the SEQUENCE operation of the COMPOUND request.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a62573dc353b255dbbc8520bfdcb1c8a8c1ada87",
      "tree": "23c0b4cd8dfe6a0670237d946df6b5b184c25f1b",
      "parents": [
        "ac6721a13e5b1a90728e790600f827a5e5f5da2f"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Wed Mar 23 17:57:07 2011 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 29 20:47:53 2011 -0400"
      },
      "message": "nfsd41: add flag checking for create_session\n\nTeach the NFS server to reject invalid create_session flags.\n\nAlso do some minor formatting adjustments.\n\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ac6721a13e5b1a90728e790600f827a5e5f5da2f",
      "tree": "f39f1faaaa4059956d8fde5fbb29fc5500d1e513",
      "parents": [
        "68d93184352f2e723f135b0a9bad93b58f9d120b"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Wed Apr 20 17:06:25 2011 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 29 20:47:52 2011 -0400"
      },
      "message": "nfsd41: make sure nfs server process OPEN with EXCLUSIVE4_1 correctly\n\nThe NFS server uses nfsd_create_v3 to handle EXCLUSIVE4_1 opens, but\nthat function is not prepared to handle them.\n\nRename nfsd_create_v3() to do_nfsd_create(), and add handling of\nEXCLUSIVE4_1.\n\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "68d93184352f2e723f135b0a9bad93b58f9d120b",
      "tree": "edf66ceadd6ce4559a53355b83265dc65a7d7694",
      "parents": [
        "29a78a3ed7fc9c4ee49962751eb321b038c190a2"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 08 17:00:50 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 29 20:47:51 2011 -0400"
      },
      "message": "nfsd4: fix wrongsec handling for PUTFH + op cases\n\nWhen PUTFH is followed by an operation that uses the filehandle, and\nwhen the current client is using a security flavor that is inconsistent\nwith the given filehandle, we have a choice: we can return WRONGSEC\neither when the current filehandle is set using the PUTFH, or when the\nfilehandle is first used by the following operation.\n\nFollow the recommendations of RFC 5661 in making this choice.\n\n(Our current behavior prevented the client from doing security\nnegotiation by returning WRONGSEC on PUTFH+SECINFO_NO_NAME.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "1574dff8996ab1ed92c09012f8038b5566fce313",
      "tree": "0721b1775b9a99ed5481e8a47383f6f49b50f64a",
      "parents": [
        "a96e5b90804be8b540d30f4a1453fc87f95b3149"
      ],
      "author": {
        "name": "Sachin Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Wed Apr 20 13:09:35 2011 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 20 11:03:01 2011 -0400"
      },
      "message": "Open with O_CREAT flag set fails to open existing files on non writable directories\n\nAn open on a NFS4 share using the O_CREAT flag on an existing file for\nwhich we have permissions to open but contained in a directory with no\nwrite permissions will fail with EACCES.\n\nA tcpdump shows that the client had set the open mode to UNCHECKED which\nindicates that the file should be created if it doesn\u0027t exist and\nencountering an existing flag is not an error. Since in this case the\nfile exists and can be opened by the user, the NFS server is wrong in\nattempting to check create permissions on the parent directory.\n\nThe patch adds a conditional statement to check for create permissions\nonly if the file doesn\u0027t exist.\n\nSigned-off-by: Sachin S. Prabhu \u003csprabhu@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a96e5b90804be8b540d30f4a1453fc87f95b3149",
      "tree": "16504bb1b02626001ef0ef84991e87d0c95e1061",
      "parents": [
        "4ee63624fd927376b97ead3a8d00728d437bc8e8"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Mon Apr 18 11:48:55 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Apr 19 17:31:13 2011 -0400"
      },
      "message": "nfsd4: Fix filp leak\n\n23fcf2ec93fb8573a653408316af599939ff9a8e (nfsd4: fix oops on lock failure)\n\nThe above patch breaks free path for stp-\u003est_file. If stp was inserted\ninto sop-\u003eso_stateids, we have to free stp-\u003est_file refcount. Because\nstp-\u003est_file refcount itself is taken whether or not any refcounts are\ntaken on the stp-\u003est_file-\u003efi_fds[].\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "4ee63624fd927376b97ead3a8d00728d437bc8e8",
      "tree": "b30cd55c7fbcb5c3c76d62db9a7b467cbf17e993",
      "parents": [
        "a6360dd37e1a144ed11e6548371bade559a1e4df"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 15 18:08:26 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Apr 18 13:30:56 2011 -0400"
      },
      "message": "nfsd4: fix struct file leak on delegation\n\nIntroduced by acfdf5c383b38f7f4dddae41b97c97f1ae058f49.\n\nCc: stable@kernel.org\nReported-by: Gerhard Heift \u003cml-nfs-linux-20110412-ef47@gheift.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "18770c7c3a0ccd60017ac76b5d2e7d1f71376b94",
      "tree": "548e113ab83307d25e41ea1e67ace6f53b194798",
      "parents": [
        "6b98cd5aad3bb51a3b5b51ba670ab8d5fe1cc487",
        "23fcf2ec93fb8573a653408316af599939ff9a8e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:45:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:45:17 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.39\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd4: fix oops on lock failure\n  nfsd: fix auth_domain reference leak on nlm operations\n"
    },
    {
      "commit": "29a78a3ed7fc9c4ee49962751eb321b038c190a2",
      "tree": "88798f9c1a4247fa7de6bb7f698cbd47213895ac",
      "parents": [
        "22b03214962ec2a9748abc9987fc2e66dec4626d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Apr 09 11:28:53 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Apr 11 08:42:22 2011 -0400"
      },
      "message": "nfsd4: make fh_verify responsibility of nfsd_lookup_dentry caller\n\nThe secinfo caller actually won\u0027t want this.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "22b03214962ec2a9748abc9987fc2e66dec4626d",
      "tree": "c179d4f9d06e5f92704820da28896bbc4ec46999",
      "parents": [
        "204f4ce75434c3453907813f8a819d4cf2a5728f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Apr 09 11:23:24 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Apr 11 08:42:21 2011 -0400"
      },
      "message": "nfsd4: introduce OPDESC helper\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "204f4ce75434c3453907813f8a819d4cf2a5728f",
      "tree": "779f8796bda32557b48b3ee5f7a57bc45fff90fb",
      "parents": [
        "aea93397db4b39c9d15443a0e7cc9a380ba990c6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 08 16:32:54 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Apr 11 08:42:20 2011 -0400"
      },
      "message": "nfsd4: allow fh_verify caller to skip pseudoflavor checks\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "aea93397db4b39c9d15443a0e7cc9a380ba990c6",
      "tree": "fe98a2b9f48b814c0d911d5ff1d700a7465f40d3",
      "parents": [
        "8985ef0b8af895c3b85a8c1b7108e0169fcbd20b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Apr 10 10:35:12 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Apr 11 08:42:03 2011 -0400"
      },
      "message": "nfsd: distinguish functions of NFSD_MAY_* flags\n\nMost of the NFSD_MAY_* flags actually request permissions, but over the\nyears we\u0027ve accreted a few that modify the behavior of the permission or\nopen code in other ways.\n\nDistinguish the two cases a little more.  In particular, allow the\nshortcut at the start of nfsd_permission to ignore the\nnon-permission-requesting bits.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "23fcf2ec93fb8573a653408316af599939ff9a8e",
      "tree": "36fcfe93f655c77651f4417b6882b9a4e04392c3",
      "parents": [
        "954032d2527f2fce7355ba70709b5e143d6b686f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 28 15:15:09 2011 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Apr 10 12:21:27 2011 -0400"
      },
      "message": "nfsd4: fix oops on lock failure\n\nLock stateid\u0027s can have access_bmap 0 if they were only partially\ninitialized (due to a failed lock request); handle that case in\nfree_generic_stateid.\n\n------------[ cut here ]------------\nkernel BUG at fs/nfsd/nfs4state.c:380!\ninvalid opcode: 0000 [#1] SMP\nlast sysfs file: /sys/kernel/mm/ksm/run\nModules linked in: nfs fscache md4 nls_utf8 cifs ip6table_filter ip6_tables ebtable_nat ebtables ipt_MASQUERADE iptable_nat nf_nat bridge stp llc nfsd lockd nfs_acl auth_rpcgss sunrpc ipv6 ppdev parport_pc parport pcnet32 mii pcspkr microcode i2c_piix4 BusLogic floppy [last unloaded: mperf]\n\nPid: 1468, comm: nfsd Not tainted 2.6.38+ #120 VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform\nEIP: 0060:[\u003ce24f180d\u003e] EFLAGS: 00010297 CPU: 0\nEIP is at nfs4_access_to_omode+0x1c/0x29 [nfsd]\nEAX: ffffffff EBX: dd758120 ECX: 00000000 EDX: 00000004\nESI: dd758120 EDI: ddfe657c EBP: dd54dde0 ESP: dd54dde0\n DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068\nProcess nfsd (pid: 1468, ti\u003ddd54c000 task\u003dddc92580 task.ti\u003ddd54c000)\nStack:\n dd54ddf0 e24f19ca 00000000 ddfe6560 dd54de08 e24f1a5d dd758130 deee3a20\n ddfe6560 31270000 dd54df1c e24f52fd 0000000f dd758090 e2505dd0 0be304cf\n dbb51d68 0000000e ddfe657c ddcd8020 dd758130 dd758128 dd7580d8 dd54de68\nCall Trace:\n [\u003ce24f19ca\u003e] free_generic_stateid+0x1c/0x3e [nfsd]\n [\u003ce24f1a5d\u003e] release_lockowner+0x71/0x8a [nfsd]\n [\u003ce24f52fd\u003e] nfsd4_lock+0x617/0x66c [nfsd]\n [\u003ce24e57b6\u003e] ? nfsd_setuser+0x199/0x1bb [nfsd]\n [\u003ce24e056c\u003e] ? nfsd_setuser_and_check_port+0x65/0x81 [nfsd]\n [\u003cc07a0052\u003e] ? _cond_resched+0x8/0x1c\n [\u003cc04ca61f\u003e] ? slab_pre_alloc_hook.clone.33+0x23/0x27\n [\u003cc04cac01\u003e] ? kmem_cache_alloc+0x1a/0xd2\n [\u003cc04835a0\u003e] ? __call_rcu+0xd7/0xdd\n [\u003ce24e0dfb\u003e] ? fh_verify+0x401/0x452 [nfsd]\n [\u003ce24f0b61\u003e] ? nfsd4_encode_operation+0x52/0x117 [nfsd]\n [\u003ce24ea0d7\u003e] ? nfsd4_putfh+0x33/0x3b [nfsd]\n [\u003ce24f4ce6\u003e] ? nfsd4_delegreturn+0xd4/0xd4 [nfsd]\n [\u003ce24ea2c9\u003e] nfsd4_proc_compound+0x1ea/0x33e [nfsd]\n [\u003ce24de6ee\u003e] nfsd_dispatch+0xd1/0x1a5 [nfsd]\n [\u003ce1d6e1c7\u003e] svc_process_common+0x282/0x46f [sunrpc]\n [\u003ce1d6e578\u003e] svc_process+0xdc/0xfa [sunrpc]\n [\u003ce24de0fa\u003e] nfsd+0xd6/0x115 [nfsd]\n [\u003ce24de024\u003e] ? nfsd_shutdown+0x24/0x24 [nfsd]\n [\u003cc0454322\u003e] kthread+0x62/0x67\n [\u003cc04542c0\u003e] ? kthread_worker_fn+0x114/0x114\n [\u003cc07a6ebe\u003e] kernel_thread_helper+0x6/0x10\nCode: eb 05 b8 00 00 27 4f 8d 65 f4 5b 5e 5f 5d c3 83 e0 03 55 83 f8 02 89 e5 74 17 83 f8 03 74 05 48 75 09 eb 09 b8 02 00 00 00 eb 0b \u003c0f\u003e 0b 31 c0 eb 05 b8 01 00 00 00 5d c3 55 89 e5 57 56 89 d6 8d\nEIP: [\u003ce24f180d\u003e] nfs4_access_to_omode+0x1c/0x29 [nfsd] SS:ESP 0068:dd54dde0\n---[ end trace 2b0bf6c6557cb284 ]---\n\nThe trace route is:\n\n -\u003e nfsd4_lock()\n   -\u003e if (lock-\u003elk_is_new) {\n     -\u003e alloc_init_lock_stateid()\n\n        3739: stp-\u003est_access_bmap \u003d 0;\n\n   -\u003eif (status \u0026\u0026 lock-\u003elk_is_new \u0026\u0026 lock_sop)\n     -\u003e release_lockowner()\n      -\u003e free_generic_stateid()\n       -\u003e nfs4_access_bmap_to_omode()\n          -\u003e nfs4_access_to_omode()\n\n        380: BUG();   *****\n\nThis problem was introduced by 0997b173609b9229ece28941c118a2a9b278796e.\n\nReported-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nTested-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d6c558379abc27241c75b8c30fc8c94b82537d5e",
      "tree": "ed20d4042267c929897152856b007317840ff4f4",
      "parents": [
        "9660439861aa8dbd5e2b8087f33e20760c2c9afc",
        "954032d2527f2fce7355ba70709b5e143d6b686f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 07 15:19:21 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 07 15:19:21 2011 -0400"
      },
      "message": "Merge branch \u0027for-2.6.39\u0027 into for-2.6.40\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "954032d2527f2fce7355ba70709b5e143d6b686f",
      "tree": "e602da8c751a208c72ca7beb7edbdd10cf955884",
      "parents": [
        "4be34b9d69c97211ff4eb00d79078f3c1593804d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 24 22:51:14 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 24 23:11:27 2011 -0400"
      },
      "message": "nfsd: fix auth_domain reference leak on nlm operations\n\nThis was noticed by users who performed more than 2^32 lock operations\nand hence made this counter overflow (eventually leading to\nuse-after-free\u0027s).  Setting rq_client to NULL here means that it won\u0027t\nlater get auth_domain_put() when it should be.\n\nAppears to have been introduced in 2.5.42 by \"[PATCH] kNFSd: Move auth\ndomain lookup into svcauth\" which moved most of the rq_client handling\nto common svcauth code, but left behind this one line.\n\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "dc87c55120b0a5b0c4d731183f8bb348981aba65",
      "tree": "c5a4f94ed6cc1678072c125f2cae08f04ce4f2b8",
      "parents": [
        "5818fcc8bd1b27af4d40b8357b91a56cc3fae6a4",
        "4be34b9d69c97211ff4eb00d79078f3c1593804d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 08:20:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 08:20:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.39\u0027 of git://linux-nfs.org/~bfields/linux:\n  SUNRPC: Remove resource leak in svc_rdma_send_error()\n  nfsd: wrong index used in inner loop\n  nfsd4: fix comment and remove unused nfsd4_file fields\n  nfs41: make sure nfs server return right ca_maxresponsesize_cached\n  nfsd: fix compile error\n  svcrpc: fix bad argument in unix_domain_find\n  nfsd4: fix struct file leak\n  nfsd4: minor nfs4state.c reshuffling\n  svcrpc: fix rare race on unix_domain creation\n  nfsd41: modify the members value of nfsd4_op_flags\n  nfsd: add proc file listing kernel\u0027s gss_krb5 enctypes\n  gss:krb5 only include enctype numbers in gm_upcall_enctypes\n  NFSD, VFS: Remove dead code in nfsd_rename()\n  nfsd: kill unused macro definition\n  locks: use assign_type()\n"
    },
    {
      "commit": "7cc90cc3ffe22a0d81b8d605b20a82ec7911012d",
      "tree": "a870fc960dd10a12be6fb905ea266c65547c11bb",
      "parents": [
        "b12cea9198fa99ffd3de1776c323bc7464d26b44"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 18 09:04:20 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 18 09:04:20 2011 -0400"
      },
      "message": "don\u0027t pass \u0027mounting_here\u0027 flag to follow_down()\n\nit\u0027s always false now\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5a02ab7c3c4580f94d13c683721039855b67cda6",
      "tree": "b9a4a8814f4dce7086ae2d0c3d43863d6187aaa1",
      "parents": [
        "cf507b6f8ebae89c0e7bbd00abc6d8887c9035b1"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Fri Mar 11 12:13:55 2011 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 17 13:09:19 2011 -0400"
      },
      "message": "nfsd: wrong index used in inner loop\n\nWe must not use dummy for index.\nAfter the first index, READ32(dummy) will change dummy!!!!\n\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\n[bfields@redhat.com: Trond points out READ_BUF alone is sufficient.]\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "cf507b6f8ebae89c0e7bbd00abc6d8887c9035b1",
      "tree": "834a5c5bbd63aed0756d47978679d230d5dedec4",
      "parents": [
        "9ae78bcc000168251f893b1bf92a848308187695",
        "3ec07aa9522e3d5e9d5ede7bef946756e623a0a0"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 17 13:07:20 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 17 13:07:25 2011 -0400"
      },
      "message": "Merge create_session decoding fix into for-2.6.39\n\nThis needs a further fixup!\n"
    },
    {
      "commit": "9ae78bcc000168251f893b1bf92a848308187695",
      "tree": "d51f0f875f6a74aabe56dfcb71cf92348d4cb982",
      "parents": [
        "d2b217439fd1d8f7857175f063113f4d1d66306c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 17 12:52:33 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 17 12:52:33 2011 -0400"
      },
      "message": "nfsd4: fix comment and remove unused nfsd4_file fields\n\nA couple fields here were left over from a previous version of a patch,\nand are no longer used.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d2b217439fd1d8f7857175f063113f4d1d66306c",
      "tree": "35d8c2463a53de77b20ae6d37807b04d33ecfedb",
      "parents": [
        "0a5e5f122c756d1c1a6ca712eda76ea8664e5fd9"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Thu Mar 10 17:43:37 2011 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 16 11:10:22 2011 -0400"
      },
      "message": "nfs41: make sure nfs server return right ca_maxresponsesize_cached\n\nAccording to rfc5661,\n\n  ca_maxresponsesize_cached:\n\n     Like ca_maxresponsesize, but the maximum size of a reply that\n     will be stored in the reply cache (Section 2.10.6.1).  For each\n     channel, the server MAY decrease this value, but MUST NOT\n     increase it.\n\nthe latest kernel(2.6.38-rc8) may increase the value for ignoring\nrequest\u0027s ca_maxresponsesize_cached value. We should not ignore it.\n\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0a5e5f122c756d1c1a6ca712eda76ea8664e5fd9",
      "tree": "4907d421c3f9f6a718cdc9a8811642c4c65cd8b0",
      "parents": [
        "352b5d13c0684ba8cd103aa20cb74f105334562a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 14 20:57:44 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 14 20:57:44 2011 -0400"
      },
      "message": "nfsd: fix compile error\n\n\"fs/built-in.o: In function `supported_enctypes_show\u0027:\nnfsctl.c:(.text+0x7beb0): undefined reference to `gss_mech_get_by_name\u0027\nnfsctl.c:(.text+0x7bebc): undefined reference to `gss_mech_put\u0027\n\"\n\nReported-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3ec07aa9522e3d5e9d5ede7bef946756e623a0a0",
      "tree": "40978798d31499caa6764ea408add9f50db9bf13",
      "parents": [
        "32b007b4e19b50ff4d27ea8b69cd6d744cfec86b"
      ],
      "author": {
        "name": "roel",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Mar 08 22:32:26 2011 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Mar 08 19:46:10 2011 -0500"
      },
      "message": "nfsd: wrong index used in inner loop\n\nIndex i was already used in the outer loop\n\nCc: stable@kernel.org\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0997b173609b9229ece28941c118a2a9b278796e",
      "tree": "30d8c6f3846371b78a9339c5798dd59c60fa4a4c",
      "parents": [
        "529d7b2a7fa31e9f7d08bc790d232c3cbe64fa24"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 02 18:01:35 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Mar 08 19:38:27 2011 -0500"
      },
      "message": "nfsd4: fix struct file leak\n\nMake sure we properly reference count the struct files that a lock\ndepends on, and release them when the lock stateid is released.\n\nThis fixes a major leak of struct files when using locking over nfsv4.\n\nCc: stable@kernel.org\nReported-by: Rick Koshi \u003cnfs-bug-report@more-right-rudder.com\u003e\nTested-by: Ivo Přikryl \u003cprikryl@eurosat.cz\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "529d7b2a7fa31e9f7d08bc790d232c3cbe64fa24",
      "tree": "360e2cc5e182b2f84b98e9d36329a8226d9f9e2a",
      "parents": [
        "8b3e07ac908d005bb791410f594cce8744f6806a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 02 23:48:33 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Mar 08 19:38:15 2011 -0500"
      },
      "message": "nfsd4: minor nfs4state.c reshuffling\n\nMinor cleanup in preparation for a bugfix--moving some code to avoid\nforward references, etc.  No change in functionality.\n\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5ece3cafbd88d4da5c734e1810c4a2e6474b57b2",
      "tree": "3b5cb4c04cd19d589c8fb473fc6808445ac74029",
      "parents": [
        "b0b0c0a26e846ae6646af9f59a3d2ea06b49cbc7"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Fri Feb 18 09:08:31 2011 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 07 12:10:33 2011 -0500"
      },
      "message": "nfsd41: modify the members value of nfsd4_op_flags\n\nThe members of nfsd4_op_flags, (ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS)\nequals to  ALLOWED_AS_FIRST_OP, maybe that\u0027s not what we want.\n\nOP_PUTROOTFH with op_flags \u003d ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS,\ncan\u0027t appears as the first operation with out SEQUENCE ops.\n\nThis patch modify the wrong value of ALLOWED_WITHOUT_FH etc which\nwas introduced by f9bb94c4.\n\nCc: stable@kernel.org\nReviewed-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b0b0c0a26e846ae6646af9f59a3d2ea06b49cbc7",
      "tree": "4fd43c06c0e63b6004fd2b6808ac8d0677921cc6",
      "parents": [
        "540c8cb6a576f34a9a0b04467f46bb6e67a1f852"
      ],
      "author": {
        "name": "Kevin Coffman",
        "email": "kwc@citi.umich.edu",
        "time": "Wed Mar 02 19:51:42 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 07 12:06:48 2011 -0500"
      },
      "message": "nfsd: add proc file listing kernel\u0027s gss_krb5 enctypes\n\nAdd a new proc file which lists the encryption types supported\nby the kernel\u0027s gss_krb5 code.\n\nNewer MIT Kerberos libraries support the assertion of acceptor\nsubkeys.  This enctype information allows user-land (svcgssd)\nto request that the Kerberos libraries limit the encryption\ntypes that it uses when generating the subkeys.\n\nSigned-off-by: Kevin Coffman \u003ckwc@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "46d4cef9cf54f2f8b15216e3f6dad69750c69e0c",
      "tree": "43996e82b91a206579d57b99c620be40e78a3f95",
      "parents": [
        "35079582e72efcabf7c70f3d3ee4f96e6f196606"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sun Mar 06 00:30:35 2011 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 07 12:05:14 2011 -0500"
      },
      "message": "NFSD, VFS: Remove dead code in nfsd_rename()\n\nCurrently we have the following code in fs/nfsd/vfs.c::nfsd_rename() :\n\n\t...\n\thost_err \u003d nfsd_break_lease(odentry-\u003ed_inode);\n\tif (host_err)\n\t\tgoto out_drop_write;\n\tif (ndentry-\u003ed_inode) {\n\t\thost_err \u003d nfsd_break_lease(ndentry-\u003ed_inode);\n\t\tif (host_err)\n\t\t\tgoto out_drop_write;\n\t}\n\tif (host_err)\n\t\tgoto out_drop_write;\n\t...\n\n\u0027host_err\u0027 is guaranteed to be 0 by the time we test \u0027ndentry-\u003ed_inode\u0027.\nIf \u0027host_err\u0027 becomes !\u003d 0 inside the \u0027if\u0027 statement, then we goto\n\u0027out_drop_write\u0027. So, after the \u0027if\u0027 statement there is no way that\n\u0027host_err\u0027 can be anything but 0, so the test afterwards is just dead\ncode.\nThis patch removes the dead code.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "35079582e72efcabf7c70f3d3ee4f96e6f196606",
      "tree": "5c00cde404ab4492c699510b9dd5b5d16bcffe7e",
      "parents": [
        "f32cb53219a956b96a4cd1ee7c6b1b8a48d40e9f"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Fri Jan 14 17:35:59 2011 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 07 12:05:09 2011 -0500"
      },
      "message": "nfsd: kill unused macro definition\n\nThese macros had never been used for several years.\nSo, remove them.\n\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "32b007b4e19b50ff4d27ea8b69cd6d744cfec86b",
      "tree": "ada73d6c52a6e9b37cbdc95d086485fdf338561a",
      "parents": [
        "2c9c8f36c34e1defcaa7e4c298651998b47f5282"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Mar 06 19:11:03 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 07 11:44:53 2011 -0500"
      },
      "message": "nfsd4: fix bad pointer on failure to find delegation\n\nIn case of a nonempty list, the return on error here is obviously bogus;\nit ends up being a pointer to the list head instead of to any valid\ndelegation on the list.\n\nIn particular, if nfsd4_delegreturn() hits this case, and you\u0027re quite unlucky,\nthen renew_client may oops, and it may take an embarassingly long time to\nfigure out why.  Facepalm.\n\nBUG: unable to handle kernel NULL pointer dereference at 0000000000000090\nIP: [\u003cffffffff81292965\u003e] nfsd4_delegreturn+0x125/0x200\n...\n\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "2c9c8f36c34e1defcaa7e4c298651998b47f5282",
      "tree": "47c48d0db92ea600163b3dfee52f3a0c48e47234",
      "parents": [
        "47c85291d3dd1a51501555000b90f8e281a0458e"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Feb 22 14:43:22 2011 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Feb 22 15:55:09 2011 -0800"
      },
      "message": "NFSD: fix decode_cb_sequence4resok\n\nFix bug introduced in patch\n85a56480 NFSD: Update XDR decoders in NFSv4 callback client\n\nAlthough decode_cb_sequence4resok ignores highest slotid and target highest slotid\nit must account for their space in their xdr stream when calling xdr_inline_decode\n\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "47c85291d3dd1a51501555000b90f8e281a0458e",
      "tree": "ea581e7c383b25242355335c4c06aad21b9bf4cc",
      "parents": [
        "85e2efbb1db9a18d218006706d6e4fbeb0216213"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 16 13:08:35 2011 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Feb 16 18:31:05 2011 -0500"
      },
      "message": "nfsd: correctly handle return value from nfsd_map_name_to_*\n\nThese functions return an nfs status, not a host_err.  So don\u0027t\ntry to convert  before returning.\n\nThis is a regression introduced by\n3c726023402a2f3b28f49b9d90ebf9e71151157d; I fixed up two of the callers,\nbut missed these two.\n\nCc: stable@kernel.org\nReported-by: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "83f6b0c18204f68961f58b9f69e5dba0d36056a2",
      "tree": "87d08d398b61bee64a2ebc5a538f57f752c6c0d9",
      "parents": [
        "acfdf5c383b38f7f4dddae41b97c97f1ae058f49"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Feb 06 16:46:30 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:19 2011 -0500"
      },
      "message": "nfsd: break lease on unlink due to rename\n\n4795bb37effb7b8fe77e2d2034545d062d3788a8 \"nfsd: break lease on unlink,\nlink, and rename\", only broke the lease on the file that was being\nrenamed, and didn\u0027t handle the case where the target path refers to an\nalready-existing file that will be unlinked by a rename--in that case\nthe target file should have any leases broken as well.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "acfdf5c383b38f7f4dddae41b97c97f1ae058f49",
      "tree": "f04f5f069191fa984a394154efdf766898bffcaf",
      "parents": [
        "5d926e8c2f46dc09f4ddde86644a5f1d0726a470"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 31 19:20:39 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:19 2011 -0500"
      },
      "message": "nfsd4: acquire only one lease per file\n\nInstead of acquiring one lease each time another client opens a file,\nnfsd can acquire just one lease to represent all of them, and reference\ncount it to determine when to release it.\n\nThis fixes a regression introduced by\nc45821d263a8a5109d69a9e8942b8d65bcd5f31a \"locks: eliminate fl_mylease\ncallback\": after that patch, only the struct file * is used to determine\nwho owns a given lease.  But since we recently converted the server to\nshare a single struct file per open, if we acquire multiple leases on\nthe same file from nfsd, it then becomes impossible on unlocking a lease\nto determine which of those leases (all of whom share the same struct\nfile *) we meant to remove.\n\nThanks to Takashi Iwai \u003ctiwai@suse.de\u003e for catching a bug in a previous\nversion of this patch.\n\nTested-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5d926e8c2f46dc09f4ddde86644a5f1d0726a470",
      "tree": "ef30c949c75ee204c3108159caf9eeb22daf8418",
      "parents": [
        "65bc58f5187e2ff4011ef1bd3082e83cd1b036f1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 07 16:53:46 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:19 2011 -0500"
      },
      "message": "nfsd4: modify fi_delegations under recall_lock\n\nModify fi_delegations only under the recall_lock, allowing us to use\nthat list on lease breaks.\n\nAlso some trivial cleanup to simplify later changes.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "65bc58f5187e2ff4011ef1bd3082e83cd1b036f1",
      "tree": "c634f0053dce5ae476cbd23aeaa9c444f16d3133",
      "parents": [
        "edab9782b5a16abb8d139d261e81e13ef0be35a9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 07 15:44:12 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:19 2011 -0500"
      },
      "message": "nfsd4: remove unused deleg dprintk\u0027s.\n\nThese aren\u0027t all that useful, and get in the way of the next steps.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "edab9782b5a16abb8d139d261e81e13ef0be35a9",
      "tree": "44d843dbac80823b0d9f66d43151956ada711f1f",
      "parents": [
        "dd239cc05f0ad9f582dd83d88a4fb5edcc57a026"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 31 17:58:10 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:18 2011 -0500"
      },
      "message": "nfsd4: split lease setting into separate function\n\nSplitting some code into a separate function which we\u0027ll be adding some\nmore to.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "dd239cc05f0ad9f582dd83d88a4fb5edcc57a026",
      "tree": "ea1a50af9405d104d5c98620eed4ca10bf131df6",
      "parents": [
        "22d38c4c10e8344aa406897d99a35d585d2cb77d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 31 17:14:55 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:18 2011 -0500"
      },
      "message": "nfsd4: fix leak on allocation error\n\nAlso share some common exit code.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "22d38c4c10e8344aa406897d99a35d585d2cb77d",
      "tree": "9b591b2c218a3e1a80efab0b0cb69d2a73f3796e",
      "parents": [
        "6b57d9c86d0ab11c091b6db2edff8b5553fd445b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 31 11:55:12 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:18 2011 -0500"
      },
      "message": "nfsd4: add helper function for lease setup\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "6b57d9c86d0ab11c091b6db2edff8b5553fd445b",
      "tree": "fdd5ed018e05e068f3a96766dbea85f2cb3cc8ef",
      "parents": [
        "3aa6e0aa8ab3e64bbfba092c64d42fd1d006b124"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 31 11:54:04 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:18 2011 -0500"
      },
      "message": "nfsd4: split up nfsd_break_deleg_cb\n\nWe\u0027ll be adding some more code here soon.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3aa6e0aa8ab3e64bbfba092c64d42fd1d006b124",
      "tree": "d86305c39f790e90c51f4095b26157053538d2a5",
      "parents": [
        "0af3f814ccf0a13d3e01e8115b96f1824379fc72"
      ],
      "author": {
        "name": "Konstantin Khorenko",
        "email": "khorenko@parallels.com",
        "time": "Tue Feb 01 17:16:29 2011 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:18 2011 -0500"
      },
      "message": "NFSD: memory corruption due to writing beyond the stat array\n\nIf nfsd fails to find an exported via NFS file in the readahead cache, it\nshould increment corresponding nfsdstats counter (ra_depth[10]), but due to a\nbug it may instead write to ra_depth[11], corrupting the following field.\n\nIn a kernel with NFSDv4 compiled in the corruption takes the form of an\nincrement of a counter of the number of NFSv4 operation 0\u0027s received; since\nthere is no operation 0, this is harmless.\n\nIn a kernel with NFSDv4 disabled it corrupts whatever happens to be in the\nmemory beyond nfsdstats.\n\nSigned-off-by: Konstantin Khorenko \u003ckhorenko@openvz.org\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0af3f814ccf0a13d3e01e8115b96f1824379fc72",
      "tree": "e5d3fb53f7cd0ed0ceb66e1991e6e7791b63e024",
      "parents": [
        "541ce98c10111dae7604543dda6c6f7e7a6015d8"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu Jan 13 11:25:31 2011 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:18 2011 -0500"
      },
      "message": "NFSD: use nfserr for status after decode_cb_op_status\n\nBugs introduced in 85a56480191ca9f08fc775c129b9eb5c8c1f2c05\n\"NFSD: Update XDR decoders in NFSv4 callback client\"\n\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "541ce98c10111dae7604543dda6c6f7e7a6015d8",
      "tree": "007ffb90e9992569030905a5f0df82e7a0f839f4",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jan 14 20:00:02 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:31:08 2011 -0500"
      },
      "message": "nfsd: don\u0027t leak dentry count on mnt_want_write failure\n\nThe exit cleanup isn\u0027t quite right here.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f8206b925fb0eba3a11839419be118b09105d7b1",
      "tree": "5d41b356a043da09c816ed80bd79d1ea8b2b47e5",
      "parents": [
        "1b59be2a6cdcb5a12e18d8315c07c94a624de48f",
        "f03c65993b98eeb909a4012ce7833c5857d74755"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 11:31:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 11:31:50 2011 -0800"
      },
      "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: (23 commits)\n  sanitize vfsmount refcounting changes\n  fix old umount_tree() breakage\n  autofs4: Merge the remaining dentry ops tables\n  Unexport do_add_mount() and add in follow_automount(), not -\u003ed_automount()\n  Allow d_manage() to be used in RCU-walk mode\n  Remove a further kludge from __do_follow_link()\n  autofs4: Bump version\n  autofs4: Add v4 pseudo direct mount support\n  autofs4: Fix wait validation\n  autofs4: Clean up autofs4_free_ino()\n  autofs4: Clean up dentry operations\n  autofs4: Clean up inode operations\n  autofs4: Remove unused code\n  autofs4: Add d_manage() dentry operation\n  autofs4: Add d_automount() dentry operation\n  Remove the automount through follow_link() kludge code from pathwalk\n  CIFS: Use d_automount() rather than abusing follow_link()\n  NFS: Use d_automount() rather than abusing follow_link()\n  AFS: Use d_automount() rather than abusing follow_link()\n  Add an AT_NO_AUTOMOUNT flag to suppress terminal automount\n  ...\n"
    },
    {
      "commit": "cc53ce53c86924bfe98a12ea20b7465038a08792",
      "tree": "3c9a4923dd9f413c46bfa83a20cb579446df6deb",
      "parents": [
        "9875cf806403fae66b2410a3c2cc820d97731e04"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 18:45:26 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:31 2011 -0500"
      },
      "message": "Add a dentry op to allow processes to be held during pathwalk transit\n\nAdd a dentry op (d_manage) to permit a filesystem to hold a process and make it\nsleep when it tries to transit away from one of that filesystem\u0027s directories\nduring a pathwalk.  The operation is keyed off a new dentry flag\n(DCACHE_MANAGE_TRANSIT).\n\nThe filesystem is allowed to be selective about which processes it holds and\nwhich it permits to continue on or prohibits from transiting from each flagged\ndirectory.  This will allow autofs to hold up client processes whilst letting\nits userspace daemon through to maintain the directory or the stuff behind it\nor mounted upon it.\n\nThe -\u003ed_manage() dentry operation:\n\n\tint (*d_manage)(struct path *path, bool mounting_here);\n\ntakes a pointer to the directory about to be transited away from and a flag\nindicating whether the transit is undertaken by do_add_mount() or\ndo_move_mount() skipping through a pile of filesystems mounted on a mountpoint.\n\nIt should return 0 if successful and to let the process continue on its way;\n-EISDIR to prohibit the caller from skipping to overmounted filesystems or\nautomounting, and to use this directory; or some other error code to return to\nthe user.\n\n-\u003ed_manage() is called with namespace_sem writelocked if mounting_here is true\nand no other locks held, so it may sleep.  However, if mounting_here is true,\nit may not initiate or wait for a mount or unmount upon the parameter\ndirectory, even if the act is actually performed by userspace.\n\nWithin fs/namei.c, follow_managed() is extended to check with d_manage() first\non each managed directory, before transiting away from it or attempting to\nautomount upon it.\n\nfollow_down() is renamed follow_down_one() and should only be used where the\nfilesystem deliberately intends to avoid management steps (e.g. autofs).\n\nA new follow_down() is added that incorporates the loop done by all other\ncallers of follow_down() (do_add/move_mount(), autofs and NFSD; whilst AFS, NFS\nand CIFS do use it, their use is removed by converting them to use\nd_automount()).  The new follow_down() calls d_manage() as appropriate.  It\nalso takes an extra parameter to indicate if it is being called from mount code\n(with namespace_sem writelocked) which it passes to d_manage().  follow_down()\nignores automount points so that it can be used to mount on them.\n\n__follow_mount_rcu() is made to abort rcu-walk mode if it hits a directory with\nDCACHE_MANAGE_TRANSIT set on the basis that we\u0027re probably going to have to\nsleep.  It would be possible to enter d_manage() in rcu-walk mode too, and have\nthat determine whether to abort or not itself.  That would allow the autofs\ndaemon to continue on in rcu-walk mode.\n\nNote that DCACHE_MANAGE_TRANSIT on a directory should be cleared when it isn\u0027t\nrequired as every tranist from that directory will cause d_manage() to be\ninvoked.  It can always be set again when necessary.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWHAT THIS MEANS FOR AUTOFS\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAutofs currently uses the lookup() inode op and the d_revalidate() dentry op to\ntrigger the automounting of indirect mounts, and both of these can be called\nwith i_mutex held.\n\nautofs knows that the i_mutex will be held by the caller in lookup(), and so\ncan drop it before invoking the daemon - but this isn\u0027t so for d_revalidate(),\nsince the lock is only held on _some_ of the code paths that call it.  This\nmeans that autofs can\u0027t risk dropping i_mutex from its d_revalidate() function\nbefore it calls the daemon.\n\nThe bug could manifest itself as, for example, a process that\u0027s trying to\nvalidate an automount dentry that gets made to wait because that dentry is\nexpired and needs cleaning up:\n\n\tmkdir         S ffffffff8014e05a     0 32580  24956\n\tCall Trace:\n\t [\u003cffffffff885371fd\u003e] :autofs4:autofs4_wait+0x674/0x897\n\t [\u003cffffffff80127f7d\u003e] avc_has_perm+0x46/0x58\n\t [\u003cffffffff8009fdcf\u003e] autoremove_wake_function+0x0/0x2e\n\t [\u003cffffffff88537be6\u003e] :autofs4:autofs4_expire_wait+0x41/0x6b\n\t [\u003cffffffff88535cfc\u003e] :autofs4:autofs4_revalidate+0x91/0x149\n\t [\u003cffffffff80036d96\u003e] __lookup_hash+0xa0/0x12f\n\t [\u003cffffffff80057a2f\u003e] lookup_create+0x46/0x80\n\t [\u003cffffffff800e6e31\u003e] sys_mkdirat+0x56/0xe4\n\nversus the automount daemon which wants to remove that dentry, but can\u0027t\nbecause the normal process is holding the i_mutex lock:\n\n\tautomount     D ffffffff8014e05a     0 32581      1              32561\n\tCall Trace:\n\t [\u003cffffffff80063c3f\u003e] __mutex_lock_slowpath+0x60/0x9b\n\t [\u003cffffffff8000ccf1\u003e] do_path_lookup+0x2ca/0x2f1\n\t [\u003cffffffff80063c89\u003e] .text.lock.mutex+0xf/0x14\n\t [\u003cffffffff800e6d55\u003e] do_rmdir+0x77/0xde\n\t [\u003cffffffff8005d229\u003e] tracesys+0x71/0xe0\n\t [\u003cffffffff8005d28d\u003e] tracesys+0xd5/0xe0\n\nwhich means that the system is deadlocked.\n\nThis patch allows autofs to hold up normal processes whilst the daemon goes\nahead and does things to the dentry tree behind the automouter point without\nrisking a deadlock as almost no locks are held in d_manage() and none in\nd_automount().\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nWas-Acked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bce371ae09af6c20ee62c1092a4d1d0e84dd49",
      "tree": "f3467fafd8e49392e3f6efef7b88a7b4dd3b7b06",
      "parents": [
        "ec08bdb148767f1193f5f3028749ed865ac27181",
        "a8f2800b4f7b76cecb7209cb6a7d2b14904fc711"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux: (62 commits)\n  nfsd4: fix callback restarting\n  nfsd: break lease on unlink, link, and rename\n  nfsd4: break lease on nfsd setattr\n  nfsd: don\u0027t support msnfs export option\n  nfsd4: initialize cb_per_client\n  nfsd4: allow restarting callbacks\n  nfsd4: simplify nfsd4_cb_prepare\n  nfsd4: give out delegations more quickly in 4.1 case\n  nfsd4: add helper function to run callbacks\n  nfsd4: make sure sequence flags are set after destroy_session\n  nfsd4: re-probe callback on connection loss\n  nfsd4: set sequence flag when backchannel is down\n  nfsd4: keep finer-grained callback status\n  rpc: allow xprt_class-\u003esetup to return a preexisting xprt\n  rpc: keep backchannel xprt as long as server connection\n  rpc: move sk_bc_xprt to svc_xprt\n  nfsd4: allow backchannel recovery\n  nfsd4: support BIND_CONN_TO_SESSION\n  nfsd4: modify session list under cl_lock\n  Documentation: fl_mylease no longer exists\n  ...\n\nFix up conflicts in fs/nfsd/vfs.c with the vfs-scale work.  The\nvfs-scale work touched some msnfs cases, and this merge removes support\nfor that entirely, so the conflict was trivial to resolve.\n"
    },
    {
      "commit": "a8f2800b4f7b76cecb7209cb6a7d2b14904fc711",
      "tree": "29a582ee8af49577cce3e868800dfd8d8485b1e3",
      "parents": [
        "4795bb37effb7b8fe77e2d2034545d062d3788a8"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jan 14 14:25:48 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jan 14 14:51:31 2011 -0500"
      },
      "message": "nfsd4: fix callback restarting\n\nEnsure a new callback is added to the client\u0027s list of callbacks at most\nonce.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "4795bb37effb7b8fe77e2d2034545d062d3788a8",
      "tree": "1c87d2880d5552005cd7e845594672d0b4babc7f",
      "parents": [
        "6a76bebefe15d9a08864f824d7f8d5beaf37c997"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 13:55:46 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jan 13 21:04:09 2011 -0500"
      },
      "message": "nfsd: break lease on unlink, link, and rename\n\nAny change to any of the links pointing to an entry should also break\ndelegations.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "6a76bebefe15d9a08864f824d7f8d5beaf37c997",
      "tree": "d52ae82116e8681c094f62f70cdb12b654dd9f29",
      "parents": [
        "9ce137eee4febaabca81143be07d4205d2bd52d4"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 12:54:39 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jan 13 21:04:08 2011 -0500"
      },
      "message": "nfsd4: break lease on nfsd setattr\n\nLeases (delegations) should really be broken on any metadata change, not\njust on size change.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "9ce137eee4febaabca81143be07d4205d2bd52d4",
      "tree": "e52e5225e1d113164382bf85bca83a2c0330d64e",
      "parents": [
        "9ee1ba5402e9d35fb35f8e61c968f4987b5fb443"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 14:07:12 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jan 13 21:04:07 2011 -0500"
      },
      "message": "nfsd: don\u0027t support msnfs export option\n\nWe\u0027ve long had these pointless #ifdef MSNFS\u0027s sprinkled throughout the\ncode--pointless because MSNFS is always defined (and we give no config\noption to make that easy to change).  So we could just remove the\nifdef\u0027s and compile the resulting code unconditionally.\n\nBut as long as we\u0027re there: why not just rip out this code entirely?\nThe only purpose is to implement the \"msnfs\" export option which turns\non Windows-like behavior in some cases, and:\n\n\t- the export option isn\u0027t documented anywhere;\n\t- the userland utilities (which would need to be able to parse\n\t  \"msnfs\" in an export file) don\u0027t support it;\n\t- I don\u0027t know how to maintain this, as I don\u0027t know what the\n\t  proper behavior is; and\n\t- google shows no evidence that anyone has ever used this.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "9ee1ba5402e9d35fb35f8e61c968f4987b5fb443",
      "tree": "2f513ebaab9558dac9a3d7e37cb3422a972c082f",
      "parents": [
        "5ce8ba25d657a71d6d8cdb05a2b90c5ae7debfda"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jan 13 17:08:19 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jan 13 21:04:06 2011 -0500"
      },
      "message": "nfsd4: initialize cb_per_client\n\nOtherwise a callback that is aborted before it runs will result in a\nlist_del on an uninitialized list head.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "b9d919a4ac6cf031b8e065f82ad8f1b0c9ed74b1",
      "tree": "3139b066396956fd3794df0cb1aa74dcc9f1cb28",
      "parents": [
        "7c955fca3e1d8132982148267d9efcafae849bb6",
        "357f54d6b38252737116a6d631f6ac28ded018ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 15:11:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 15:11:56 2011 -0800"
      },
      "message": "Merge branch \u0027nfs-for-2.6.38\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.38\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (89 commits)\n  NFS fix the setting of exchange id flag\n  NFS: Don\u0027t use vm_map_ram() in readdir\n  NFSv4: Ensure continued open and lockowner name uniqueness\n  NFS: Move cl_delegations to the nfs_server struct\n  NFS: Introduce nfs_detach_delegations()\n  NFS: Move cl_state_owners and related fields to the nfs_server struct\n  NFS: Allow walking nfs_client.cl_superblocks list outside client.c\n  pnfs: layout roc code\n  pnfs: update nfs4_callback_recallany to handle layouts\n  pnfs: add CB_LAYOUTRECALL handling\n  pnfs: CB_LAYOUTRECALL xdr code\n  pnfs: change lo refcounting to atomic_t\n  pnfs: check that partial LAYOUTGET return is ignored\n  pnfs: add layout to client list before sending rpc\n  pnfs: serialize LAYOUTGET(openstateid)\n  pnfs: layoutget rpc code cleanup\n  pnfs: change how lsegs are removed from layout list\n  pnfs: change layout state seqlock to a spinlock\n  pnfs: add prefix to struct pnfs_layout_hdr fields\n  pnfs: add prefix to struct pnfs_layout_segment fields\n  ...\n"
    },
    {
      "commit": "5ce8ba25d657a71d6d8cdb05a2b90c5ae7debfda",
      "tree": "831d815e91e23de373fe7fdc7a54b3eb098067f5",
      "parents": [
        "3ff3600e7eab16301e824293e8f49b9990bd4641"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 10 16:44:41 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:11 2011 -0500"
      },
      "message": "nfsd4: allow restarting callbacks\n\nIf we lose the backchannel and then the client repairs the problem,\nresend any callbacks.\n\nWe use a new cb_done flag to track whether there is still work to be\ndone for the callback or whether it can be destroyed with the rpc.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3ff3600e7eab16301e824293e8f49b9990bd4641",
      "tree": "54aebfd0b6321ad45fb9795003e276e8895259b8",
      "parents": [
        "14a24e99f4f506265b634c1cd04eca6394f49dbc"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 10 16:37:51 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:11 2011 -0500"
      },
      "message": "nfsd4: simplify nfsd4_cb_prepare\n\nRemove handling for a nonexistant case (status \u0026\u0026 !-EAGAIN).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "14a24e99f4f506265b634c1cd04eca6394f49dbc",
      "tree": "fc4cf899d906af192e96d6a8838322fa23989485",
      "parents": [
        "229b2a0839870d0d4f91ad3b24ec13c57bbd50a0"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 10 19:02:49 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:11 2011 -0500"
      },
      "message": "nfsd4: give out delegations more quickly in 4.1 case\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "229b2a0839870d0d4f91ad3b24ec13c57bbd50a0",
      "tree": "76798fb234c46aee1db85d69a37e034d107d16e0",
      "parents": [
        "84f5f7ccc59e628fc8754c0a837fd7e9559711ac"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 10 17:37:44 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:11 2011 -0500"
      },
      "message": "nfsd4: add helper function to run callbacks\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "84f5f7ccc59e628fc8754c0a837fd7e9559711ac",
      "tree": "0c735feb7862b45251a74ead6eb9ae789022a04c",
      "parents": [
        "eea4980660bc204bb9d11bb3bf2b1bde5fd5175f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Dec 09 15:52:19 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:11 2011 -0500"
      },
      "message": "nfsd4: make sure sequence flags are set after destroy_session\n\nIf this loses any backchannel, make sure we have a chance to notice that\nand set the sequence flags.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "eea4980660bc204bb9d11bb3bf2b1bde5fd5175f",
      "tree": "01265eb9b4fb3904f60b246ef6c9f322a241545f",
      "parents": [
        "0d7bb71907546b2baf15d78edd3e508e12963dbf"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Nov 18 08:34:12 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "nfsd4: re-probe callback on connection loss\n\nThis makes sure we set the sequence flag when necessary.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0d7bb71907546b2baf15d78edd3e508e12963dbf",
      "tree": "4ccdc54a5c95701455d0060f9b7106253e35af59",
      "parents": [
        "77a3569d6c4e14e89fa628df383b6dccc0cce6be"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Nov 18 08:30:33 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "nfsd4: set sequence flag when backchannel is down\n\nImplement the SEQ4_STATUS_CB_PATH_DOWN flag.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "77a3569d6c4e14e89fa628df383b6dccc0cce6be",
      "tree": "3e89bd0aa2fe679ec212212bc232651f08ef7b2b",
      "parents": [
        "f0418aa4b1103f959d64dc18273efa04ee0140e9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 30 18:51:44 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "nfsd4: keep finer-grained callback status\n\nDistinguish between when the callback channel is known to be down, and\nwhen it is not yet confirmed.  This will be useful in the 4.1 case.\n\nAlso, we don\u0027t seem to be using the fact that this field is atomic.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dcbeaa68dbbdacbbb330a86c7fc95a28473fc209",
      "tree": "5ef2b2c1e65d22275a867700551e4a663c4a98ad",
      "parents": [
        "1d1bc8f2074f0b728dfca2a3c16f2f5a3f298ffc"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jun 15 17:25:45 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "nfsd4: allow backchannel recovery\n\nNow that we have a list of connections to choose from, we can teach the\ncallback code to just pick a suitable connection and use that, instead\nof insisting on forever using the connection that the first\ncreate_session was sent with.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1d1bc8f2074f0b728dfca2a3c16f2f5a3f298ffc",
      "tree": "314aae91a98ab5358886a1d8517151f40816ec4c",
      "parents": [
        "4c6493785a1ea9c3b3522f199760a90a30e1626c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 04 23:12:59 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:09 2011 -0500"
      },
      "message": "nfsd4: support BIND_CONN_TO_SESSION\n\nBasic xdr and processing for BIND_CONN_TO_SESSION.  This adds a\nconnection to the list of connections associated with a session.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "4c6493785a1ea9c3b3522f199760a90a30e1626c",
      "tree": "30dd59c79e81cb59e77d7f270df755f061a0b8d5",
      "parents": [
        "ec26fba40fa92c7cc5c61d40746f499dcefc67be"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jun 15 14:22:37 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:09 2011 -0500"
      },
      "message": "nfsd4: modify session list under cl_lock\n\nWe want to traverse this from the callback code.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "23d69b09b78c4876e134f104a3814c30747c53f1",
      "tree": "40744de4f4126c21027ce537264524095e0e7979",
      "parents": [
        "e744070fd4ff9d3114277e52d77afa21579adce2",
        "569ff2de2e1c8ac67c8df3a7367d46d0d9460a35"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 16:58:04 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 16:58:04 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (33 commits)\n  usb: don\u0027t use flush_scheduled_work()\n  speedtch: don\u0027t abuse struct delayed_work\n  media/video: don\u0027t use flush_scheduled_work()\n  media/video: explicitly flush request_module work\n  ioc4: use static work_struct for ioc4_load_modules()\n  init: don\u0027t call flush_scheduled_work() from do_initcalls()\n  s390: don\u0027t use flush_scheduled_work()\n  rtc: don\u0027t use flush_scheduled_work()\n  mmc: update workqueue usages\n  mfd: update workqueue usages\n  dvb: don\u0027t use flush_scheduled_work()\n  leds-wm8350: don\u0027t use flush_scheduled_work()\n  mISDN: don\u0027t use flush_scheduled_work()\n  macintosh/ams: don\u0027t use flush_scheduled_work()\n  vmwgfx: don\u0027t use flush_scheduled_work()\n  tpm: don\u0027t use flush_scheduled_work()\n  sonypi: don\u0027t use flush_scheduled_work()\n  hvsi: don\u0027t use flush_scheduled_work()\n  xen: don\u0027t use flush_scheduled_work()\n  gdrom: don\u0027t use flush_scheduled_work()\n  ...\n\nFixed up trivial conflict in drivers/media/video/bt8xx/bttv-input.c\nas per Tejun.\n"
    },
    {
      "commit": "b7ab39f631f505edc2bbdb86620d5493f995c9da",
      "tree": "62be97ebc7fc69ceb601f23312d335ebb8038ee7",
      "parents": [
        "2304450783dfde7b0b94ae234edd0dbffa865073"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:32 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale dentry refcount\n\nMake d_count non-atomic and protect it with d_lock. This allows us to ensure a\n0 refcount dentry remains 0 without dcache_lock. It is also fairly natural when\nwe start protecting many other dentry members with d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "6f3d772fb8a039de8f21d725f5e38c252b4c0efd",
      "tree": "a62c900be0d2766223f0e5630cebaaf2ffee0efb",
      "parents": [
        "3c726023402a2f3b28f49b9d90ebf9e71151157d"
      ],
      "author": {
        "name": "Takuma Umeya",
        "email": "tumeya@redhat.com",
        "time": "Wed Dec 15 14:09:01 2010 +0900"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 19:43:01 2011 -0500"
      },
      "message": "nfs4: set source address when callback is generated\n\nwhen callback is generated in NFSv4 server, it doesn\u0027t set the source\naddress. When an alias IP is utilized on NFSv4 server and suppose the\nclient is accessing via that alias IP (e.g. eth0:0), the client invokes\nthe callback to the IP address that is set on the original device (e.g.\neth0). This behavior results in timeout of xprt.\nThe patch sets the IP address that the client should invoke callback to.\n\nSigned-off-by: Takuma Umeya \u003ctumeya@redhat.com\u003e\n[bfields@redhat.com: Simplify gen_callback arguments, use helper function]\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3c726023402a2f3b28f49b9d90ebf9e71151157d",
      "tree": "434ee06a662815327c8bd34aaf7b5258994dc033",
      "parents": [
        "775a1905e1e042e830eae31e70efec9387eb3e1d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 17:53:52 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 18:22:11 2011 -0500"
      },
      "message": "nfsd4: return nfs errno from name_to_id functions\n\nThis avoids the need for the confusing ESRCH mapping.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "775a1905e1e042e830eae31e70efec9387eb3e1d",
      "tree": "104db32371877565973646fc43166f74a7d7f132",
      "parents": [
        "2ca72e17e5acb1052c35c9faba609c2289ce7a92"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 17:38:41 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 18:22:10 2011 -0500"
      },
      "message": "nfsd4: remove outdated pathname-comments\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "2ca72e17e5acb1052c35c9faba609c2289ce7a92",
      "tree": "fc93ed7824a22a9492f408a2f2143ac795afc741",
      "parents": [
        "f6af99ec1b261e21219d5eba99e3af48fc6c32d4"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 17:37:15 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 18:22:09 2011 -0500"
      },
      "message": "nfsd4: move idmap and acl header files into fs/nfsd\n\nThese are internal nfsd interfaces.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f6af99ec1b261e21219d5eba99e3af48fc6c32d4",
      "tree": "828eab9238b2178e3d13abde226edcb1ec0c57a8",
      "parents": [
        "255c7cf810e4776ae8f1023332060459f30d8a2a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 18:02:15 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 18:21:36 2011 -0500"
      },
      "message": "nfsd4: name-\u003eid mapping should fail with BADOWNER not BADNAME\n\nAccording to rfc 3530 BADNAME is for strings that represent paths;\nBADOWNER is for user/group names that don\u0027t map.\n\nAnd the too-long name should probably be BADOWNER as well; it\u0027s\neffectively the same as if we couldn\u0027t map it.\n\nCc: stable@kernel.org\nReported-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nReported-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c45821d263a8a5109d69a9e8942b8d65bcd5f31a",
      "tree": "816e9b7f98f0eb174557dfd093526b165f274348",
      "parents": [
        "c84d500bc41658165ceb0dd04dc6a75249940fba"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Oct 31 00:04:44 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:28 2011 -0500"
      },
      "message": "locks: eliminate fl_mylease callback\n\nThe nfs server only supports read delegations for now, so we don\u0027t care\nhow conflicts are determined.  All we care is that unlocks are\nrecognized as matching the leases they are meant to remove.  After the\nlast patch, a comparison of struct files will work for that purpose.  So\nwe no longer need this callback.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c84d500bc41658165ceb0dd04dc6a75249940fba",
      "tree": "95ad867b5fb4807f5f8c1172a0797e70d5e96168",
      "parents": [
        "e63eb9375089f9d2041305d04c3f33a194e0e014"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 30 23:35:04 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:27 2011 -0500"
      },
      "message": "nfsd4: use a single struct file for delegations\n\nWhen we converted to sharing struct filess between nfs4 opens I went too\nfar and also used the same mechanism for delegations.  But keeping\na reference to the struct file ensures it will outlast the lease, and\nallows us to remove the lease with the same file as we added it.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e63eb9375089f9d2041305d04c3f33a194e0e014",
      "tree": "c6c3b73e8af30267bfcddc5e128b09df6ea576c9",
      "parents": [
        "fdef7aa5d4020fd94ffcbf0078d6bd9e5a111e19"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 30 17:41:26 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:26 2011 -0500"
      },
      "message": "nfsd4: eliminate lease delete callback\n\nnfsd controls the lifetime of the lease, not the lock code, so there\u0027s\nno need for this callback on lease destruction.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "da165dd60e136d0609e0a2c0c2a9b9a5372200d6",
      "tree": "e6cb7540b6233d447be9ff29cc6a20c357249b35",
      "parents": [
        "062304a815fe10068c478a4a3f28cf091c55cb82"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Jan 02 22:13:18 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:23 2011 -0500"
      },
      "message": "nfsd: remove some unnecessary dropit handling\n\nWe no longer need a few of these special cases.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "062304a815fe10068c478a4a3f28cf091c55cb82",
      "tree": "6e006246bbbb7cb23b1f0871e9b24170d58146bb",
      "parents": [
        "9e701c610923aaeac8b38b9202a686d1cc9ee35d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Jan 02 22:05:33 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:23 2011 -0500"
      },
      "message": "nfsd: stop translating EAGAIN to nfserr_dropit\n\nWe no longer need this.\n\nAlso, EWOULDBLOCK is generally a synonym for EAGAIN, but that may not be\ntrue on all architectures, so map it as well.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "9e701c610923aaeac8b38b9202a686d1cc9ee35d",
      "tree": "1b2d65df63858a2cd35a4154e6d8a9fea3e716a3",
      "parents": [
        "d76d1815f3e72fb627ad7f95ef63120b0a557c9c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Jan 02 21:56:36 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:22 2011 -0500"
      },
      "message": "svcrpc: simpler request dropping\n\nCurrently we use -EAGAIN returns to determine when to drop a deferred\nrequest.  On its own, that is error-prone, as it makes us treat -EAGAIN\nreturns from other functions specially to prevent inadvertent dropping.\n\nSo, use a flag on the request instead.\n\nReturning an error on request deferral is still required, to prevent\nfurther processing, but we no longer need worry that an error return on\nits own could result in a drop.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3beb6cd1d448e7ded938bbd676493e6a08e9a6cd",
      "tree": "d33cdca2db5433f65cfbaa67068feebf9017cbe8",
      "parents": [
        "65e4c8945575abca4e368e05ca3e9f77df030290"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Jan 01 15:43:50 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:20 2011 -0500"
      },
      "message": "nfsd: don\u0027t drop requests on -ENOMEM\n\nWe never want to drop a request if we could return a JUKEBOX/DELAY error\ninstead; so, convert to nfserr_jukebox and let nfsd_dispatch() convert\nthat to a dropit error as a last resort if JUKEBOX/DELAY is unavailable\n(as in the NFSv2 case).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "65e4c8945575abca4e368e05ca3e9f77df030290",
      "tree": "3ae6e50500d131692697128835d7410c19939e74",
      "parents": [
        "bdd5f05d91e8ae68075b812ce244c918d3d752cd"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Thu Dec 16 15:25:54 2010 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:19 2011 -0500"
      },
      "message": "nfsd: declare several functions of nfs4callback as static\n\nsetup_callback_client(), nfsd4_release_cb() and nfsd4_process_cb_update()\ndo not have users outside the translation unit. Let\u0027s declare it as\nstatic.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "22b6dee842c6341b49bc09cc5728eb2f8f2b3766",
      "tree": "36c4a39433f2e99c385ab4eca11cfc8dcb99ca14",
      "parents": [
        "04f4ad16b231abbfde34c762697ad035a3af0b5f"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Mon Dec 27 14:29:57 2010 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Dec 29 11:54:06 2010 -0700"
      },
      "message": "nfsd4: fix oops on secinfo_no_name result encoding\n\nThe secinfo_no_name code oopses on encoding with\n\n\tBUG: unable to handle kernel NULL pointer dereference at 00000044\n\tIP: [\u003ce2bd239a\u003e] nfsd4_encode_secinfo+0x1c/0x1c1 [nfsd]\n\nWe should implement a nfsd4_encode_secinfo_no_name() instead using\nnfsd4_encode_secinfo().\n\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3603b8eaccc8e41d3f355b3cadd662a3dd6699fd",
      "tree": "7aaf66e8b6dceddd96ade80e451f09982fb2c977",
      "parents": [
        "e61eb2e93fe86931d46831752a82dab25a5335ca"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Dec 20 09:15:19 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Dec 20 09:15:19 2010 +0100"
      },
      "message": "Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n\nCommit a8adbe3 forgot to remove the return variable, kill it.\n\ndrivers/block/loop.c: In function \u0027lo_splice_actor\u0027:\ndrivers/block/loop.c:398: warning: unused variable \u0027ret\u0027\n[...]\nfs/nfsd/vfs.c: In function \u0027nfsd_splice_actor\u0027:\nfs/nfsd/vfs.c:848: warning: unused variable \u0027ret\u0027\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "04f4ad16b231abbfde34c762697ad035a3af0b5f",
      "tree": "43e3adde9776d9bb8a2bcf70a7ba7a721d1ac06a",
      "parents": [
        "0ff7ab46719a9c1e264b8d8e85416d59737ff13c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Dec 16 09:51:13 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:25 2010 -0500"
      },
      "message": "nfsd4: implement secinfo_no_name\n\nImplementation of this operation is mandatory for NFSv4.1.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0ff7ab46719a9c1e264b8d8e85416d59737ff13c",
      "tree": "8dc86bf6bcbee5185b30e1487c7f6948e9d55ddd",
      "parents": [
        "56560b9ae0c2d07bb5bbcec16f799d7bf756d3de"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Dec 16 10:06:27 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:24 2010 -0500"
      },
      "message": "nfsd4: move guts of nfsd4_lookupp into helper\n\nWe\u0027ll reuse this code in secinfo_no_name.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "56560b9ae0c2d07bb5bbcec16f799d7bf756d3de",
      "tree": "bd9174f7588607ade3c51651f8bc8ead123610e3",
      "parents": [
        "f3c0ceea83ba3741226ea04eb1804d254da2642f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Dec 16 09:57:15 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:23 2010 -0500"
      },
      "message": "nfsd4: 4.1 SECINFO should consume filehandle\n\nSee the referenced spec language; an attempt by a 4.1 client to use the\ncurrent filehandle after a secinfo call should result in a NOFILEHANDLE\nerror.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5b6a599f0da3722dea9ecc01d97f54061662ce49",
      "tree": "5611e2b910f36609b9dd1d342cc34ef336198cae",
      "parents": [
        "3942302ea9e1dffa933021b20bf1642046e7641b"
      ],
      "author": {
        "name": "bookjovi@gmail.com",
        "email": "bookjovi@gmail.com",
        "time": "Sat Dec 11 00:21:17 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:20 2010 -0500"
      },
      "message": "nfs: add missed CONFIG_NFSD_DEPRECATED\n\nthese pieces of code only make sense when CONFIG_NFSD_DEPRECATED enabled\n\nSigned-off-by: Jovi Zhang \u003cbookjovi@gmail.com\u003e\n\n fs/nfsd/nfsctl.c |    2 ++\n 1 files changed, 2 insertions(+), 0 deletions(-)\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "18b631f83810e95eeb2e1839889b27142bd8d6d8",
      "tree": "88d7e9d207eb478be485c6b6e73708e8bcfde8fe",
      "parents": [
        "e203d506bd221bfa5b3acbb7336ae7b7646636a4"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Nov 29 15:28:10 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:18 2010 -0500"
      },
      "message": "nfsd: fix offset printk\u0027s in nfsd3 read/write\n\nThanks to dysbr01@ca.com for noticing that the debugging printk in\nthe v3 write procedure can print \u003e2GB offsets as negative numbers:\n\thttps://bugzilla.kernel.org/show_bug.cgi?id\u003d23342\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e203d506bd221bfa5b3acbb7336ae7b7646636a4",
      "tree": "237901e3b618d50f7ab65ff86dde3aaf1497c09f",
      "parents": [
        "6e5f15c93dc745d46c2bb9e4597b44463203844b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Nov 24 17:30:54 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 17 15:48:01 2010 -0500"
      },
      "message": "nfsd4: fix mixed 4.0/4.1 handling, 4.1 reboot\n\nInstead of failing to find client entries which don\u0027t match the\nminorversion, we should be finding them, then either erroring out or\nexpiring them as appropriate.\n\nThis also fixes a problem which would cause the 4.1 server to fail to\nrecognize clients after a second reboot.\n\nReported-by: Casey Bodley \u003ccbodley@citi.umich.edu\u003e\nReviewed-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    }
  ],
  "next": "6e5f15c93dc745d46c2bb9e4597b44463203844b"
}
