)]}'
{
  "log": [
    {
      "commit": "85160e03a79e0d7f9082e61f6a784abc6f402701",
      "tree": "30e08edf4a022583a582331144d54d26faf2f734",
      "parents": [
        "42274bb22afc3e877ae5abed787b0b09d7dede52"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "piastry@etersoft.ru",
        "time": "Sat Oct 22 15:33:29 2011 +0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Mon Oct 24 12:27:01 2011 -0500"
      },
      "message": "CIFS: Implement caching mechanism for mandatory brlocks\n\nIf we have an oplock and negotiate mandatory locking style we handle\nall brlock requests on the client.\n\nSigned-off-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nAcked-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "44d22d846fdc7c3e688fc1ff5ae6d06d08bb5656",
      "tree": "a7c55381c4eee74c2be9a4dc0728f0a927367d04",
      "parents": [
        "e9097ab48978c89b9c0926e2ae5d49bf6ea91b18"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 19 15:29:49 2011 -0400"
      },
      "committer": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 19 15:29:49 2011 -0400"
      },
      "message": "cifs: add a callback function to receive the rest of the frame\n\nIn order to handle larger SMBs for readpages and other calls, we want\nto be able to read into a preallocated set of buffers. Rather than\nchanging all of the existing code to preallocate buffers however, we\ninstead add a receive callback function to the MID.\n\ncifsd will call this function once the mid_q_entry has been identified\nin order to receive the rest of the SMB. If the mid can\u0027t be identified\nor the receive pointer is unset, then the standard 3rd phase receive\nfunction will be called.\n\nReviewed-and-Tested-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "2a37ef94bb153fad13cbb091aab679d7c8b9a67f",
      "tree": "5a8abdd9c6be0fe34444c579f8a4c3395a77c9e2",
      "parents": [
        "ffc00e27aa5d343eb71068c185cdbd65871ccdce"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 19 15:29:23 2011 -0400"
      },
      "committer": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 19 15:29:23 2011 -0400"
      },
      "message": "cifs: move buffer pointers into TCP_Server_Info\n\nWe have several functions that need to access these pointers. Currently\nthat\u0027s done with a lot of double pointer passing. Instead, move them\ninto the TCP_Server_Info and simplify the handling.\n\nReviewed-and-Tested-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "1041e3f9919999b22c9c2a453aa0d92cd16b76ee",
      "tree": "8793a5d636e7c565722bb4353b23c74d185cb28e",
      "parents": [
        "42c4dfc213190fafffc53815c2ee6064430bc379"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 19 15:28:27 2011 -0400"
      },
      "committer": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 19 15:28:27 2011 -0400"
      },
      "message": "cifs: keep a reusable kvec array for receives\n\nHaving to continually allocate a new kvec array is expensive. Allocate\none that\u0027s big enough, and only reallocate it as needed.\n\nReviewed-and-Tested-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "d59dad2be038132259ac99a2837d65a87fd90588",
      "tree": "ba31d82b208981c6779a071217ff762cd3a1777e",
      "parents": [
        "fe11e4ccb8479d92cd2a101d380d332544b84aaa"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "piastry@etersoft.ru",
        "time": "Thu Sep 22 09:53:59 2011 +0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Thu Oct 13 19:52:47 2011 -0500"
      },
      "message": "CIFS: Move byte range lock list from fd to inode\n\nthat let us do local lock checks before requesting to the server.\n\nSigned-off-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "03776f4516bc299b3145595bdd704d40d69adc02",
      "tree": "a4c17c0120d5865f322ec5362aa2b3f7f0b826d9",
      "parents": [
        "94443f43404239c2a6dc4252a7cb9e77f5b1eb6e"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "piastryyy@gmail.com",
        "time": "Tue Aug 17 11:26:00 2010 +0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Thu Oct 13 17:16:28 2011 -0500"
      },
      "message": "CIFS: Simplify byte range locking code\n\nSplit cifs_lock into several functions and let CIFSSMBLock get pid\nas an argument.\n\nSigned-off-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "21fed0d5b763b94a7d1568c27d0cce892ab8d43e",
      "tree": "1f621fe114ac43ad536e89dc583ac24d1557cd9a",
      "parents": [
        "20c3a200c418ea1b02037800830ba8a7cdd1b275"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Tue Aug 09 14:30:48 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Wed Oct 12 23:45:39 2011 -0500"
      },
      "message": "cifs: Add data structures and functions for uid/gid to SID mapping (try #4)\n\nAdd data structures and functions necessary to map a uid and gid to SID.\nThese functions are very similar to the ones used to map a SID to uid and gid.\nThis time, instead of storing sid to id mapping sorted on a sid value,\nid to sid is stored, sorted on an id.\nA cifs upcall sends an id (uid or gid) and expects a SID structure\nin return, if mapping was done successfully.\n\nA failed id to sid mapping to EINVAL.\n\nThis patchset aims to enable chown and chgrp commands when\ncifsacl mount option is specified, especially to Windows SMB servers.\nCurrently we can\u0027t do that.  So now along with chmod command,\nchown and chgrp work.\n\nWinbind is used to map id to a SID.  chown and chgrp use an upcall\nto provide an id to winbind and upcall returns with corrosponding\nSID if any exists. That SID is used to build security descriptor.\nThe DACL part of a security descriptor is not changed by either\nchown or chgrp functionality.\n\ncifs client maintains a separate caches for uid to SID and\ngid to SID mapping. This is similar to the one used earlier\nto map SID to id (as part of ID mapping code).\n\nI tested it by mounting shares from a Windows (2003) server by\nauthenticating as two users, one at a time, as Administrator and\nas a ordinary user.\nAnd then attempting to change owner of a file on the share.\n\nDepending on the permissions/privileges at the server for that file,\nchown request fails to either open a file (to change the ownership)\nor to set security descriptor.\nSo it all depends on privileges on the file at the server and what\nuser you are authenticated as at the server, cifs client is just a\nconduit.\n\nI compared the security descriptor during chown command to that\nwhat smbcacls sends when it is used with -M OWNNER: option\nand they are similar.\n\nThis patchset aim to enable chown and chgrp commands when\ncifsacl mount option is specified, especially to Windows SMB servers.\nCurrently we can\u0027t do that.  So now along with chmod command,\nchown and chgrp work.\n\nI tested it by mounting shares from a Windows (2003) server by\nauthenticating as two users, one at a time, as Administrator and\nas a ordinary user.\nAnd then attempting to change owner of a file on the share.\n\nDepending on the permissions/privileges at the server for that file,\nchown request fails to either open a file (to change the ownership)\nor to set security descriptor.\nSo it all depends on privileges on the file at the server and what\nuser you are authenticated as at the server, cifs client is just a\nconduit.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "3d3ea8e64efbeb3e4289675dbbfab82333395642",
      "tree": "3f7c52039dceefeae2abf010a1a3ec8abef0c459",
      "parents": [
        "8bc4392a1e50f346e97f8777aaefd9cfc3d45c9f"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Mon Sep 26 09:56:44 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Wed Oct 12 23:42:17 2011 -0500"
      },
      "message": "cifs: Add mount options for backup intent (try #6)\n\nAdd mount options backupuid and backugid.\n\nIt allows an authenticated user to access files with the intent to back them\nup including their ACLs, who may not have access permission but has\n\"Backup files and directories user right\" on them (by virtue of being part\nof the built-in group Backup Operators.\n\nWhen mount options backupuid is specified, cifs client restricts the\nuse of backup intents to the user whose effective user id is specified\nalong with the mount option.\n\nWhen mount options backupgid is specified, cifs client restricts the\nuse of backup intents to the users whose effective user id belongs to the\ngroup id specified along with the mount option.\n\nIf an authenticated user is not part of the built-in group Backup Operators\nat the server, access to such files is denied, even if allowed by the client.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "e75047344ea415760b2508a6fa29c0288c7b6b68",
      "tree": "14abdd67059e4d6a33ce149a4474dbaafc75b9b7",
      "parents": [
        "ba749e6d5227de22e442c6088cc7dc1f0c5c68bf"
      ],
      "author": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Wed Oct 12 17:47:03 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Wed Oct 12 23:42:05 2011 -0500"
      },
      "message": "add new module parameter \u0027enable_oplocks\u0027\n\nThus spake Jeff Layton:\n\n\"Making that a module parm would allow you to set that parameter at boot\ntime without needing to add special startup scripts. IMO, all of the\nprocfile \"switches\" under /proc/fs/cifs should be module parms\ninstead.\"\n\nThis patch doesn\u0027t alter the default behavior (Oplocks are enabled by\ndefault).\n\nTo disable oplocks when loading the module, use\n\n   modprobe cifs enable_oplocks\u003d0\n\n(any of \u00270\u0027 or \u0027n\u0027 or \u0027N\u0027 conventions can be used).\n\nTo disable oplocks at runtime using the new interface, use\n\n   echo 0 \u003e /sys/module/cifs/parameters/enable_oplocks\n\nThe older /proc/fs/cifs/OplockEnabled interface will be deprecated\nafter two releases. A subsequent patch will add an warning message\nabout this deprecation.\n\nChanges since v2:\n   - make enable_oplocks a \u0027bool\u0027\n\nChanges since v1:\n   - eliminate the use of extra variable by renaming the old one to\n     enable_oplocks and make it an \u0027int\u0027 type.\n\nReported-by: Alexander Swen \u003calex@swen.nu\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "789e66612367f9975d704c9e4990025cbbbb45ec",
      "tree": "a3c466f3137ac319b9e15656a1d72aabd7050126",
      "parents": [
        "e6a99d312687a42c077a9b8cb5e757f186edb1b9"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Aug 09 18:44:44 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Aug 11 18:23:45 2011 +0000"
      },
      "message": "[CIFS] Cleanup use of CONFIG_CIFS_STATS2 ifdef to make transport routines more readable\n\nChristoph had requested that the stats related code (in\nCONFIG_CIFS_STATS2) be moved into helpers to make code flow more\nreadable.   This patch should help.   For example the following\nsection from transport.c\n\n                       spin_unlock(\u0026GlobalMid_Lock);\n                       atomic_inc(\u0026ses-\u003eserver-\u003enum_waiters);\n                       wait_event(ses-\u003eserver-\u003erequest_q,\n                                  atomic_read(\u0026ses-\u003eserver-\u003einFlight)\n                                    \u003c cifs_max_pending);\n                       atomic_dec(\u0026ses-\u003eserver-\u003enum_waiters);\n                       spin_lock(\u0026GlobalMid_Lock);\n\nbecomes simpler (with the patch below):\n                       spin_unlock(\u0026GlobalMid_Lock);\n                       cifs_num_waiters_inc(server);\n                       wait_event(server-\u003erequest_q,\n                                  atomic_read(\u0026server-\u003einFlight)\n                                    \u003c cifs_max_pending);\n                       cifs_num_waiters_dec(server);\n                       spin_lock(\u0026GlobalMid_Lock);\n\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCC: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\nReviewed-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\n"
    },
    {
      "commit": "ad635942c869ad8fc9af270d4998c42b4e978b32",
      "tree": "b199a039df4aacd26224302b7c29193171e4d444",
      "parents": [
        "5980fc966bb347801f3fcc39a2ef2a1e14fbf8cb"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jul 26 12:20:17 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sun Jul 31 21:21:20 2011 +0000"
      },
      "message": "cifs: simplify refcounting for oplock breaks\n\nCurrently, we take a sb-\u003es_active reference and a cifsFileInfo reference\nwhen an oplock break workqueue job is queued. This is unnecessary and\nmore complicated than it needs to be. Also as Al points out,\ndeactivate_super has non-trivial locking implications so it\u0027s best to\navoid that if we can.\n\nInstead, just cancel any pending oplock breaks for this filehandle\nsynchronously in cifsFileInfo_put after taking it off the lists.\nThat should ensure that this job doesn\u0027t outlive the structures it\ndepends on.\n\nReported-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "eaf35b1ea8c12edc5ba8299a8ecfe1efab85101b",
      "tree": "780a33eae1f8775cc180970f22157b6dd8b91902",
      "parents": [
        "f16d59b417d781eb7fe63a561272429b5e098c3a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Jul 16 15:24:37 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jul 25 21:43:14 2011 +0000"
      },
      "message": "cifs: use cifs_dirent in cifs_save_resume_key\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "96daf2b09178d8ebde2b0d56b027de917c17dfdf",
      "tree": "74802fa44e87925e49067d5106eb762cc27b9b97",
      "parents": [
        "07cc6cf9ef84bcf6a60ee513332bcb0ad5d628d8"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 27 04:34:02 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 27 04:34:02 2011 +0000"
      },
      "message": "[CIFS] Rename three structures to avoid camel case\n\nsecMode to sec_mode\nand\ncifsTconInfo to cifs_tcon\nand\ncifsSesInfo to cifs_ses\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "d4ffff1fa9695c5b5c0bf337e208d8833b88ff2d",
      "tree": "acd4b6cfa7962a1cee7e9c81f11bd9ccb0d3ff24",
      "parents": [
        "25c7f41e9234f60af30e086278f1de7974f8816f"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "piastry@etersoft.ru",
        "time": "Thu May 26 06:02:00 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 27 03:57:16 2011 +0000"
      },
      "message": "CIFS: Add rwpidforward mount option\n\nAdd rwpidforward mount option that switches on a mode when we forward\npid of a process who opened a file to any read and write operation.\n\nThis can prevent applications like WINE from failing on read or write\noperation on a previously locked file region from the same netfd from\nanother process if we use mandatory brlock style.\n\nIt is actual for WINE because during a run of WINE program two processes\nwork on the same netfd - share the same file struct between several VFS\nfds:\n1) WINE-server does open and lock;\n2) WINE-application does read and write.\n\nSigned-off-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "25c7f41e9234f60af30e086278f1de7974f8816f",
      "tree": "41cb4da532da30418da2d33e5376ddbf9f65958a",
      "parents": [
        "f87d39d951329cd8f462bf9007d334122c0599d0"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "piastry@etersoft.ru",
        "time": "Thu May 26 23:35:47 2011 +0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 27 03:53:23 2011 +0000"
      },
      "message": "CIFS: Migrate to shared superblock model\n\nAdd cifs_match_super to use in sget to share superblock between mounts\nthat have the same //server/sharename, credentials and mount options.\nIt helps us to improve performance on work with future SMB2.1 leases.\n\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "f87d39d951329cd8f462bf9007d334122c0599d0",
      "tree": "ba4c4d9dee6958c7d8ee87070a58d80389be2d2f",
      "parents": [
        "641a58d66d086327042e9d73c6606fd02c8f067c"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 27 03:50:55 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 27 03:50:55 2011 +0000"
      },
      "message": "[CIFS] Migrate from prefixpath logic\n\nNow we point superblock to a server share root and set a root dentry\nappropriately. This let us share superblock between mounts like\n//server/sharename/foo/bar and //server/sharename/foo further.\n\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "fa2989f4473413a86890066aa3a5676a53b541e4",
      "tree": "a033c59307ba77ae0819e818aec7d68178d11d4d",
      "parents": [
        "c28c89fc43e3f81436efc4748837534d4d46f90c"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "piastry@etersoft.ru",
        "time": "Thu May 26 10:01:59 2011 +0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu May 26 18:07:02 2011 +0000"
      },
      "message": "CIFS: Use pid saved from cifsFileInfo in writepages and set_file_size\n\nWe need it to make them work with mandatory locking style because\nwe can fail in a situation like when kernel need to flush dirty pages\nand there is a lock held by a process who opened file.\n\nSigned-off-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "3c1105df699188a70f5c17dc0795affea388bca7",
      "tree": "bfbcfaaae2fdfd16b2fcdb57710b9affbf183c49",
      "parents": [
        "724d9f1cfba0cb16a7151333b501e8f7885450d8"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sun May 22 07:09:13 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue May 24 03:11:33 2011 +0000"
      },
      "message": "cifs: don\u0027t call mid_q_entry-\u003ecallback under the Global_MidLock (try #5)\n\nMinor revision to the last version of this patch -- the only difference\nis the fix to the cFYI statement in cifs_reconnect.\n\nHolding the spinlock while we call this function means that it can\u0027t\nsleep, which really limits what it can do. Taking it out from under\nthe spinlock also means less contention for this global lock.\n\nChange the semantics such that the Global_MidLock is not held when\nthe callback is called. To do this requires that we take extra care\nnot to have sync_mid_result remove the mid from the list when the\nmid is in a state where that has already happened. This prevents\nlist corruption when the mid is sitting on a private list for\nreconnect or when cifsd is coming down.\n\nReviewed-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nReviewed-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "4d79dba0e00749fa40de8ef13a9b85ce57a1603b",
      "tree": "55e377f53c761e70d5b90a1f901f70609ffcbcc7",
      "parents": [
        "9ad1506b42c828dff0b9d8f3914e1f837734e91c"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Wed Apr 27 23:34:35 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu May 19 14:10:51 2011 +0000"
      },
      "message": "cifs: Add idmap key and related data structures and functions (try #17 repost)\n\nDefine (global) data structures to store ids, uids and gids, to which a\nSID maps.  There are two separate trees, one for SID/uid and another one\nfor SID/gid.\n\nA new type of key, cifs_idmap_key_type, is used.\n\nKeys are instantiated and searched using credential of the root by\noverriding and restoring the credentials of the caller requesting the key.\n\nId mapping functions are invoked under config option of cifs acl.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "34c87901e113799a45423fdac29c7478c889a95d",
      "tree": "1398028abbfc10d181f3a3c805c78ebb689d9e70",
      "parents": [
        "fd62cb7e7411f1f5ca774145665316d3612fed9a"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Mar 01 05:02:57 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu May 19 14:10:48 2011 +0000"
      },
      "message": "Shrink stack space usage in cifs_construct_tcon\n\nWe were reserving MAX_USERNAME (now 256) on stack for\nsomething which only needs to fit about 24 bytes ie\nstring krb50x +  printf version of uid\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "0eff0e26777430bcfee1ef47bd90250858ada431",
      "tree": "2beee1db7ff0fdbc013fe96b662ea3c7ea380d74",
      "parents": [
        "9b6763e0aacf245b58687a372816a0a4aabf2b1e"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Feb 24 05:39:23 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu May 19 14:10:47 2011 +0000"
      },
      "message": "Remove unused CIFSSMBNotify worker function\n\nThe CIFSSMBNotify worker is unused, pending changes to allow it to be called\nvia inotify, so move it into its own experimental config option so it does\nnot get built in, until the necessary VFS support is fixed.  It used to\nbe used in dnotify, but according to Jeff, inotify needs minor changes\nbefore we can reenable this.\n\nCC: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "ca83ce3d5b9ad321ee24f5870a77f0b21ac5a5de",
      "tree": "7added4d982e03c89599ef7c78c9b69845a7504d",
      "parents": [
        "d9b942013730c38ac83564d6669c6d0ecf6d754d"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Apr 12 09:13:44 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Apr 12 14:19:55 2011 +0000"
      },
      "message": "cifs: don\u0027t allow mmap\u0027ed pages to be dirtied while under writeback (try #3)\n\nThis is more or less the same patch as before, but with some merge\nconflicts fixed up.\n\nIf a process has a dirty page mapped into its page tables, then it has\nthe ability to change it while the client is trying to write the data\nout to the server. If that happens after the signature has been\ncalculated then that signature will then be wrong, and the server will\nlikely reset the TCP connection.\n\nThis patch adds a page_mkwrite handler for CIFS that simply takes the\npage lock. Because the page lock is held over the life of writepage and\nwritepages, this prevents the page from becoming writeable until\nthe write call has completed.\n\nWith this, we can also remove the \"sign_zero_copy\" module option and\nalways inline the pages when writing.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "fd88ce9313e9f9d3b56eada7fc76a301828baefd",
      "tree": "da6f5ec8cbb639b68ed68d22ab3d879b51550f42",
      "parents": [
        "157c249114508aa71daa308a426e15d81a4eed00"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Apr 12 01:01:14 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Apr 12 01:01:14 2011 +0000"
      },
      "message": "[CIFS] cifs: clarify the meaning of tcpStatus \u003d\u003d CifsGood\n\nWhen the TCP_Server_Info is first allocated and connected, tcpStatus \u003d\u003d\nCifsGood means that the NEGOTIATE_PROTOCOL request has completed and the\nsocket is ready for other calls. cifs_reconnect however sets tcpStatus\nto CifsGood as soon as the socket is reconnected and the optional\nRFC1001 session setup is done. We have no clear way to tell the\ndifference between these two states, and we need to know this in order\nto know whether we can send an echo or not.\n\nResolve this by adding a new statusEnum value -- CifsNeedNegotiate. When\nthe socket has been connected but has not yet had a NEGOTIATE_PROTOCOL\nrequest done, set it to this value. Once the NEGOTIATE is done,\ncifs_negotiate_protocol will set tcpStatus to CifsGood.\n\nThis also fixes and cleans the logic in cifs_reconnect and\ncifs_reconnect_tcon. The old code checked for specific states when what\nit really wants to know is whether the state has actually changed from\nCifsNeedReconnect.\n\nReported-and-Tested-by: JG \u003cjg@cms.ac\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "2e325d5973b99bb7421e689351ca74f349eee5ea",
      "tree": "c8c0102e8056332d374e4cc36bd655ee002f9a53",
      "parents": [
        "8727c8a85f3951ef0eef36a665f5dceebb4c495d"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Mar 08 05:51:19 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Apr 12 00:47:14 2011 +0000"
      },
      "message": "Max share size is too small\n\nMax share name was set to 64, and (at least for Windows)\ncan be 80.\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "8727c8a85f3951ef0eef36a665f5dceebb4c495d",
      "tree": "f35b215604127ebb05a977a1b8c093b7b441b6af",
      "parents": [
        "bdf1b03e093bdbc571f404e751c7b0e2dca412ea"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Feb 25 01:11:56 2011 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Apr 12 00:42:06 2011 +0000"
      },
      "message": "Allow user names longer than 32 bytes\n\nWe artificially limited the user name to 32 bytes, but modern servers handle\nlarger.  Set the maximum length to a reasonable 256, and make the user name\nstring dynamically allocated rather than a fixed size in session structure.\nAlso clean up old checkpatch warning.\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "bdf1b03e093bdbc571f404e751c7b0e2dca412ea",
      "tree": "59034d81cfd01c14c21256229a355a06310ce6b5",
      "parents": [
        "7797069305d13252fd66cf722aa8f2cbeb3c95cd"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Feb 22 20:17:19 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Apr 12 00:40:43 2011 +0000"
      },
      "message": "cifs: replace /proc/fs/cifs/Experimental with a module parm\n\nThis flag currently only affects whether we allow \"zero-copy\" writes\nwith signing enabled. Typically we map pages in the pagecache directly\ninto the write request. If signing is enabled however and the contents\nof the page change after the signature is calculated but before the\nwrite is sent then the signature will be wrong. Servers typically\nrespond to this by closing down the socket.\n\nStill, this can provide a performance benefit so the \"Experimental\" flag\nwas overloaded to allow this. That\u0027s really not a good place for this\noption however since it\u0027s not clear what that flag does.\n\nMove that flag instead to a new module parameter that better describes\nits purpose. That\u0027s also better since it can be set at module insertion\ntime by configuring modprobe.d.\n\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "71823baff1978be892e7a36eddf6170e1cc6650d",
      "tree": "2cc136ce754cc5c24ed8aefde5e486fc873ae139",
      "parents": [
        "195291e68c2ad59a046fc56d32bf59635b100e5c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Feb 10 08:03:50 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Feb 11 03:59:12 2011 +0000"
      },
      "message": "cifs: don\u0027t always drop malformed replies on the floor (try #3)\n\nSlight revision to this patch...use min_t() instead of conditional\nassignment. Also, remove the FIXME comment and replace it with the\nexplanation that Steve gave earlier.\n\nAfter receiving a packet, we currently check the header. If it\u0027s no\ngood, then we toss it out and continue the loop, leaving the caller\nwaiting on that response.\n\nIn cases where the packet has length inconsistencies, but the MID is\nvalid, this leads to unneeded delays. That\u0027s especially problematic now\nthat the client waits indefinitely for responses.\n\nInstead, don\u0027t immediately discard the packet if checkSMB fails. Try to\nfind a matching mid_q_entry, mark it as having a malformed response and\nissue the callback.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "7e90d705fc9f8c5e3a1549281dce0654d049243b",
      "tree": "36752aa5c1005716d2ce91cbf020ab8c2602f129",
      "parents": [
        "100b33c8bd8a3235fd0b7948338d6cbb3db3c63d"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Feb 08 23:52:32 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Feb 08 23:52:32 2011 +0000"
      },
      "message": "[CIFS] Do not send SMBEcho requests on new sockets until SMBNegotiate\n\nIn order to determine whether an SMBEcho request can be sent\nwe need to know that the socket is established (server tcpStatus \u003d\u003d CifsGood)\nAND that an SMB NegotiateProtocol has been sent (server maxBuf !\u003d 0).\nWithout the second check we can send an Echo request during reconnection\nbefore the server can accept it.\n\nCC: JG \u003cjg@cms.ac\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "f1d0c998653f1eeec60ee6420e550135b62dbab4",
      "tree": "1db07e198f4c0a86bca7160f9a6a3255f4b4f4a9",
      "parents": [
        "3f391c79b0686ce183668c6e2b7d02f3e716766c"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rlandley@parallels.com",
        "time": "Sat Jan 22 15:44:05 2011 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 24 04:28:51 2011 +0000"
      },
      "message": "Make CIFS mount work in a container.\n\nTeach cifs about network namespaces, so mounting uses adresses/routing\nvisible from the container rather than from init context.\n\nA container is a chroot on steroids that changes more than just the root\nfilesystem the new processes see.  One thing containers can isolate is\n\"network namespaces\", meaning each container can have its own set of\nethernet interfaces, each with its own own IP address and routing to the\noutside world.  And if you open a socket in _userspace_ from processes\nwithin such a container, this works fine.\n\nBut sockets opened from within the kernel still use a single global\nnetworking context in a lot of places, meaning the new socket\u0027s address\nand routing are correct for PID 1 on the host, but are _not_ what\nuserspace processes in the container get to use.\n\nSo when you mount a network filesystem from within in a container, the\nmount code in the CIFS driver uses the host\u0027s networking context and not\nthe container\u0027s networking context, so it gets the wrong address, uses\nthe wrong routing, and may even try to go out an interface that the\ncontainer can\u0027t even access...  Bad stuff.\n\nThis patch copies the mount process\u0027s network context into the CIFS\nstructure that stores the rest of the server information for that mount\npoint, and changes the socket open code to use the saved network context\ninstead of the global network context.  I.E. \"when you attempt to use\nthese addresses, do so relative to THIS set of network interfaces and\nrouting rules, not the old global context from back before we supported\ncontainers\".\n\nThe big long HOWTO sets up a test environment on the assumption you\u0027ve\nnever used ocntainers before.  It basically says:\n\n1) configure and build a new kernel that has container support\n2) build a new root filesystem that includes the userspace container\ncontrol package (LXC)\n3) package/run them under KVM (so you don\u0027t have to mess up your host\nsystem in order to play with containers).\n4) set up some containers under the KVM system\n5) set up contradictory routing in the KVM system and the container so\nthat the host and the container see different things for the same address\n6) try to mount a CIFS share from both contexts so you can both force it\nto work and force it to fail.\n\nFor a long drawn out test reproduction sequence, see:\n\n  http://landley.livejournal.com/47024.html\n  http://landley.livejournal.com/47205.html\n  http://landley.livejournal.com/47476.html\n\nSigned-off-by: Rob Landley \u003crlandley@parallels.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "aae62fdb6b9a6605abdea7370c4a0e005e6c1cd7",
      "tree": "61f061006acfac97aa65872d2e2efbb5ad1c0919",
      "parents": [
        "c3dccf48174e50668b7c63544ac8c60c07a45978"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Jan 20 13:36:50 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 20 21:46:26 2011 +0000"
      },
      "message": "cifs: move time field in cifsInodeInfo\n\n...and remove length qualifiers from bools.\n\nBefore:\n\n\t/* size: 1176, cachelines: 19, members: 13 */\n\t/* sum members: 1165, holes: 2, sum holes: 11 */\n\t/* bit holes: 1, sum bit holes: 4 bits */\n\t/* last cacheline: 24 bytes */\n\nAfter:\n\n\t/* size: 1168, cachelines: 19, members: 13 */\n\t/* last cacheline: 16 bytes */\n\n...savings of 8 bytes per inode.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "c3dccf48174e50668b7c63544ac8c60c07a45978",
      "tree": "9197f69ef539330373d609b334bfdd67fd4aa207",
      "parents": [
        "a70307eeeb25b89f6b2baf3cf3f0cef83c96ba12"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Jan 20 13:36:50 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 20 21:46:22 2011 +0000"
      },
      "message": "cifs: TCP_Server_Info diet\n\nRemove fields that are completely unused, and rearrange struct\naccording to recommendations by \"pahole\".\n\nBefore:\n\n\t/* size: 1112, cachelines: 18, members: 49 */\n\t/* sum members: 1086, holes: 8, sum holes: 26 */\n\t/* bit holes: 1, sum bit holes: 7 bits */\n\t/* last cacheline: 24 bytes */\n\nAfter:\n\n\t/* size: 1072, cachelines: 17, members: 42 */\n\t/* sum members: 1065, holes: 3, sum holes: 7 */\n\t/* last cacheline: 48 bytes */\n\n...savings of 40 bytes per struct on x86_64. 21 bytes by field removal,\nand 19 by reorganizing to eliminate holes.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "7749981ec31aa40e28a1ef5687e46bc1aa278fae",
      "tree": "7c5f75916f55cfe5130e88534c48678155974adf",
      "parents": [
        "fda3594362184383e73f0a2a5fa5b38ac0e04fd8"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jan 11 07:24:23 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 20 18:07:55 2011 +0000"
      },
      "message": "cifs: remove code for setting timeouts on requests\n\nSince we don\u0027t time out individual requests anymore, remove the code\nthat we used to use for setting timeouts on different requests.\n\nReviewed-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "fda3594362184383e73f0a2a5fa5b38ac0e04fd8",
      "tree": "c196d4a5211044760debd89eec810053f0025e45",
      "parents": [
        "c74093b694998d30105d9904686da5e3576497c4"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 20 18:06:34 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 20 18:06:34 2011 +0000"
      },
      "message": "[CIFS] cifs: reconnect unresponsive servers\n\nIf the server isn\u0027t responding to echoes, we don\u0027t want to leave tasks\nhung waiting for it to reply. At that point, we\u0027ll want to reconnect\nso that soft mounts can return an error to userspace quickly.\n\nIf the client hasn\u0027t received a reply after a specified number of echo\nintervals, assume that the transport is down and attempt to reconnect\nthe socket.\n\nThe number of echo_intervals to wait before attempting to reconnect is\ntunable via a module parameter. Setting it to 0, means that the client\nwill never attempt to reconnect. The default is 5.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "c74093b694998d30105d9904686da5e3576497c4",
      "tree": "2f4758b3d24ea2a1647a7402c8c49ffb515b388d",
      "parents": [
        "766fdbb57fdb1e53bc34c431103e95383d7f13ba"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jan 11 07:24:23 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 20 17:48:10 2011 +0000"
      },
      "message": "cifs: set up recurring workqueue job to do SMB echo requests\n\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "2b84a36c5529da136d28b268e75268892d09869c",
      "tree": "7977fad1c4a8ae8926184c00a3e7ccd30b398e5e",
      "parents": [
        "74dd92a881b62014ca3c754db6868e1f142f2fb9"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jan 11 07:24:21 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 20 17:43:59 2011 +0000"
      },
      "message": "cifs: allow for different handling of received response\n\nIn order to incorporate async requests, we need to allow for a more\ngeneral way to do things on receive, rather than just waking up a\nprocess.\n\nTurn the task pointer in the mid_q_entry into a callback function and a\ngeneric data pointer. When a response comes in, or the socket is\nreconnected, cifsd can call the callback function in order to wake up\nthe process.\n\nThe default is to just wake up the current process which should mean no\nchange in behavior for existing code.\n\nAlso, clean up the locking in cifs_reconnect. There doesn\u0027t seem to be\nany need to hold both the srv_mutex and GlobalMid_Lock when walking the\nlist of mids.\n\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "20054bd65703f7504a9daceabc2a060828fde36c",
      "tree": "a15151a2d3a1d8abe1c72701ceb3e9f7051fe6ea",
      "parents": [
        "d44a9fe2c8af3fee8edb203e9b11e507851c50fa"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Jan 07 11:30:27 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sun Jan 09 23:43:00 2011 +0000"
      },
      "message": "cifs: use CreationTime like an i_generation field\n\nReduce false inode collisions by using the CreationTime like an\ni_generation field. This way, even if the server ends up reusing\na uniqueid after a delete/create cycle, we can avoid matching\nthe inode incorrectly.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "a0f8b4fb4cab4bc32caaf34fc0a0c9d5dd369186",
      "tree": "2a49df40e7d76028155f7ced04d03e5acd402f68",
      "parents": [
        "197a1eeb7f89c1d2ba93713398e9655899aa973e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Jan 07 11:30:28 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sun Jan 09 23:38:20 2011 +0000"
      },
      "message": "cifs: remove unnecessary locking around sequence_number\n\nThe server-\u003esequence_number is already protected by the srv_mutex. The\nGlobalMid_lock is unneeded here.\n\nReviewed-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "a9f1b85e5ba80519dea6974e3574fa7a30cc5e29",
      "tree": "255a962ea1d02110c5b31ebb981ce1f588960688",
      "parents": [
        "df8fbc241aa3c451248b1f19fff3a3f604b107f9"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "piastryyy@gmail.com",
        "time": "Mon Dec 13 19:08:35 2010 +0300"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 06 19:07:53 2011 +0000"
      },
      "message": "CIFS: Simplify ipv*_connect functions into one (try #4)\n\nMake connect logic more ip-protocol independent and move RFC1001 stuff into\na separate function. Also replace union addr in TCP_Server_Info structure\nwith sockaddr_storage.\n\nSigned-off-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nReviewed-and-Tested-by: Jeff Layton \u003cjlayton@samba.org\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "884639996814585ef7079daa9e03a1eb562e235c",
      "tree": "652d60d1716be67db2c21aaeaf643dc00d65e392",
      "parents": [
        "79df1baeec29022e4181f2964187b88661ef5517"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@poochiereds.net",
        "time": "Mon Nov 22 15:31:03 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Dec 06 22:45:19 2010 +0000"
      },
      "message": "cifs: remove Local_System_Name\n\n...this string is zeroed out and nothing ever changes it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "6d20e8406f0942228a73000663c2b33f488103ea",
      "tree": "2469267c2ee10c4c723eaa01b1f24c8d0f704870",
      "parents": [
        "8cb280c90f9cfaab3ba3afbace0b1711dee80d0c"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Wed Dec 01 14:42:28 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Dec 02 19:32:11 2010 +0000"
      },
      "message": "cifs: add attribute cache timeout (actimeo) tunable\n\nCurrently, the attribute cache timeout for CIFS is hardcoded to 1 second. This\nmeans that the client might have to issue a QPATHINFO/QFILEINFO call every 1\nsecond to verify if something has changes, which seems too expensive. On the\nother hand, if the timeout is hardcoded to a higher value, workloads that\nexpect strict cache coherency might see unexpected results.\n\nMaking attribute cache timeout as a tunable will allow us to make a tradeoff\nbetween performance and cache metadata correctness depending on the\napplication/workload needs.\n\nAdd \u0027actimeo\u0027 tunable that can be used to tune the attribute cache timeout.\nThe default timeout is set to 1 second. Also, display actimeo option value in\n/proc/mounts.\n\nIt appears to me that \u0027actimeo\u0027 and the proposed (but not yet merged)\n\u0027strictcache\u0027 option cannot coexist, so care must be taken that we reset the\nother option if one of them is set.\n\nChanges since last post:\n   - fix option parsing and handle possible values correcly\n\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "b647c35f77af9c07d336247b23014596e9f0a593",
      "tree": "653949250681fd1c23ad529b631da793f95778a6",
      "parents": [
        "413e661c136c52290de1ee19a1b049a4da9dbf51"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Oct 28 11:16:44 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 02 19:20:23 2010 +0000"
      },
      "message": "cifs: convert tlink_tree to a rbtree\n\nRadix trees are ideal when you want to track a bunch of pointers and\ncan\u0027t embed a tracking structure within the target of those pointers.\nThe tradeoff is an increase in memory, particularly if the tree is\nsparse.\n\nIn CIFS, we use the tlink_tree to track tcon_link structs. A tcon_link\ncan never be in more than one tlink_tree, so there\u0027s no impediment to\nusing a rb_tree here instead of a radix tree.\n\nConvert the new multiuser mount code to use a rb_tree instead. This\nshould reduce the memory required to manage the tlink_tree.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "d3686d54c7902a303bd65d751226aa1647319863",
      "tree": "b4acd7dfc6c5ec2f254608a2f0ef11ef274861b8",
      "parents": [
        "d3ba50b17aa7a391bb5b3dcd8d6ba7a02c4f031c"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Thu Oct 28 09:53:07 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Oct 29 01:47:33 2010 +0000"
      },
      "message": "cifs: Cleanup and thus reduce smb session structure and fields used during authentication\n\nRemoved following fields from smb session structure\n cryptkey, ntlmv2_hash, tilen, tiblob\nand ntlmssp_auth structure is allocated dynamically only if the auth mech\nin NTLMSSP.\n\nresponse field within a session_key structure is used to initially store the\ntarget info (either plucked from type 2 challenge packet in case of NTLMSSP\nor fabricated in case of NTLMv2 without extended security) and then to store\nMessage Authentication Key (mak) (session key + client response).\n\nServer challenge or cryptkey needed during a NTLMSSP authentication\nis now part of ntlmssp_auth structure which gets allocated and freed\nonce authenticaiton process is done.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "d3ba50b17aa7a391bb5b3dcd8d6ba7a02c4f031c",
      "tree": "452ddaeb1d52387a852d0c3cf46c4253347d0a27",
      "parents": [
        "6b03590412c977ae8fa1635c9b80854ab19a5b78"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Wed Oct 27 15:20:36 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Oct 29 01:47:30 2010 +0000"
      },
      "message": "NTLM auth and sign - Use appropriate server challenge\n\nNeed to have cryptkey or server challenge in smb connection\n(struct TCP_Server_Info) for ntlm and ntlmv2 auth types for which\ncryptkey (Encryption Key) is supplied just once in Negotiate Protocol\nresponse during an smb connection setup for all the smb sessions over\nthat smb connection.\n\nFor ntlmssp, cryptkey or server challenge is provided for every\nsmb session in type 2 packet of ntlmssp negotiation, the cryptkey\nprovided during Negotiation Protocol response before smb connection\ndoes not count.\n\nRename cryptKey to cryptkey and related changes.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "f7c5445a9deecffea8a4fffc0163bf582411ac8a",
      "tree": "efea64611599a034510be60077ca20bed68a48e8",
      "parents": [
        "307fbd31b61623ad1b5388b452118f8aea99f9d0"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Tue Oct 26 18:10:24 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Oct 27 02:04:30 2010 +0000"
      },
      "message": "NTLM auth and sign - minor error corrections and cleanup\n\nMinor cleanup - Fix spelling mistake, make meaningful (goto) label\n\nIn function setup_ntlmv2_rsp(), do not return 0 and leak memory,\nlet the tiblob get freed.\n\nFor function find_domain_name(), pass already available nls table pointer\ninstead of loading and unloading the table again in this function.\n\nFor ntlmv2, the case sensitive password length is the length of the\nresponse, so subtract session key length (16 bytes) from the .len.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "d2b915210b5ec01409f581421d633eca6c38d444",
      "tree": "5e4467f4888eb8c9936fbfd7b5bd7b9058af26e9",
      "parents": [
        "b235f371a2572d7c86a121d96d889eee02ed00e2"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Thu Oct 21 14:25:08 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Oct 26 18:35:31 2010 +0000"
      },
      "message": "NTLM auth and sign - Define crypto hash functions and create and send keys needed for key exchange\n\nMark dependency on crypto modules in Kconfig.\n\nDefining per structures sdesc and cifs_secmech which are used to store\ncrypto hash functions and contexts.  They are stored per smb connection\nand used for all auth mechs to genereate hash values and signatures.\n\nAllocate crypto hashing functions, security descriptiors, and respective\ncontexts when a smb/tcp connection is established.\nRelease them when a tcp/smb connection is taken down.\n\nmd5 and hmac-md5 are two crypto hashing functions that are used\nthrought the life of an smb/tcp connection by various functions that\ncalcualte signagure and ntlmv2 hash, HMAC etc.\n\nstructure ntlmssp_auth is defined as per smb connection.\n\nntlmssp_auth holds ciphertext which is genereated by rc4/arc4 encryption of\nsecondary key, a nonce using ntlmv2 session key and sent in the session key\nfield of the type 3 message sent by the client during ntlmssp\nnegotiation/exchange\n\nA key is exchanged with the server if client indicates so in flags in\ntype 1 messsage and server agrees in flag in type 2 message of ntlmssp\nnegotiation.  If both client and agree, a key sent by client in\ntype 3 message of ntlmssp negotiation in the session key field.\nThe key is a ciphertext generated off of secondary key, a nonce, using\nntlmv2 hash via rc4/arc4.\n\nSigning works for ntlmssp in this patch. The sequence number within\nthe server structure needs to be zero until session is established\ni.e. till type 3 packet of ntlmssp exchange of a to be very first\nsmb session on that smb connection is sent.\n\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "21e733930be6458e0c33482b6783e7c15ba984eb",
      "tree": "1458ccf45529649267451a7e06fcd25d9c7ab0ac",
      "parents": [
        "6573e9b73e19c0f6b9dfa2b399267ea0f42d6c6b"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Thu Oct 21 06:42:55 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Oct 26 18:20:10 2010 +0000"
      },
      "message": "NTLM auth and sign - Allocate session key/client response dynamically\n\nStart calculating auth response within a session.  Move/Add pertinet\ndata structures like session key, server challenge and ntlmv2_hash in\na session structure.  We should do the calculations within a session\nbefore copying session key and response over to server data\nstructures because a session setup can fail.\n\nOnly after a very first smb session succeeds, it copy/make its\nsession key, session key of smb connection.  This key stays with\nthe smb connection throughout its life.\nsequence_number within server is set to 0x2.\n\nThe authentication Message Authentication Key (mak) which consists\nof session key followed by client response within structure session_key\nis now dynamic.  Every authentication type allocates the key + response\nsized memory within its session structure and later either assigns or\nfrees it once the client response is sent and if session\u0027s session key\nbecomes connetion\u0027s session key.\n\nntlm/ntlmi authentication functions are rearranged.  A function\nnamed setup_ntlm_resp(), similar to setup_ntlmv2_resp(), replaces\nfunction cifs_calculate_session_key().\n\nsize of CIFS_SESS_KEY_SIZE is changed to 16, to reflect the byte size\nof the key it holds.\n\nReviewed-by: Jeff Layton \u003cjlayton@samba.org\u003e\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "6573e9b73e19c0f6b9dfa2b399267ea0f42d6c6b",
      "tree": "7752091c8b066be2c792164f9dd1a3ea4354c4a8",
      "parents": [
        "eb4b756b1e60b66e54932619088b645c712414a3"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Mon Oct 18 23:52:18 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Oct 25 00:19:01 2010 +0000"
      },
      "message": "cifs: update comments - [s/GlobalSMBSesLock/cifs_file_list_lock/g]\n\nGlobalSMBSesLock is now cifs_file_list_lock. Update comments to reflect this.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "eb4b756b1e60b66e54932619088b645c712414a3",
      "tree": "c2a10df2f33be6bd9a8b5491cc1815515dc59e84",
      "parents": [
        "6c0f6218ba04a5d6e61d0c55b68e6c4ef0736531"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Oct 22 14:52:29 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Oct 25 00:19:00 2010 +0000"
      },
      "message": "cifs: eliminate cifsInodeInfo-\u003ewrite_behind_rc (try #6)\n\nwrite_behind_rc is redundant and just adds complexity to the code. What\nwe really want to do instead is to use mapping_set_error to reset the\nflags on the mapping when we find a writeback error and can\u0027t report it\nto userspace yet.\n\nFor cifs_flush and cifs_fsync, we shouldn\u0027t reset the flags since errors\nreturned there do get reported to userspace.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nReviewed-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "6c0f6218ba04a5d6e61d0c55b68e6c4ef0736531",
      "tree": "20575207bcaa90572a619483e763a3e4275845b3",
      "parents": [
        "d3f1322af8f866be54ea79a4002fc30c98290411"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Oct 23 16:51:40 2010 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Oct 25 00:19:00 2010 +0000"
      },
      "message": "[CIFS] Fix checkpatch warnings and bump cifs version number\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "5f6dbc9e4afe4d1d39e85de3ac2720a2042ad191",
      "tree": "8e97fe18b6d0824981fd377b2ff35042da264bb4",
      "parents": [
        "229aebb873e29726b91e076161649cf45154b0bf"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Oct 15 15:34:06 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Oct 25 00:18:59 2010 +0000"
      },
      "message": "cifs: convert cifsFileInfo-\u003ecount to non-atomic counter\n\nThe count for cifsFileInfo is currently an atomic, but that just adds\ncomplexity for little value. We generally need to hold cifs_file_list_lock\nto traverse the lists anyway so we might as well make this counter\nnon-atomic and simply use the cifs_file_list_lock to protect it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "cdff08e76612e53580139653403aedea979aa639",
      "tree": "1ebd74be361b7e34158974242a2303f7833c983d",
      "parents": [
        "3f9bcca7820a6711307b6499952b13cfcfc31dd6"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Oct 21 22:46:14 2010 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Oct 21 22:46:14 2010 +0000"
      },
      "message": "[CIFS] move close processing  from cifs_close to cifsFileInfo_put\n\nNow that it\u0027s feasible for a cifsFileInfo to outlive the filp under\nwhich it was created, move the close processing into cifsFileInfo_put.\n\nThis means that the last user of the filehandle always does the actual\non the wire close call. This also allows us to get rid of the closePend\nflag from cifsFileInfo. If we have an active reference to the file\nthen it\u0027s never going to have a close pending.\n\ncifs_close is converted to simply put the filehandle.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "3f9bcca7820a6711307b6499952b13cfcfc31dd6",
      "tree": "6c380f5877562778335d6794e1e4a297f8970d77",
      "parents": [
        "3e24e132878c83910b61eb7704511a6d96a0389f"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Mon Oct 18 23:29:37 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Oct 21 13:14:27 2010 +0000"
      },
      "message": "cifs: convert cifs_tcp_ses_lock from a rwlock to a spinlock\n\ncifs_tcp_ses_lock is a rwlock with protects the cifs_tcp_ses_list,\nserver-\u003esmb_ses_list and the ses-\u003etcon_list. It also protects a few\nref counters in server, ses and tcon. In most cases the critical section\ndoesn\u0027t seem to be large, in a few cases where it is slightly large, there\nseem to be really no benefit from concurrent access. I briefly considered RCU\nmechanism but it appears to me that there is no real need.\n\nReplace it with a spinlock and get rid of the last rwlock in the cifs code.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "b33879aa834ebe03ced3dca4e3b822bd8894a474",
      "tree": "9475bb683f03180a5fe7909d4182bb5273f5d7a6",
      "parents": [
        "4477288a103631980750c86547d1fd54bfd2ba7d"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Oct 15 15:34:04 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Oct 18 01:32:05 2010 +0000"
      },
      "message": "cifs: move cifsFileInfo_put to file.c\n\n...and make it non-inlined in preparation for the move of most of\ncifs_close to it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "4477288a103631980750c86547d1fd54bfd2ba7d",
      "tree": "e0d56476a740f043f6687e063ff88d2982b4c444",
      "parents": [
        "7a16f1961a5c61d1f60d9e0d3d171cf7793fb5cb"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Oct 15 15:34:03 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Oct 18 01:32:01 2010 +0000"
      },
      "message": "cifs: convert GlobalSMBSeslock from a rwlock to regular spinlock\n\nConvert this lock to a regular spinlock\n\nA rwlock_t offers little value here. It\u0027s more expensive than a regular\nspinlock unless you have a fairly large section of code that runs under\nthe read lock and can benefit from the concurrency.\n\nAdditionally, we need to ensure that the refcounting for files isn\u0027t\nracy and to do that we need to lock areas that can increment it for\nwrite. That means that the areas that can actually use a read_lock are\nvery few and relatively infrequently used.\n\nWhile we\u0027re at it, change the name to something easier to type, and fix\na bug in find_writable_file. cifsFileInfo_put can sleep and shouldn\u0027t be\ncalled while holding the lock.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "2e396b83f6087b78dac5a18d6d0cf9f8426a00b3",
      "tree": "890c0af098920fe79e85f475a25fcc2f0d8c00bc",
      "parents": [
        "7da4b49a0ec481239d9cd51f7053aa8e4e191fa7"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Oct 15 15:34:01 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Oct 18 01:07:20 2010 +0000"
      },
      "message": "cifs: eliminate pfile pointer from cifsFileInfo\n\nAll the remaining users of cifsFileInfo-\u003epfile just use it to get\nat the f_flags/f_mode. Now that we store that separately in the\ncifsFileInfo, there\u0027s no need to consult the pfile at all from\na cifsFileInfo pointer.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "15886177e412db00aa86155fe72608c4ebf5a08f",
      "tree": "eb4ac34ee40ae499ae2a68c44f71effe657b4504",
      "parents": [
        "abfe1eedd682ea0f20e7035445982e6d371a2024"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Oct 15 15:33:59 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Oct 18 01:04:19 2010 +0000"
      },
      "message": "cifs: clean up cifs_reopen_file\n\nAdd a f_flags field that holds the f_flags field from the filp. We\u0027ll\nneed this info in case the filp ever goes away before the cifsFileInfo\ndoes. Have cifs_reopen_file use that value instead of filp-\u003ef_flags\ntoo and have it take a cifsFileInfo arg instead of a filp.\n\nWhile we\u0027re at it, get rid of some bogus cargo-cult NULL pointer\nchecks in that function and reduce the level of indentation.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "5d0d28824c76409f0d1a645bf0ae81318c8ffa42",
      "tree": "592838282fc891dc9a51424e0f57c0694ad31075",
      "parents": [
        "d7c86ff8cd00abc730fe5d031f43dc9138b6324e"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Wed Oct 13 18:15:00 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Oct 14 18:05:19 2010 +0000"
      },
      "message": "NTLM authentication and signing - Calculate auth response per smb session\n\nStart calculation auth response within a session.  Move/Add pertinet\ndata structures like session key, server challenge and ntlmv2_hash in\na session structure.  We should do the calculations within a session\nbefore copying session key and response over to server data\nstructures because a session setup can fail.\n\nOnly after a very first smb session succeeds, it copies/makes its\nsession key, session key of smb connection.  This key stays with\nthe smb connection throughout its life.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "d7c86ff8cd00abc730fe5d031f43dc9138b6324e",
      "tree": "a1f264ce2f33e3ac77a459291b9a5e45a63e3bff",
      "parents": [
        "a5e18bc36e9e05ce0338d370a2ce4290910e43ea"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Oct 11 15:07:19 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Oct 12 18:08:01 2010 +0000"
      },
      "message": "cifs: don\u0027t use vfsmount to pin superblock for oplock breaks\n\nFilesystems aren\u0027t really supposed to do anything with a vfsmount. It\u0027s\nconsidered a layering violation since vfsmounts are entirely managed at\nthe VFS layer.\n\nCIFS currently keeps an active reference to a vfsmount in order to\nprevent the superblock vanishing before an oplock break has completed.\nWhat we really want to do instead is to keep sb-\u003es_active high until the\noplock break has completed. This patch borrows the scheme that NFS uses\nfor handling sillyrenames.\n\nAn atomic_t is added to the cifs_sb_info. When it transitions from 0 to\n1, an extra reference to the superblock is taken (by bumping the\ns_active value). When it transitions from 1 to 0, that reference is\ndropped and a the superblock teardown may proceed if there are no more\nreferences to it.\n\nAlso, the vfsmount pointer is removed from cifsFileInfo and from\ncifs_new_fileinfo, and some bogus forward declarations are removed from\ncifsfs.h.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "a5e18bc36e9e05ce0338d370a2ce4290910e43ea",
      "tree": "9d8b37c1dd20267c372ff8c98850eeb2f204449b",
      "parents": [
        "1c456013e96f10915578dc61095d19b4906f64ac"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Oct 11 15:07:18 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Oct 12 18:06:42 2010 +0000"
      },
      "message": "cifs: keep dentry reference in cifsFileInfo instead of inode reference\n\ncifsFileInfo is a bit problematic. It contains a reference back to the\nstruct file itself. This makes it difficult for a cifsFileInfo to exist\nwithout a corresponding struct file.\n\nIt would be better instead of the cifsFileInfo just held info pertaining\nto the open file on the server instead without any back refrences to the\nstruct file. This would allow it to exist after the filp to which it was\noriginally attached was closed.\n\nMuch of the use of the file pointer in this struct is to get at the\ndentry.  Begin divorcing the cifsFileInfo from the struct file by\nkeeping a reference to the dentry. Since the dentry will have a\nreference to the inode, we can eliminate the \"pInode\" field too and\nconvert the igrab/iput to dget/dput.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "13cd4b7f7472eea7cbc1ab34e042842fbb902160",
      "tree": "484c6d868b448d4386fbe16e01f1ca5e2d01a40c",
      "parents": [
        "0eb8a132c449c755b7a3f18f33365b2040c47347"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Oct 07 18:46:32 2010 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Oct 07 18:46:32 2010 +0000"
      },
      "message": "[CIFS] Various small checkpatch cleanups\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "9d002df492b14c690425d9785530371b6c1ccbca",
      "tree": "6ed1a52d0e348e985f7bd194d22ee6e7854fa9e8",
      "parents": [
        "c9928f7040a6e5f39e028bea500e0fde910d4a96"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 06 19:51:11 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Oct 07 18:18:00 2010 +0000"
      },
      "message": "cifs: add routines to build sessions and tcons on the fly\n\nThis patch is rather large, but it\u0027s a bit difficult to do piecemeal...\n\nFor non-multiuser mounts, everything will basically work as it does\ntoday. A call to cifs_sb_tlink will return the \"master\" tcon link.\n\nTurn the tcon pointer in the cifs_sb into a radix tree that uses the\nfsuid of the process as a key. The value is a new \"tcon_link\" struct\nthat contains info about a tcon that\u0027s under construction.\n\nWhen a new process needs a tcon, it\u0027ll call cifs_sb_tcon. That will\nthen look up the tcon_link in the radix tree. If it exists and is\nvalid, it\u0027s returned.\n\nIf it doesn\u0027t exist, then we stuff a new tcon_link into the tree and\nmark it as pending and then go and try to build the session/tcon.\nIf that works, the tcon pointer in the tcon_link is updated and the\npending flag is cleared.\n\nIf the construction fails, then we set the tcon pointer to an ERR_PTR\nand clear the pending flag.\n\nIf the radix tree is searched and the tcon_link is marked pending\nthen we go to sleep and wait for the pending flag to be cleared.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "13cfb7334eb6fd0fc06da5589aea1e947791f1d6",
      "tree": "56d884f6a5dbcf8b259247fdad55c9158bd4d865",
      "parents": [
        "7ffec372458d163492e56e663a1b3a2d7be0a0a2"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Sep 29 19:51:11 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Oct 06 16:12:49 2010 +0000"
      },
      "message": "cifs: have cifsFileInfo hold a reference to a tlink rather than tcon pointer\n\ncifsFileInfo needs a pointer to a tcon, but it doesn\u0027t currently hold a\nreference to it. Change it to keep a pointer to a tcon_link instead and\nhold a reference to it.\n\nThat will keep the tcon from being freed until the file is closed.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "7ffec372458d163492e56e663a1b3a2d7be0a0a2",
      "tree": "e404e3d1000ff41e9b27d0ecb4d6a47187e110d7",
      "parents": [
        "f3983c2133e9bea9c8b4f690737d15e3e9b02491"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Sep 29 19:51:11 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Oct 06 16:12:44 2010 +0000"
      },
      "message": "cifs: add refcounted and timestamped container for holding tcons\n\nEventually, we\u0027ll need to track the use of tcons on a per-sb basis, so that\nwe know when it\u0027s ok to tear them down. Begin this conversion by adding a\nnew \"tcon_link\" struct and accessors that get it. For now, the core data\nstructures are untouched -- cifs_sb still just points to a single tcon and\nthe pointers are just cast to deal with the accessor functions. A later\npatch will flesh this out.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "0d424ad0a4b8c08e45928bccfa5b4b240097b01b",
      "tree": "40f383b138d2e8121cda4b28f1f7c4b9642fe5ec",
      "parents": [
        "f6acb9d0596889a774e142ed76cb05b90d9763d2"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Sep 20 16:01:35 2010 -0700"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 29 19:04:33 2010 +0000"
      },
      "message": "cifs: add cifs_sb_master_tcon and convert some callers to use it\n\nAt mount time, we\u0027ll always need to create a tcon that will serve as a\ntemplate for others that are associated with the mount. This tcon is\nknown as the \"master\" tcon.\n\nIn some cases, we\u0027ll need to use that tcon regardless of who\u0027s accessing\nthe mount. Add an accessor function for the master tcon and go ahead and\nswitch the appropriate places to use it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "f6acb9d0596889a774e142ed76cb05b90d9763d2",
      "tree": "a6d74c288f9941bf011a68df4d1729048fd779af",
      "parents": [
        "a6e8a8455c94565c53e1a1756d2ab9d9e3a902b8"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Sep 20 16:01:34 2010 -0700"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 29 19:04:33 2010 +0000"
      },
      "message": "cifs: temporarily rename cifs_sb-\u003etcon to ptcon to catch stragglers\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "a6e8a8455c94565c53e1a1756d2ab9d9e3a902b8",
      "tree": "544628293da6aa14a136c915d887d0abdc689a03",
      "parents": [
        "ba00ba64cf0895e4c2ac507e56306363dc125a90"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Sep 20 16:01:33 2010 -0700"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 29 19:04:32 2010 +0000"
      },
      "message": "cifs: add function to get a tcon from cifs_sb\n\nWhen we convert cifs to do multiple sessions per mount, we\u0027ll need more\nthan one tcon per superblock. At that point \"cifs_sb-\u003etcon\" will make\nno sense. Add a new accessor function that gets a tcon given a cifs_sb.\nFor now, it just returns cifs_sb-\u003etcon. Later it\u0027ll do more.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "5fe97cfddc426f3145e8673b68faab7e54462173",
      "tree": "8ef6646ef8237c2757ecb8333a09899c946e4b86",
      "parents": [
        "736a33205969c16f81d747db14ff4c0f133609a6"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Sep 20 16:01:30 2010 -0700"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 29 19:04:31 2010 +0000"
      },
      "message": "cifs: add tcon field to cifsFileInfo struct\n\nEventually, we\u0027ll have more than one tcon per superblock. At that point,\nwe\u0027ll need to know which one is associated with a particular fid. For\nnow, this is just set from the cifs_sb-\u003etcon pointer, but eventually\nthe caller of cifs_new_fileinfo will pass a tcon pointer in.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "3eb9a8893a76cf1cda3b41c3212eb2cfe83eae0e",
      "tree": "fd4fb596113f27bcbe3bba1f2777c91f14521f48",
      "parents": [
        "2b149f11978b44199954710d32c0eecf6c9efd9c"
      ],
      "author": {
        "name": "Ben Greear",
        "email": "greearb@candelatech.com",
        "time": "Wed Sep 01 17:06:02 2010 -0700"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 29 19:04:29 2010 +0000"
      },
      "message": "cifs: Allow binding to local IP address.\n\nWhen using multi-homed machines, it\u0027s nice to be able to specify\nthe local IP to use for outbound connections.  This patch gives\ncifs the ability to bind to a particular IP address.\n\n   Usage:  mount -t cifs -o srcaddr\u003d192.168.1.50,user\u003dfoo, ...\n   Usage:  mount -t cifs -o srcaddr\u003d2002::100:1,user\u003dfoo, ...\n\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Dr. David Holder \u003cdavid.holder@erion.co.uk\u003e\nSigned-off-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "2b149f11978b44199954710d32c0eecf6c9efd9c",
      "tree": "efd48d4b64fc07a244890d1fced9c767ae4f369b",
      "parents": [
        "5f98ca9afb9c004f8948c0d40920503de447918a"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Sat Sep 18 22:02:18 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 29 19:04:29 2010 +0000"
      },
      "message": "cifs NTLMv2/NTLMSSP ntlmv2 within ntlmssp autentication code\n\nAttribue Value (AV) pairs or Target Info (TI) pairs are part of\nntlmv2 authentication.\nStructure ntlmv2_resp had only definition for two av pairs.\nSo removed it, and now allocation of av pairs is dynamic.\nFor servers like Windows 7/2008, av pairs sent by server in\nchallege packet (type 2 in the ntlmssp exchange/negotiation) can\nvary.\n\nServer sends them during ntlmssp negotiation. So when ntlmssp is used\nas an authentication mechanism, type 2 challenge packet from server\nhas this information.  Pluck it and use the entire blob for\nauthenticaiton purpose.  If user has not specified, extract\n(netbios) domain name from the av pairs which is used to calculate\nntlmv2 hash.  Servers like Windows 7 are particular about the AV pair\nblob.\n\nServers like Windows 2003, are not very strict about the contents\nof av pair blob used during ntlmv2 authentication.\nSo when security mechanism such as ntlmv2 is used (not ntlmv2 in ntlmssp),\nthere is no negotiation and so genereate a minimal blob that gets\nused in ntlmv2 authentication as well as gets sent.\n\nFields tilen and tilbob are session specific.  AV pair values are defined.\n\nTo calculate ntlmv2 response we need ti/av pair blob.\n\nFor sec mech like ntlmssp, the blob is plucked from type 2 response from\nthe server.  From this blob, netbios name of the domain is retrieved,\nif user has not already provided, to be included in the Target String\nas part of ntlmv2 hash calculations.\n\nFor sec mech like ntlmv2, create a minimal, two av pair blob.\n\nThe allocated blob is freed in case of error.  In case there is no error,\nthis blob is used in calculating ntlmv2 response (in CalcNTLMv2_response)\nand is also copied on the response to the server, and then freed.\n\nThe type 3 ntlmssp response is prepared on a buffer,\n5 * sizeof of struct _AUTHENTICATE_MESSAGE, an empirical value large\nenough to hold _AUTHENTICATE_MESSAGE plus a blob with max possible\n10 values as part of ntlmv2 response and lmv2 keys and domain, user,\nworkstation  names etc.\n\nAlso, kerberos gets selected as a default mechanism if server supports it,\nover the other security mechanisms.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "5f98ca9afb9c004f8948c0d40920503de447918a",
      "tree": "b9b59bb6a8226925c42c8bbbef85de95e86a9133",
      "parents": [
        "aa91c7e4ab9b0842b7d7a7cbf8cca18b20df89b5"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Sat Sep 18 22:01:58 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 29 19:04:29 2010 +0000"
      },
      "message": "cifs NTLMv2/NTLMSSP Change variable name mac_key to session key to reflect the key it holds\n\nChange name of variable mac_key to session key.\nThe reason mac_key was changed to session key is, this structure does not\nhold message authentication code, it holds the session key (for ntlmv2,\nntlmv1 etc.).  mac is generated as a signature in cifs_calc* functions.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "c8e56f1f4fb9f82f63e4ce6d73a14501d0432c76",
      "tree": "6d0988317a6eaf4b454c73a1dd95f89184f5b1ed",
      "parents": [
        "745e507a9c79c6e1385d3414d5e56f3d4621a375"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 08 21:10:58 2010 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 08 21:10:58 2010 +0000"
      },
      "message": "Revert \"[CIFS] Fix ntlmv2 auth with ntlmssp\"\n\nThis reverts commit 9fbc590860e75785bdaf8b83e48fabfe4d4f7d58.\n\nThe change to kernel crypto and fixes to ntlvm2 and ntlmssp\nseries, introduced a regression.  Deferring this patch series\nto 2.6.37 after Shirish fixes it.\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCC: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\n"
    },
    {
      "commit": "56234e2767496c125a858f880f1b3a62e04a3406",
      "tree": "c83ff996256b7889d8e84d7b2a19eeb15467dad1",
      "parents": [
        "7100ae97266e387d25d0c8a5d9934931f0b07dbc"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 08 20:57:05 2010 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Sep 08 20:57:05 2010 +0000"
      },
      "message": "Revert \"Eliminate sparse warning - bad constant expression\"\n\nThis reverts commit 2d20ca835867d93ead6ce61780d883a4b128106d.\n\n    The change to kernel crypto and fixes to ntlvm2 and ntlmssp\n    series, introduced a regression.  Deferring this patch series\n    to 2.6.37 after Shirish fixes it.\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCC: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\n"
    },
    {
      "commit": "2d20ca835867d93ead6ce61780d883a4b128106d",
      "tree": "519a2bff48470a78406e55428a8410ed63c63c48",
      "parents": [
        "24e6cf92fde1f140d8eb0bf7cd24c2c78149b6b2"
      ],
      "author": {
        "name": "shirishpargaonkar@gmail.com",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Tue Aug 24 11:53:48 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Aug 24 18:12:52 2010 +0000"
      },
      "message": "Eliminate sparse warning - bad constant expression\n\nEliminiate sparse warning during usage of crypto_shash_* APIs\n       error: bad constant expression\n\nAllocate memory for shash descriptors once, so that we do not kmalloc/kfree it\nfor every signature generation (shash descriptor for md5 hash).\n\nFrom ed7538619817777decc44b5660b52268077b74f3 Mon Sep 17 00:00:00 2001\nFrom: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nDate: Tue, 24 Aug 2010 11:47:43 -0500\nSubject: [PATCH] eliminate sparse warnings during crypto_shash_* APis usage\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "9fbc590860e75785bdaf8b83e48fabfe4d4f7d58",
      "tree": "dccc154927cf1e12c702537b5bc028158b938e21",
      "parents": [
        "bf4f12113812ac5be76c5590c6f50c8346f784a4"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Aug 20 20:42:26 2010 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Aug 20 20:42:26 2010 +0000"
      },
      "message": "[CIFS] Fix ntlmv2 auth with ntlmssp\n\nMake ntlmv2 as an authentication mechanism within ntlmssp\ninstead of ntlmv1.\nParse type 2 response in ntlmssp negotiation to pluck\nAV pairs and use them to calculate ntlmv2 response token.\nAlso, assign domain name from the sever response in type 2\npacket of ntlmssp and use that (netbios) domain name in\ncalculation of response.\n\nEnable cifs/smb signing using rc4 and md5.\n\nChanged name of the structure mac_key to session_key to reflect\nthe type of key it holds.\n\nUse kernel crypto_shash_* APIs instead of the equivalent cifs functions.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "3b7433b8a8a83c87972065b1852b7dcae691e464",
      "tree": "93fa2c003f8baef5ab0733b53bac77961ed5240c",
      "parents": [
        "4a386c3e177ca2fbc70c9283d0b46537844763a0",
        "6ee0578b4daaea01c96b172c6aacca43fd9807a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:42:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:42:58 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (55 commits)\n  workqueue: mark init_workqueues() as early_initcall()\n  workqueue: explain for_each_*cwq_cpu() iterators\n  fscache: fix build on !CONFIG_SYSCTL\n  slow-work: kill it\n  gfs2: use workqueue instead of slow-work\n  drm: use workqueue instead of slow-work\n  cifs: use workqueue instead of slow-work\n  fscache: drop references to slow-work\n  fscache: convert operation to use workqueue instead of slow-work\n  fscache: convert object to use workqueue instead of slow-work\n  workqueue: fix how cpu number is stored in work-\u003edata\n  workqueue: fix mayday_mask handling on UP\n  workqueue: fix build problem on !CONFIG_SMP\n  workqueue: fix locking in retry path of maybe_create_worker()\n  async: use workqueue for worker pool\n  workqueue: remove WQ_SINGLE_CPU and use WQ_UNBOUND instead\n  workqueue: implement unbound workqueue\n  workqueue: prepare for WQ_UNBOUND implementation\n  libata: take advantage of cmwq and remove concurrency limitations\n  workqueue: fix worker management invocation without pending works\n  ...\n\nFixed up conflicts in fs/cifs/* as per Tejun. Other trivial conflicts in\ninclude/linux/workqueue.h, kernel/trace/Kconfig and kernel/workqueue.c\n"
    },
    {
      "commit": "3e4b3e1f68c10510ec8d3076cffc5729b88f8de6",
      "tree": "bee962570f8a54547cfb67550f76874d82981fea",
      "parents": [
        "f55fdcca6bf1c17e86a270a8c0d81c6677c61222"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Jul 19 18:00:17 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:39 2010 +0000"
      },
      "message": "cifs: add separate cred_uid field to sesInfo\n\nRight now, there\u0027s no clear separation between the uid that owns the\ncredentials used to do the mount and the overriding owner of the files\non that mount.\n\nAdd a separate cred_uid field that is set to the real uid\nof the mount user. Unlike the linux_uid, the uid\u003d option does not\noverride this parameter. The parm is sent to cifs.upcall, which can then\npreferentially use the creduid\u003d parm instead of the uid\u003d parm for\nfinding credentials.\n\nThis is not the only way to solve this. We could try to do all of this\nin kernel instead by having a module parameter that affects what gets\npassed in the uid\u003d field of the upcall. That said, we have a lot more\nflexibility to change things in userspace so I think it probably makes\nsense to do it this way.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "9451a9a52f91a4c171cfaca2f6d7a2ce91867b8d",
      "tree": "e447d252996e554a053890a75b55456b9926d602",
      "parents": [
        "d03382ce9a89dbe27cba25130f0b90c0d631d5c5"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Mon Jul 05 18:12:45 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:36 2010 +0000"
      },
      "message": "cifs: define inode-level cache object and register them\n\nDefine inode-level data storage objects (managed by cifsInodeInfo structs).\nEach inode-level object is created in a super-block level object and is itself\na data storage object in to which pages from the inode are stored.\n\nThe inode object is keyed by UniqueId. The coherency data being used is\nLastWriteTime, LastChangeTime and end of file reported by the server.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "d03382ce9a89dbe27cba25130f0b90c0d631d5c5",
      "tree": "f2561981a606a788259ad10f0ec57f9486f85da4",
      "parents": [
        "8913007e67106597fed4b9dd3787e8dca6915a83"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Mon Jul 05 18:12:27 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:36 2010 +0000"
      },
      "message": "cifs: define superblock-level cache index objects and register them\n\nDefine superblock-level cache index objects (managed by cifsTconInfo structs).\nEach superblock object is created in a server-level index object and in itself\nan index into which inode-level objects are inserted.\n\nThe superblock object is keyed by sharename. The UniqueId/IndexNumber is used to\nvalidate that the exported share is the same since we accessed it last time.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "8913007e67106597fed4b9dd3787e8dca6915a83",
      "tree": "83fdd597cdf1a5a5871a5952c85d2c0766353091",
      "parents": [
        "4ff67b720c02c36e54d55b88c2931879b7db1cd2"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jul 06 20:43:08 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:35 2010 +0000"
      },
      "message": "cifs: remove unused cifsUidInfo struct\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "4ff67b720c02c36e54d55b88c2931879b7db1cd2",
      "tree": "2a69a278edb4d80a9fb0760d188629fb6e8371fb",
      "parents": [
        "daf5b0b6f3f6d7b15c2600426cc6c60a0e155218"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jul 06 20:43:02 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:35 2010 +0000"
      },
      "message": "cifs: clean up cifs_find_smb_ses (try #2)\n\nThis patch replaces the earlier patch by the same name. The only\ndifference is that MAX_PASSWORD_SIZE has been increased to attempt to\nmatch the limits that windows enforces.\n\nDo a better job of matching sessions by authtype. Matching by username\nfor a Kerberos session is incorrect, and anonymous sessions need special\nhandling.\n\nAlso, in the case where we do match by username, we also need to match\nby password. That ensures that someone else doesn\u0027t \"borrow\" an existing\nsession without needing to know the password.\n\nFinally, passwords can be longer than 16 bytes. Bump MAX_PASSWORD_SIZE\nto 512 to match the size that the userspace mount helper allows.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "daf5b0b6f3f6d7b15c2600426cc6c60a0e155218",
      "tree": "9c6210671c489d493f02dd7ca1eb6799c21fd195",
      "parents": [
        "4515148ef72bfda4ce3c8754149711d9972867ce"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jul 06 20:43:02 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:35 2010 +0000"
      },
      "message": "cifs: match secType when searching for existing tcp session\n\nThe secType is a per-tcp session entity, but the current routine doesn\u0027t\nverify that it is acceptible when attempting to match an existing TCP\nsession.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "488f1d2d6cc9d665c9f09e4b54f77052732e3058",
      "tree": "2e240da84cdb009b89508e0fa748bebe71e35766",
      "parents": [
        "f579cf3cfd1e19ae5aab6929679d0c04bf1a6284"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Mon Jul 05 18:12:15 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:34 2010 +0000"
      },
      "message": "cifs: define server-level cache index objects and register them\n\nDefine server-level cache index objects (as managed by TCP_ServerInfo structs)\nand register then with FS-Cache. Each server object is created in the CIFS\ntop-level index object and is itself an index into which superblock-level\nobjects are inserted.\n\nThe server objects are now keyed by {IPaddress,family,port} tuple.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "c6332e237fb2ee54bc9c614291a006e4801e0f66",
      "tree": "37ac5dcc106e614144e0aed541fd548b792f01e7",
      "parents": [
        "e4317ceca2bdf4bf91112a21e60f73b4c5a1a5da"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Tue Jul 06 17:59:46 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:33 2010 +0000"
      },
      "message": "cifs: remove unused ip_address field in struct TCP_Server_Info\n\nThe ip_address field is not used and seems redundant as there is union addr\nalready and I don\u0027t see any future use as well.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "abd2e44dca2c5d65e047224c6ba4b4c8059f97f8",
      "tree": "b6f71a269e58ba5aecf6b71219178e1510e0b6af",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Tue Jun 22 20:52:50 2010 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 02 12:40:32 2010 +0000"
      },
      "message": "cifs: guard cifsglob.h against multiple inclusion\n\nAdd conditional compile macros to guard the header file against multiple\ninclusion.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "9b646972467fb5fdc677f9e4251875db20bdbb64",
      "tree": "01d54cf7e0ee110bd8287c3360de0c3997e859ae",
      "parents": [
        "d098adfb7d281258173a43151483e52e21761021"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 20 22:09:02 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 22 22:59:15 2010 +0200"
      },
      "message": "cifs: use workqueue instead of slow-work\n\nWorkqueue can now handle high concurrency.  Use system_nrt_wq\ninstead of slow-work.\n\n* Updated is_valid_oplock_break() to not call cifs_oplock_break_put()\n  as advised by Steve French.  It might cause deadlock.  Instead,\n  reference is increased after queueing succeeded and\n  cifs_oplock_break() briefly grabs GlobalSMBSeslock before putting\n  the cfile to make sure it doesn\u0027t put before the matching get is\n  finished.\n\n* Anton Blanchard reported that cifs conversion was using now gone\n  system_single_wq.  Use system_nrt_wq which provides non-reentrance\n  guarantee which is enough and much better.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Steve French \u003csfrench@samba.org\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\n"
    },
    {
      "commit": "baa456331738b4e76a92318b62b354377a30ad80",
      "tree": "75c828a7c8a9f1b5f7f41b2e53271eafb7e561ef",
      "parents": [
        "aa3e5572c538d753dce11bf93532a75f95d22b40",
        "4462dc02842698f173f518c1f5ce79c0fb89395a"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu May 13 22:19:32 2010 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu May 13 22:19:32 2010 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of /pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\tfs/cifs/inode.c\n"
    },
    {
      "commit": "3d69438031b00c601c991ab447cafb7d5c3c59a6",
      "tree": "f40d66a255c4169b43079252a4c96868c097ddab",
      "parents": [
        "05ce7bfe547c9fa967d9cab6c37867a9cb6fb3fa"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue May 11 14:59:55 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue May 11 20:57:50 2010 +0000"
      },
      "message": "cifs: guard against hardlinking directories\n\nWhen we made serverino the default, we trusted that the field sent by the\nserver in the \"uniqueid\" field was actually unique. It turns out that it\nisn\u0027t reliably so.\n\nSamba, in particular, will just put the st_ino in the uniqueid field when\nunix extensions are enabled. When a share spans multiple filesystems, it\u0027s\nquite possible that there will be collisions. This is a server bug, but\nwhen the inodes in question are a directory (as is often the case) and\nthere is a collision with the root inode of the mount, the result is a\nkernel panic on umount.\n\nFix this by checking explicitly for directory inodes with the same\nuniqueid. If that is the case, then we can assume that using server inode\nnumbers will be a problem and that they should be disabled.\n\nFixes Samba bugzilla 7407\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCC: Stable \u003cstable@kernel.org\u003e\nReviewed-and-Tested-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "26efa0bac9dc3587ee8892c06642735bcded59e5",
      "tree": "2d6d75ffa9671b972cadcbc62ed365e992ea247a",
      "parents": [
        "198b5682781b97251afd9025dbf559a77969abdd"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sat Apr 24 07:57:49 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed May 05 23:24:11 2010 +0000"
      },
      "message": "cifs: have decode_negTokenInit set flags in server struct\n\n...rather than the secType. This allows us to get rid of the MSKerberos\nsecurityEnum. The client just makes a decision at upcall time.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "9bf67e516f16d31f86aa6f063576a959bbf19990",
      "tree": "beb24974deea12bbb261e6257946ac12a7fc66f1",
      "parents": [
        "ad6cca6d5d0f713e1987e20ed982cfa9eb16b27e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sat Apr 24 07:57:46 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Apr 27 02:17:08 2010 +0000"
      },
      "message": "cifs: save the dialect chosen by server\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "04912d6a20185473db025061b9b2c81fbdffc48b",
      "tree": "bcebae3f427f4ef3af20f407803bf0a3d31e6733",
      "parents": [
        "d00c28de55a69d13cf2c6a99efc3e81a5d95af74"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sat Apr 24 07:57:45 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Apr 26 18:55:33 2010 +0000"
      },
      "message": "cifs: rename \"extended_security\" to \"global_secflags\"\n\n...since that more accurately describes what that variable holds.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "df2cf170c823ba779ca339e3ede347c87f4dc6a9",
      "tree": "9ea1ababe413a518afb3de89dadeba73db082850",
      "parents": [
        "64ba9926759792cf7b95f823402e2781edd1b5d4"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Feb 12 07:44:16 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Mar 06 04:37:05 2010 +0000"
      },
      "message": "cifs: overhaul cifs_revalidate and rename to cifs_revalidate_dentry\n\ncifs_revalidate is renamed to cifs_revalidate_dentry as a later patch\nwill add a by-filehandle variant.\n\nAdd a new \"invalid_mapping\" flag to the cifsInodeInfo that indicates\nthat the pagecache is considered invalid. Add a new routine to check\ninode attributes whenever they\u0027re updated and set that flag if the inode\nhas changed on the server.\n\ncifs_revalidate_dentry is then changed to just update the attrcache if\nneeded and then to zap the pagecache if it\u0027s not valid.\n\nThere are some other behavior changes in here as well. Open files are\nnow allowed to have their caches invalidated. I see no reason why we\u0027d\nwant to keep stale data around just because a file is open. Also,\ncifs_revalidate_cache uses the server_eof for revalidating the file\nsize since that should more closely match the size of the file on the\nserver.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "d7b619cf56218704ffce9d510aa497f0a0bcda0b",
      "tree": "ab382be7cce3ecd5152a339d1a839343aa7939f0",
      "parents": [
        "122ca0076e5f84fa12943f22f6586ff285670783"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Feb 25 05:36:46 2010 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Feb 25 05:36:46 2010 +0000"
      },
      "message": "[CIFS] pSesInfo-\u003esesSem is used as mutex. Rename it to session_mutex and\nconvert it to a real mutex.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "6a5fa2362b628ee950080bef8895a6fb62f58ab4",
      "tree": "6c756adf9c571529a7ace4e9da807b85e7b1c985",
      "parents": [
        "df9d1e8a4379119cbc47c474f168b5103e404e17"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Jan 01 01:28:43 2010 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Jan 01 01:28:43 2010 +0000"
      },
      "message": "[CIFS] Add support for TCP_NODELAY\n\nmount option sockopt\u003dTCP_NODELAY helpful for faster networks\nboosting performance.  Kernel bugzilla bug number 14032.\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "af901ca181d92aac3a7dc265144a9081a86d8f39",
      "tree": "380054af22521144fbe1364c3bcd55ad24c9bde4",
      "parents": [
        "972b94ffb90ea6d20c589d9a47215df103388ddd"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Nov 14 13:09:05 2009 -0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:55 2009 +0100"
      },
      "message": "tree-wide: fix assorted typos all over the place\n\nThat is \"success\", \"unknown\", \"through\", \"performance\", \"[re|un]mapping\"\n, \"access\", \"default\", \"reasonable\", \"[con]currently\", \"temperature\"\n, \"channel\", \"[un]used\", \"application\", \"example\",\"hierarchy\", \"therefore\"\n, \"[over|under]flow\", \"contiguous\", \"threshold\", \"enough\" and others.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "3bc303c254335dbd7c7012cc1760b12f1d5514d3",
      "tree": "7da17fbfd697216d9ed0ccd64ea9c03aaf3d52c1",
      "parents": [
        "48541bd3dd4739b4d574b44ea47660c88d833677"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Sep 21 06:47:50 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Sep 24 18:33:18 2009 +0000"
      },
      "message": "cifs: convert oplock breaks to use slow_work facility (try #4)\n\nThis is the fourth respin of the patch to convert oplock breaks to\nuse the slow_work facility.\n\nA customer of ours was testing a backport of one of the earlier\npatchsets, and hit a \"Busy inodes after umount...\" problem. An oplock\nbreak job had raced with a umount, and the superblock got torn down and\nits memory reused. When the oplock break job tried to dereference the\ninode-\u003ei_sb, the kernel oopsed.\n\nThis patchset has the oplock break job hold an inode and vfsmount\nreference until the oplock break completes.  With this, there should be\nno need to take a tcon reference (the vfsmount implicitly holds one\nalready).\n\nCurrently, when an oplock break comes in there\u0027s a chance that the\noplock break job won\u0027t occur if the allocation of the oplock_q_entry\nfails. There are also some rather nasty races in the allocation and\nhandling these structs.\n\nRather than allocating oplock queue entries when an oplock break comes\nin, add a few extra fields to the cifsFileInfo struct. Get rid of the\ndedicated cifs_oplock_thread as well and queue the oplock break job to\nthe slow_work thread pool.\n\nThis approach also has the advantage that the oplock break jobs can\npotentially run in parallel rather than be serialized like they are\ntoday.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "48541bd3dd4739b4d574b44ea47660c88d833677",
      "tree": "5ee6d16b924b8c171e66088c5bb3b1d1720cd29f",
      "parents": [
        "058daf4f6795fd23fcca41fe53151cdcbbd263ec"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sat Sep 12 11:54:29 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Sep 15 19:45:25 2009 +0000"
      },
      "message": "cifs: have cifsFileInfo hold an extra inode reference\n\nIt\u0027s possible that this struct will outlive the filp to which it is\nattached. If it does and it needs to do some work on the inode, then\nit\u0027ll need a reference.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "495e993745a722cfa54d76b97d18e8f30c3e6cea",
      "tree": "87f7f3cee5d6dec98debc8957628548f2b774ed2",
      "parents": [
        "590a3fe0e18473a55b0ff48548ba87a2010d7730"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sat Sep 12 11:54:29 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Sep 15 19:45:06 2009 +0000"
      },
      "message": "cifs: remove cifsInodeInfo.oplockPending flag\n\nIt\u0027s set on oplock break but nothing ever looks at it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "20d1752f3d6bd32beb90949559e0d14a0b234445",
      "tree": "4c3c4370b8ad18e07339b4f9e53d35c6df049512",
      "parents": [
        "4142e0d1def2c0176c27fd2e810243045a62eb6d"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "cebbert@redhat.com",
        "time": "Tue Sep 15 01:53:21 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Sep 15 19:38:05 2009 +0000"
      },
      "message": "[CIFS] Re-enable Lanman security\n\ncommit ac68392460ffefed13020967bae04edc4d3add06 (\"[CIFS] Allow raw\nntlmssp code to be enabled with sec\u003dntlmssp\") added a new bit to the\nallowed security flags mask but seems to have inadvertently removed\nLanman security from the allowed flags. Add it back.\n\nCC: Stable \u003cstable@kernel.org\u003e\nSigned-off-by: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "6ab409b53dcaf28f83d518a6702f904b7cee3f41",
      "tree": "050bfb690ac9df049343034681478a5bb174a823",
      "parents": [
        "1b49c5566136455764a8d17ead25784f534c202d"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@linux.vnet.ibm.com",
        "time": "Mon Aug 31 11:07:12 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Sep 01 22:35:01 2009 +0000"
      },
      "message": "cifs: Replace wrtPending with a real reference count\n\nCurrently, cifs_close() tries to wait until all I/O is complete and then\nfrees the file private data.  If I/O does not completely in a reasonable\namount of time it frees the structure anyway, leaving a potential use-\nafter-free situation.\n\nThis patch changes the wrtPending counter to a complete reference count and\nlets the last user free the structure.\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nTested-by: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    }
  ],
  "next": "1b49c5566136455764a8d17ead25784f534c202d"
}
