)]}'
{
  "log": [
    {
      "commit": "c0ba7e5147829eaa607351997bccd06200a8db12",
      "tree": "e7be5cc8dc5bb12a850680d864162f1c1b2cfd1e",
      "parents": [
        "a6d967a485c67ec8a1276261f39d81ace6a3e308"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Mon Sep 25 16:24:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 25 17:38:35 2006 -0700"
      },
      "message": "[PATCH] autofs4: zero timeout prevents shutdown\n\nIf the timeout of an autofs mount is set to zero then umounts are disabled.\n This works fine, however the kernel module checks the expire timeout and\ngoes no further if it is zero.  This is not the right thing to do at\nshutdown as the module is passed an option to expire mounts regardless of\ntheir timeout setting.\n\nThis patch allows autofs to honor the force expire option.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0d5dc6c2dd7a3cd2b2f505b0625c4ec9c0e5b4f0",
      "tree": "e814c077db38d0b20da46c55764e0829158943e7",
      "parents": [
        "b5e500e23e532795fbf79a3cdbcb014f207fdb2a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Sep 14 14:44:51 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:48 2006 -0700"
      },
      "message": "ocfs2: Teach ocfs2_drop_lock() to use -\u003eset_lvb() callback\n\nWith this, we don\u0027t need to pass an additional struct with function pointer.\n\nNow that the callbacks are fully used, comment the remaining API.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "b5e500e23e532795fbf79a3cdbcb014f207fdb2a",
      "tree": "44acf287ae9c45678d7b712518d252c95c75eb5b",
      "parents": [
        "cc567d89b3af4294580c9c97610d2c1018032e33"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 13 22:01:16 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:48 2006 -0700"
      },
      "message": "ocfs2: Remove -\u003eunblock lockres operation\n\nHave ocfs2_process_blocked_lock() call ocfs2_generic_unblock_lock(), which\ngets to be ocfs2_unblock_lock() now that it\u0027s the only possible unblock\nfunction.\n\nRemove the -\u003eunblock() callback from the structure, and all lock type\nspecific unblock functions.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "cc567d89b3af4294580c9c97610d2c1018032e33",
      "tree": "d143d87e9b4b6cca13fd2bb2f86912b44344eacf",
      "parents": [
        "08280f11de91beac2f5234ce5fc2ed246dfe6a86"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 13 21:52:21 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:48 2006 -0700"
      },
      "message": "ocfs2: move downconvert worker to lockres ops\n\nThis way lock types don\u0027t have to manually pass it to\nocfs2_generic_unblock_lock().\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "08280f11de91beac2f5234ce5fc2ed246dfe6a86",
      "tree": "745853080072f539a24be0e82458b651aaaae195",
      "parents": [
        "810d5aeba18825c754cf47db59eb83814a54bb27"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 13 21:41:56 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:48 2006 -0700"
      },
      "message": "ocfs2: Remove unused dlmglue functions\n\nThe meta data unblocking code no longer needs ocfs2_do_unblock_meta() or\nocfs2_can_downconvert_meta_lock(), so remove them.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "810d5aeba18825c754cf47db59eb83814a54bb27",
      "tree": "4d68e97f2487422e6c65fa4758b133e0a013ff7a",
      "parents": [
        "5ef0d4ea087740908f4fb57606f6c09e3b90c477"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 13 21:39:52 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:47 2006 -0700"
      },
      "message": "ocfs2: Have the metadata lock use generic dlmglue functions\n\nFill in the -\u003echeck_downconvert and -\u003eset_lvb callbacks with meta data\nspecific operations and switch ocfs2_unblock_meta() to call\nocfs2_generic_unblock_lock()\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "5ef0d4ea087740908f4fb57606f6c09e3b90c477",
      "tree": "c9e28139d6bfb9b4b2bcc967669dd0cbe12b0abc",
      "parents": [
        "16d5b9567ad5241b5c6e0cc4778c1af6c04bb801"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 13 21:21:52 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:47 2006 -0700"
      },
      "message": "ocfs2: Add -\u003eset_lvb callback in dlmglue\n\nThis allows a lock type to set the value block before downconvert.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "16d5b9567ad5241b5c6e0cc4778c1af6c04bb801",
      "tree": "1dda797d26712376e16c378099bbf33114989c69",
      "parents": [
        "f7fbfdd1fc91543253ba742a926a29c289f8e6ca"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 13 21:10:12 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:47 2006 -0700"
      },
      "message": "ocfs2: Add -\u003echeck_downconvert callback in dlmglue\n\nThis will allow lock types to force a requeue of a lock downconvert.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "f7fbfdd1fc91543253ba742a926a29c289f8e6ca",
      "tree": "6a4f9c824a744a1d53f3a3dc7c4d851641b3b3e8",
      "parents": [
        "b80fc012e03f8f207911b5eafe6916b000e03c8b"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 13 21:02:29 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:47 2006 -0700"
      },
      "message": "ocfs2: Check for refreshing locks in generic unblock function\n\nTidy up the exit path a bit too.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "b80fc012e03f8f207911b5eafe6916b000e03c8b",
      "tree": "8eaad9bc587810f76241c8edd41d34f046f72010",
      "parents": [
        "aa2623ad80577b37637914e809bafa36994ccdf1"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Sep 12 22:08:14 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:47 2006 -0700"
      },
      "message": "ocfs2: don\u0027t unconditionally pass LVB flags\n\nAllow a lock type to specifiy whether it makes use of the LVB. The only type\nwhich does this right now is the meta data lock. This should save us some\nspace on network messages since they won\u0027t have to needlessly transmit value\nblocks.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "aa2623ad80577b37637914e809bafa36994ccdf1",
      "tree": "b17881ea156b47e64ed67f563d0356525cf5a335",
      "parents": [
        "54a7e7552e484c08db221e49c4519ccdeb8882d0"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Sep 12 21:58:23 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:46 2006 -0700"
      },
      "message": "ocfs2: combine inode and generic blocking AST functions\n\nThere is extremely little difference between the two now. We can remove the\ncallback from ocfs2_lock_res_ops as well.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "54a7e7552e484c08db221e49c4519ccdeb8882d0",
      "tree": "9787fd07933105339ec5f2310888166d63cbc4b0",
      "parents": [
        "2a45f2d13e1dd91bc110801f5818379f2699509c"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Sep 12 21:49:13 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:46 2006 -0700"
      },
      "message": "ocfs2: Add -\u003eget_osb() dlmglue locking operation\n\nWill be used to find the ocfs2_super structure from a given lockres.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "2a45f2d13e1dd91bc110801f5818379f2699509c",
      "tree": "ac68aacc698000af16957ae009908f24a4f3b81b",
      "parents": [
        "e92d57df273a3a7e57688e1d4f5a894870d550d2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Sep 12 21:36:58 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:46 2006 -0700"
      },
      "message": "ocfs2: remove -\u003eunlock_ast() callback from ocfs2_lock_res_ops\n\nThis was always defined to the same function in all locks, so clean things\nup by removing and passing ocfs2_unlock_ast() directly to the DLM.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "e92d57df273a3a7e57688e1d4f5a894870d550d2",
      "tree": "9334beeeac74a2aad2a98a5dcf73e7dc2d57b65b",
      "parents": [
        "f625c9793b6cc64aeb1b6387039d09019c214352"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Sep 12 21:34:35 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:46 2006 -0700"
      },
      "message": "ocfs2: combine inode and generic AST functions\n\nThere is extremely little difference between the two now. We can remove the\ncallback from ocfs2_lock_res_ops as well.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "f625c9793b6cc64aeb1b6387039d09019c214352",
      "tree": "8f70dcba910843a70f95e6cd869ad54c66f07880",
      "parents": [
        "24c19ef40474c3930597f31ae233dc06319bd881"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Sep 12 21:24:53 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:46 2006 -0700"
      },
      "message": "ocfs2: Clean up lock resource refresh flags\n\nUse of the refresh mechanism is lock-type wide, so move knowledge of that to\nthe ocfs2_lock_res_ops structure.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "24c19ef40474c3930597f31ae233dc06319bd881",
      "tree": "e05b1cf72435d25bf47e67b206aa376bbea33b7d",
      "parents": [
        "f9e2d82e6395cfa0802446b54b63cc412089d82c"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 22 17:28:19 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:46 2006 -0700"
      },
      "message": "ocfs2: Remove i_generation from inode lock names\n\nOCFS2 puts inode meta data in the \"lock value block\" provided by the DLM.\nTypically, i_generation is encoded in the lock name so that a deleted inode\non and a new one in the same block don\u0027t share the same lvb.\n\nUnfortunately, that scheme means that the read in ocfs2_read_locked_inode()\nis potentially thrown away as soon as the meta data lock is taken - we\ncannot encode the lock name without first knowing i_generation, which\nrequires a disk read.\n\nThis patch encodes i_generation in the inode meta data lvb, and removes the\nvalue from the inode meta data lock name. This way, the read can be covered\nby a lock, and at the same time we can distinguish between an up to date and\na stale LVB.\n\nThis will help cold-cache stat(2) performance in particular.\n\nSince this patch changes the protocol version, we take the opportunity to do\na minor re-organization of two of the LVB fields.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "f9e2d82e6395cfa0802446b54b63cc412089d82c",
      "tree": "cdf647041c713d3cbc8b1e0d4006c9440184e336",
      "parents": [
        "4d3b83f7364269b66cdda271f680bd99e77afd96"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Sep 12 15:35:49 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:45 2006 -0700"
      },
      "message": "ocfs2: Encode i_generation in the meta data lvb\n\nWhen i_generation is removed from the lockname, this will help us determine\nwhether a meta data lvb has information that is in sync with the local\nstruct inode.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "4d3b83f7364269b66cdda271f680bd99e77afd96",
      "tree": "fcae1aca5ab487d07cd7ad4f01e71b961dc99107",
      "parents": [
        "0027dd5bc213bc639e09dd002a4ab56bd18317c3"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Sep 12 15:22:18 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:45 2006 -0700"
      },
      "message": "ocfs2: Free up some space in the lvb\n\nlvb_version doesn\u0027t need to be a whole 32 bits. Make it an 8 bit field to\nfree up some space. This should be backwards compatible until we use one of\nthe fields, in which case we\u0027d bump the lvb version anyway.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "0027dd5bc213bc639e09dd002a4ab56bd18317c3",
      "tree": "b41612706b25e8be6aa22f8423cc92a95a2337dc",
      "parents": [
        "1ba9da2ffa54b56a6346746248bfa38124d499a6"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Sep 21 16:51:28 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:45 2006 -0700"
      },
      "message": "ocfs2: Remove special casing for inode creation in ocfs2_dentry_attach_lock()\n\nWe can\u0027t use LKM_LOCAL for new dentry locks because an unlink and subsequent\nre-create of a name/inode pair may result in the lock still being mastered\nsomewhere in the cluster.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "1ba9da2ffa54b56a6346746248bfa38124d499a6",
      "tree": "51b25c65e92b6d2b3281d175e517cb5699e4b9ee",
      "parents": [
        "349457ccf2592c14bdf13b6706170ae2e94931b1"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 14:22:54 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:45 2006 -0700"
      },
      "message": "ocfs2: manually d_move() during ocfs2_rename()\n\nMake use of FS_RENAME_DOES_D_MOVE to avoid a race condition that can occur\nduring -\u003erename() if we d_move() outside of the parent directory cluster\nlocks, and another node discovers the new name (created during the rename)\nand unlinks it. d_move() will unconditionally rehash a dentry - which will\nleave stale data in the system.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "349457ccf2592c14bdf13b6706170ae2e94931b1",
      "tree": "3670945b5a62617d38cf1f317487387032d3da4d",
      "parents": [
        "1390334b4c697b7588d5661fcf6acaeec409cf4c"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 14:22:21 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:45 2006 -0700"
      },
      "message": "[PATCH] Allow file systems to manually d_move() inside of -\u003erename()\n\nSome file systems want to manually d_move() the dentries involved in a\nrename.  We can do this by making use of the FS_ODD_RENAME flag if we just\nhave nfs_rename() unconditionally do the d_move().  While there, we rename\nthe flag to be more descriptive.\n\nOCFS2 uses this to protect that part of the rename operation with a cluster\nlock.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n"
    },
    {
      "commit": "1390334b4c697b7588d5661fcf6acaeec409cf4c",
      "tree": "a19c2c3e5934ff71511826e5a57e47bde321c490",
      "parents": [
        "379dfe9d0db99ed33fb089fcb9c07f5f92566e9e"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 14:21:43 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:43 2006 -0700"
      },
      "message": "ocfs2: Remove the dentry vote\n\nThis is unused now.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "379dfe9d0db99ed33fb089fcb9c07f5f92566e9e",
      "tree": "8f04d8dbf97fa70d8f02fcbb037e7b318cd7143e",
      "parents": [
        "80c05846f604bab6d61e9732c262420ee9f5f358"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 14:21:03 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:43 2006 -0700"
      },
      "message": "ocfs2: Hook rest of the file system into dentry locking API\n\nActually replace the vote calls with the new dentry operations. Make any\nnecessary adjustments to get the scheme to work.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "80c05846f604bab6d61e9732c262420ee9f5f358",
      "tree": "3fcd80cec6e3a3a1e56abaff0a559817dbcb95a2",
      "parents": [
        "d680efe9d8fe0eb99d9dd063a4def6b362cdb40d"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 14:43:18 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:43 2006 -0700"
      },
      "message": "ocfs2: Add dentry tracking API\n\nReplace the dentry vote mechanism with a cluster lock which covers a set\nof dentries. This allows us to force d_delete() only on nodes which actually\ncare about an unlink.\n\nEvery node that does a -\u003elookup() gets a read only lock on the dentry, until\nan unlink during which the unlinking node, will request an exclusive lock,\nforcing the other nodes who care about that dentry to d_delete() it. The\neffect is that we retain a very lightweight -\u003ed_revalidate(), and at the\nsame time get to make large improvements to the average case performance of\nthe ocfs2 unlink and rename operations.\n\nThis patch adds the higher level API and the dentry manipulation code.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "d680efe9d8fe0eb99d9dd063a4def6b362cdb40d",
      "tree": "51e8c081c673240434dce4b44bf66fbfd4dddf30",
      "parents": [
        "f0681062b8e369d9fb6f3ce10f4e3fc8cea5f910"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 14:14:34 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:42 2006 -0700"
      },
      "message": "ocfs2: Add new cluster lock type\n\nReplace the dentry vote mechanism with a cluster lock which covers a set\nof dentries. This allows us to force d_delete() only on nodes which actually\ncare about an unlink.\n\nEvery node that does a -\u003elookup() gets a read only lock on the dentry, until\nan unlink during which the unlinking node, will request an exclusive lock,\nforcing the other nodes who care about that dentry to d_delete() it. The\neffect is that we retain a very lightweight -\u003ed_revalidate(), and at the\nsame time get to make large improvements to the average case performance of\nthe ocfs2 unlink and rename operations.\n\nThis patch adds the cluster lock type which OCFS2 can attach to\ndentries.  A small number of fs/ocfs2/dcache.c functions are stubbed\nout so that this change can compile.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "f0681062b8e369d9fb6f3ce10f4e3fc8cea5f910",
      "tree": "5db79c33d86409a458775a0dff0a80485b37ee14",
      "parents": [
        "ea5b3a187e2724fa9d08b2fbd3898c149ed95c6b"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 11:40:10 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:42 2006 -0700"
      },
      "message": "ocfs2: Update dlmglue for new dlmlock() API\n\nFile system lock names are very regular right now, so we really only need to\npass an extra parameter to dlmlock().\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "ea5b3a187e2724fa9d08b2fbd3898c149ed95c6b",
      "tree": "42748cd0189e3b41147ccbe114d02633dc8d0d1e",
      "parents": [
        "3384f3df5ed939a25135e1b2734fb7cdee1720a8"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 11:39:27 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:42 2006 -0700"
      },
      "message": "ocfs2: Update dlmfs for new dlmlock() API\n\nWe just need to add a namelen field to the user_lock_res structure, and\nupdate a few debug prints. Instead of updating all debug prints, I took the\nopportunity to remove a few that are likely unnecessary these days.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "3384f3df5ed939a25135e1b2734fb7cdee1720a8",
      "tree": "7a68180b6adeb74b5a0a96e6c2d4ad529b34096d",
      "parents": [
        "e2c73698af3dac89328eef2b55f6746e0507d2bc"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 11:38:29 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:42 2006 -0700"
      },
      "message": "ocfs2: Allow binary names in the DLM\n\nThe OCFS2 DLM uses strlen() to determine lock name length, which excludes\nthe possibility of putting binary values in the name string. Fix this by\nrequiring that string length be passed in as a parameter.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "e2c73698af3dac89328eef2b55f6746e0507d2bc",
      "tree": "0bfdae45908f1d148f0c3821f4010c9bcf36553f",
      "parents": [
        "a68aa1cc6f3203b8a332683ebde67a00f39eec43"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 11:37:32 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:41 2006 -0700"
      },
      "message": "ocfs2: Silence dlm error print\n\nAn AST can be delivered via the network after a lock has been removed, so no\nneed to print an error when we see that.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "e18fa700c9a31360bc8f193aa543b7ef7b39a06b",
      "tree": "1006f53177341c614d4aeb6c96e2e8f3859b5f52",
      "parents": [
        "4f5537de7c1531398e84e18a24f667e49cc94208"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Sep 24 11:13:19 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Sep 24 11:13:19 2006 -0400"
      },
      "message": "Move several *_SUPER_MAGIC symbols to include/linux/magic.h.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "026ed5c9185dcc4b2df92e98c3d61a01cea19cbf",
      "tree": "3a070b30921f3fedd06478b0d8a435d786416baa",
      "parents": [
        "f551e44ff11d3e2ec8f37907bb88ec2433cc8b74"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Sep 20 14:33:07 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:06 2006 -0400"
      },
      "message": "NFS: unmark NFS direct I/O as experimental\n\nRemove the EXPERIMENTAL flag from the NFS_DIRECTIO option.\n\nTest plan:\nUnset the EXPERIMENTAL kernel build option and check to see that the NFS\ndirect I/O option is still available.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f551e44ff11d3e2ec8f37907bb88ec2433cc8b74",
      "tree": "f86527c24391f70d72a28111df5c541959e8f293",
      "parents": [
        "a53a3c58fd83e572a7c768d88b4c4e9840a57e82"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Sep 20 14:33:04 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:05 2006 -0400"
      },
      "message": "NFS: add comments clarifying the use of nfs_post_op_update()\n\nComments-only change to clarify a detail of the NFS protocol and how it is\nimplemented in Linux.\n\nTest plan:\nNone.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "aec5e175288c711cbe44750276f61efa3fa3d370",
      "tree": "b793c3da94887f25e26b6627959a8bb5cb3b10dc",
      "parents": [
        "51b6ded4d9a94a61035deba1d8f51a54e3a3dd86"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jeffpc@josefsipek.net",
        "time": "Sat Sep 16 21:09:32 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:04 2006 -0400"
      },
      "message": "NFS: Use SEEK_END instead of hardcoded value\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjeffpc@josefsipek.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "51b6ded4d9a94a61035deba1d8f51a54e3a3dd86",
      "tree": "ec5a7a1cd573a2839e1af36aa74afb217dd1c01c",
      "parents": [
        "2066fe89b459c3c787c811b3369df191cddd93d8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 15 16:31:56 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:04 2006 -0400"
      },
      "message": "NFSv4: When mounting with a port\u003d0 argument, substitute port\u003d2049\n\nRFC3530 states that the registered port 2049 for the NFS protocol should be\nthe default configuration in order to allow clients not to use the RPC\nbinding protocols.\nIf the mount program sends us a port\u003d0, we therefore substitute port\u003d2049.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2066fe89b459c3c787c811b3369df191cddd93d8",
      "tree": "0eca930bb5dd17671b49d09e2aad13c6bdee801b",
      "parents": [
        "c514983d8d2260020543a81589a2b8c7d4bdab4e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 15 08:30:46 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:04 2006 -0400"
      },
      "message": "NFSv4: Poll more aggressively when handling NFS4ERR_DELAY\n\nChange the initial retry delay from 1s to 0.1s (and then back off\nexponentially).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c514983d8d2260020543a81589a2b8c7d4bdab4e",
      "tree": "6151b2a7bb74c6209f7861d0748b35261e53c15e",
      "parents": [
        "6b30954ebb569fa1b2abdb21f2f4290eec76bf80"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 15 08:25:04 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:03 2006 -0400"
      },
      "message": "NFSv4: Handle the condition NFS4ERR_FILE_OPEN\n\nRetry a few times before we give up: the error is usually due to ordering\nissues with asynchronous RPC calls.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b30954ebb569fa1b2abdb21f2f4290eec76bf80",
      "tree": "8d342c0709eeb7c0b442db29b6b3754572e75689",
      "parents": [
        "97db8f41792839a6912fd21be8b61dd6c50db58f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Sep 14 14:03:14 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:03 2006 -0400"
      },
      "message": "NFSv4: Retry lease recovery if it failed during a synchronous operation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "97db8f41792839a6912fd21be8b61dd6c50db58f",
      "tree": "b569931dd76809ef4bee9165da54d1c34310fbe4",
      "parents": [
        "5f004cf2aa8494708fd8d78e78142b7b2748e765"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Sep 14 14:03:14 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:03 2006 -0400"
      },
      "message": "NFS: Don\u0027t invalidate the symlink we just stuffed into the cache\n\nAnd slight optimisation of nfs_end_data_update(): directories never have\ndelegations anyway.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5f004cf2aa8494708fd8d78e78142b7b2748e765",
      "tree": "c4f10f43217737e08d68167e1866ef5b305ac571",
      "parents": [
        "2dec51466a08ac1c67da41bfd0518d43d983a2eb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Sep 14 14:03:14 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:02 2006 -0400"
      },
      "message": "NFS: Make read() return an ESTALE if the file has been deleted\n\nCurrently, a read() request will return EIO even if the file has been\ndeleted on the server, simply because that is what the VM will return\nif the call to readpage() fails to update the page.\n\nEnsure that readpage() marks the inode as stale if it receives an ESTALE.\nThen return that error to userland.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2dec51466a08ac1c67da41bfd0518d43d983a2eb",
      "tree": "b6df8d1c1dfe41b4aa89d42ba9864358e6eea1d3",
      "parents": [
        "fd6840714d9cf6e93f1d42b904860a94df316b85"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Sep 12 11:53:23 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:02 2006 -0400"
      },
      "message": "NFSv4: It\u0027s perfectly legal for clp to be NULL here....\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fd6840714d9cf6e93f1d42b904860a94df316b85",
      "tree": "e72a0ef8bff8f1b6183596dbce3de34570ee6180",
      "parents": [
        "762d4527c2fc19d821a13d9a3455ccc2d4073731"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 05 12:27:44 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:01 2006 -0400"
      },
      "message": "NFS: nfs_lookup - don\u0027t hash dentry when optimising away the lookup\n\nIf the open intents tell us that a given lookup is going to result in a,\nexclusive create, we currently optimize away the lookup call itself. The\nreason is that the lookup would not be atomic with the create RPC call, so\nwhy do it in the first place?\n\nA problem occurs, however, if the VFS aborts the exclusive create operation\nafter the lookup, but before the call to create the file/directory: in this\ncase we will end up with a hashed negative dentry in the dcache that has\nnever been looked up.\nFix this by only actually hashing the dentry once the create operation has\nbeen successfully completed.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "297de4f65698ee1e1c75e27d57933b5fa8227e72",
      "tree": "b04698edae97e64b3ad5290b33a9233f97f48c77",
      "parents": [
        "058ad9cbf14b3c7480d01b20280cb4d5858f7a50"
      ],
      "author": {
        "name": "andros@citi.umich.edu",
        "email": "andros@citi.umich.edu",
        "time": "Tue Aug 29 12:19:41 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:56 2006 -0400"
      },
      "message": "Fix a referral error Oops\n\nFix an oops when the referral server is not responding.\nCheck the error return from nfs4_set_client() in nfs4_create_referral_server.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "058ad9cbf14b3c7480d01b20280cb4d5858f7a50",
      "tree": "069a2340c25a953b134b09efc9b84e64847b93ec",
      "parents": [
        "6daabf1b04c89f1fbd8eab5450261360943c8e20"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 27 17:23:53 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:55 2006 -0400"
      },
      "message": "NFS: NFS_ROOT should use the new rpc_create API\n\nTeach NFS_ROOT to use the new rpc_create API instead of the old two-call\nAPI for creating an RPC transport.\n\nTest plan:\nCompile the kernel with the NFS client build-in, and set CONFIG_NFS_ROOT.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6daabf1b04c89f1fbd8eab5450261360943c8e20",
      "tree": "a4aa0653c5edaf6deb41a10c16b8476f331e7c72",
      "parents": [
        "158998b6fe36f6acef087f574c96d44713499cc9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Aug 24 15:44:16 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:55 2006 -0400"
      },
      "message": "NFS: Fix up compiler warnings on 64-bit platforms in client.c\n\nFix up warnings from compiling on ppc64.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "158998b6fe36f6acef087f574c96d44713499cc9",
      "tree": "afc0f330e51135cdcf05bd8c268bf514165a4e4a",
      "parents": [
        "5dd3177ae5012c1e2ad7a9ffdbd0e0d0de2f60e4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 24 01:03:17 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:54 2006 -0400"
      },
      "message": "SUNRPC: Make rpc_mkpipe() take the parent dentry as an argument\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5dd3177ae5012c1e2ad7a9ffdbd0e0d0de2f60e4",
      "tree": "2a8730d6443f6d33e8879cfc323396f9a570b97b",
      "parents": [
        "275a082fe9308e710324e26ccb5363c53d8fd45f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 24 01:03:05 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:54 2006 -0400"
      },
      "message": "NFSv4: Fix a use-after-free issue with the nfs server.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "275a082fe9308e710324e26ccb5363c53d8fd45f",
      "tree": "e97df6e45f98ea2827f71dc749f8cd47f3f353cc",
      "parents": [
        "94a6d75320b3681e6e728b70e18bd186cb55e682"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 22 20:06:24 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:54 2006 -0400"
      },
      "message": "Add a real API for dealing with blk_congestion_wait()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "94a6d75320b3681e6e728b70e18bd186cb55e682",
      "tree": "0957071549d76ceb3857e419998818b11bce7269",
      "parents": [
        "873101b33776780d32610fc4c90c7358a5e98f51"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:23 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:53 2006 -0400"
      },
      "message": "NFS: Use cached page as buffer for NFS symlink requests\n\nNow that we have a copy of the symlink path in the page cache, we can pass\na struct page down to the XDR routines instead of a string buffer.\n\nTest plan:\nConnectathon, all NFS versions.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "873101b33776780d32610fc4c90c7358a5e98f51",
      "tree": "39bff3860ecc522e8a716c8cf2eebf55588f081a",
      "parents": [
        "4f390c152bc87165da4b1f5b7d870b46fb106d4e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:23 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:53 2006 -0400"
      },
      "message": "NFS: copy symlinks into page cache before sending NFS SYMLINK request\n\nCurrently the NFS client does not cache symlinks it creates.  They get\ncached only when the NFS client reads them back from the server.\n\nCopy the symlink into the page cache before sending it.\n\nTest plan:\nConnectathon, all NFS versions.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4f390c152bc87165da4b1f5b7d870b46fb106d4e",
      "tree": "643b5d12f76bd7d3688380fbaf69f607a34a06bf",
      "parents": [
        "d3db90e270791b21cd00d3c094884bffa907cc9e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:22 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:52 2006 -0400"
      },
      "message": "NFS: Fix double d_drop in nfs_instantiate() error path\n\nIf the LOOKUP or GETATTR in nfs_instantiate fail, nfs_instantiate will do a\nd_drop before returning.  But some callers already do a d_drop in the case\nof an error return.  Make certain we do only one d_drop in all error paths.\n\nThis issue was introduced because over time, the symlink proc API diverged\nslightly from the create/mkdir/mknod proc API.  To prevent other coding\nmistakes of this type, change the symlink proc API to be more like\ncreate/mkdir/mknod and move the nfs_instantiate call into the symlink proc\nroutines so it is used in exactly the same way for create, mkdir, mknod,\nand symlink.\n\nTest plan:\nConnectathon, all versions of NFS.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d3db90e270791b21cd00d3c094884bffa907cc9e",
      "tree": "3d6aea8fabd34fba5db5454867811b087bb71e05",
      "parents": [
        "b86acd501a34227e0ed2b2d54dc8002c1701ce17"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:22 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:52 2006 -0400"
      },
      "message": "NFS: remove a no-longer-needed error check in nfs_symlink()\n\nIn the early days of NFS, there was no duplicate reply cache on the server.\nThus retransmitted non-idempotent requests often found that the request had\nalready completed on the server.  To avoid passing an unanticipated return\ncode to unsuspecting applications, NFS clients would often shunt error\ncodes that implied the request had been retried but already completed.\n\nThanks to NFS over TCP, duplicate reply caches on the server, and network\nperformance and reliability improvements, it is safe to remove such checks.\n\nTest plan:\nNone.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ae5c79476f36512d1100e162606bb5691f2cce5a",
      "tree": "5dd4ea2fad48c21c3ddb7839ab28221d06c3b409",
      "parents": [
        "41877d207c46f050b709f452703ade20c3b4a096"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:21 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:50 2006 -0400"
      },
      "message": "NFSD: Convert NFS server callback logic to use new rpc_create API\n\nReplace xprt_create_proto/rpc_create_client call in NFS server callback\nfunctions to use new rpc_create() API.\n\nTest plan:\nNFSv4 delegation functionality tests.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "41877d207c46f050b709f452703ade20c3b4a096",
      "tree": "a0da315e01e6008823dcc46c602e13c550a085a8",
      "parents": [
        "e1ec78928b4d5a31b7a847e65c6009f4229f7c0f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:20 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:50 2006 -0400"
      },
      "message": "NFS: Convert NFS client to use new rpc_create() API\n\nConvert NFS client mount logic to use rpc_create() instead of the old\nxprt_create_proto/rpc_create_client API.\n\nTest plan:\nMount stress tests.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e1ec78928b4d5a31b7a847e65c6009f4229f7c0f",
      "tree": "cf4a8b521551b3e398801fc3618b586e19f94f1e",
      "parents": [
        "c2866763b4029411d166040306691773c12d4caf"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:20 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:50 2006 -0400"
      },
      "message": "LOCKD: Convert to use new rpc_create() API\n\nReplace xprt_create_proto/rpc_create_client with new rpc_create()\ninterface in the Network Lock Manager.\n\nNote that the semantics of NLM transports is now \"hard\" instead of \"soft\"\nto provide a better guarantee that lock requests will get to the server.\n\nTest plan:\nRepeated runs of Connectathon locking suite.  Check network trace to ensure\nNLM requests are working correctly.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6ca948238724c945bd353f51d54ae7d285f3889f",
      "tree": "222aa223d93a4ffc7e662e1d80bb3b5d28b5f1a2",
      "parents": [
        "c4efcb1d3e0bc76aeb9ca6301d19a5079893c6c9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:19 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:49 2006 -0400"
      },
      "message": "SUNRPC: Clean-up after previous patches.\n\nRemove some unused macros related to accessing an RPC peer address\n\nTest plan:\nCompile kernel with CONFIG_NFS option enabled.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "39d7bbcb5ba5e9d8d658b70903dd7939400e57db",
      "tree": "591e25f18cc1779c88c1a9de9306b23ff50bd0e0",
      "parents": [
        "081f79a9b09b634f0dc08ed014e0195464d52535"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:18 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:47 2006 -0400"
      },
      "message": "SUNRPC: remove extraneous header inclusions\n\ninclude/linux/sunrpc/clnt.h already includes include/linux/sunrpc/xprt.h.\nWe can remove xprt.h from source files that already include clnt.h.\nLikewise include/linux/sunrpc/timer.h.\n\nTest plan:\nCompile kernel with CONFIG_NFS enabled.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "44c31be261540acf66ddd730631ead8009cc361d",
      "tree": "157a92c24d50f8c82be464a4b326e07a37b2de2a",
      "parents": [
        "ed39440a2573abc926f230267000f21fa5a87822"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:17 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:46 2006 -0400"
      },
      "message": "LOCKD: Teach lockd to use the new rpc_peeraddr() API\n\nHide the details of how the RPC client stores remote peer addresses from\nthe Network Lock Manager.\n\nTest plan:\nDestructive testing (unplugging the network temporarily).  Connectathon\nwith UDP and TCP.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9c5bf38d85a31b946664bcc21078ef5bb10672f7",
      "tree": "cceee456ebefe2380a417746b366d67a11ec6ebe",
      "parents": [
        "36b15c54cd0d6f707a3ac03e4a2a60bb530a95b9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 22 20:06:14 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:38 2006 -0400"
      },
      "message": "NFS: Fix nfs_alloc_client()\n\nThe scheme to indicate which services have been started up appears to be\nseriously broken.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "36b15c54cd0d6f707a3ac03e4a2a60bb530a95b9",
      "tree": "09aa1cff411f9a26c1da9255241a865b13d738f3",
      "parents": [
        "738a35195941ecf604d3070e2a053e1df3de350b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 22 20:06:14 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:38 2006 -0400"
      },
      "message": "NFS: Ensure NFSv2/v3 mounts respect the NFS_MOUNT_SECFLAVOUR flag\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "738a35195941ecf604d3070e2a053e1df3de350b",
      "tree": "dd85dd6e48fad4a041d26ef6c36c4dd08537161f",
      "parents": [
        "27ba851244f627a302d0fc6469d1ad413fc34fcb"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sun Jul 30 14:58:27 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:38 2006 -0400"
      },
      "message": "NFS: Secure the roots of the NFS subtrees in a shared superblock\n\nInvoke security_d_instantiate() on root dentries after allocating them with\ndentry_alloc_anon().  Normally dentry_alloc_root() would do that, but we don\u0027t\ncall that as we don\u0027t want to assign a name to the root dentry at this point\n(we may discover the real name later).\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "27ba851244f627a302d0fc6469d1ad413fc34fcb",
      "tree": "383016ee3e96fe7acf62067bda1ed70371ab4640",
      "parents": [
        "6aaca566503296a73f956908ec98173946134fe2"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sun Jul 30 14:40:56 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:37 2006 -0400"
      },
      "message": "NFS: Fix error handling\n\nFix an error handling problem: nfs_put_client() can be given a NULL pointer if\nnfs_free_server() is asked to destroy a partially initialised record.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6aaca566503296a73f956908ec98173946134fe2",
      "tree": "7625bbfa14cddd93ed3e2afa03caf4b553116f76",
      "parents": [
        "54ceac4515986030c2502960be620198dd8fe25b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:13 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:37 2006 -0400"
      },
      "message": "NFS: Add server and volume lists to /proc\n\nMake two new proc files available:\n\n\t/proc/fs/nfsfs/servers\n\t/proc/fs/nfsfs/volumes\n\nThe first lists the servers with which we are currently dealing (struct\nnfs_client), and the second lists the volumes we have on those servers (struct\nnfs_server).\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "54ceac4515986030c2502960be620198dd8fe25b",
      "tree": "b4ae4305c5652c0fe883ef5ea3243da91dbd2b34",
      "parents": [
        "cf6d7b5de8535a9f0088c5cc28ee2dae87371b4a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:13 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:37 2006 -0400"
      },
      "message": "NFS: Share NFS superblocks per-protocol per-server per-FSID\n\nThe attached patch makes NFS share superblocks between mounts from the same\nserver and FSID over the same protocol.\n\nIt does this by creating each superblock with a false root and returning the\nreal root dentry in the vfsmount presented by get_sb(). The root dentry set\nstarts off as an anonymous dentry if we don\u0027t already have the dentry for its\ninode, otherwise it simply returns the dentry we already have.\n\nWe may thus end up with several trees of dentries in the superblock, and if at\nsome later point one of anonymous tree roots is discovered by normal filesystem\nactivity to be located in another tree within the superblock, the anonymous\nroot is named and materialises attached to the second tree at the appropriate\npoint.\n\nWhy do it this way? Why not pass an extra argument to the mount() syscall to\nindicate the subpath and then pathwalk from the server root to the desired\ndirectory? You can\u0027t guarantee this will work for two reasons:\n\n (1) The root and intervening nodes may not be accessible to the client.\n\n     With NFS2 and NFS3, for instance, mountd is called on the server to get\n     the filehandle for the tip of a path. mountd won\u0027t give us handles for\n     anything we don\u0027t have permission to access, and so we can\u0027t set up NFS\n     inodes for such nodes, and so can\u0027t easily set up dentries (we\u0027d have to\n     have ghost inodes or something).\n\n     With this patch we don\u0027t actually create dentries until we get handles\n     from the server that we can use to set up their inodes, and we don\u0027t\n     actually bind them into the tree until we know for sure where they go.\n\n (2) Inaccessible symbolic links.\n\n     If we\u0027re asked to mount two exports from the server, eg:\n\n\tmount warthog:/warthog/aaa/xxx /mmm\n\tmount warthog:/warthog/bbb/yyy /nnn\n\n     We may not be able to access anything nearer the root than xxx and yyy,\n     but we may find out later that /mmm/www/yyy, say, is actually the same\n     directory as the one mounted on /nnn. What we might then find out, for\n     example, is that /warthog/bbb was actually a symbolic link to\n     /warthog/aaa/xxx/www, but we can\u0027t actually determine that by talking to\n     the server until /warthog is made available by NFS.\n\n     This would lead to having constructed an errneous dentry tree which we\n     can\u0027t easily fix. We can end up with a dentry marked as a directory when\n     it should actually be a symlink, or we could end up with an apparently\n     hardlinked directory.\n\n     With this patch we need not make assumptions about the type of a dentry\n     for which we can\u0027t retrieve information, nor need we assume we know its\n     place in the grand scheme of things until we actually see that place.\n\nThis patch reduces the possibility of aliasing in the inode and page caches for\ninodes that may be accessed by more than one NFS export. It also reduces the\nnumber of superblocks required for NFS where there are many NFS exports being\nused from a server (home directory server + autofs for example).\n\nThis in turn makes it simpler to do local caching of network filesystems, as it\ncan then be guaranteed that there won\u0027t be links from multiple inodes in\nseparate superblocks to the same cache file.\n\nObviously, cache aliasing between different levels of NFS protocol could still\nbe a problem, but at least that gives us another key to use when indexing the\ncache.\n\nThis patch makes the following changes:\n\n (1) The server record construction/destruction has been abstracted out into\n     its own set of functions to make things easier to get right.  These have\n     been moved into fs/nfs/client.c.\n\n     All the code in fs/nfs/client.c has to do with the management of\n     connections to servers, and doesn\u0027t touch superblocks in any way; the\n     remaining code in fs/nfs/super.c has to do with VFS superblock management.\n\n (2) The sequence of events undertaken by NFS mount is now reordered:\n\n     (a) A volume representation (struct nfs_server) is allocated.\n\n     (b) A server representation (struct nfs_client) is acquired.  This may be\n     \t allocated or shared, and is keyed on server address, port and NFS\n     \t version.\n\n     (c) If allocated, the client representation is initialised.  The state\n     \t member variable of nfs_client is used to prevent a race during\n     \t initialisation from two mounts.\n\n     (d) For NFS4 a simple pathwalk is performed, walking from FH to FH to find\n     \t the root filehandle for the mount (fs/nfs/getroot.c).  For NFS2/3 we\n     \t are given the root FH in advance.\n\n     (e) The volume FSID is probed for on the root FH.\n\n     (f) The volume representation is initialised from the FSINFO record\n     \t retrieved on the root FH.\n\n     (g) sget() is called to acquire a superblock.  This may be allocated or\n     \t shared, keyed on client pointer and FSID.\n\n     (h) If allocated, the superblock is initialised.\n\n     (i) If the superblock is shared, then the new nfs_server record is\n     \t discarded.\n\n     (j) The root dentry for this mount is looked up from the root FH.\n\n     (k) The root dentry for this mount is assigned to the vfsmount.\n\n (3) nfs_readdir_lookup() creates dentries for each of the entries readdir()\n     returns; this function now attaches disconnected trees from alternate\n     roots that happen to be discovered attached to a directory being read (in\n     the same way nfs_lookup() is made to do for lookup ops).\n\n     The new d_materialise_unique() function is now used to do this, thus\n     permitting the whole thing to be done under one set of locks, and thus\n     avoiding any race between mount and lookup operations on the same\n     directory.\n\n (4) The client management code uses a new debug facility: NFSDBG_CLIENT which\n     is set by echoing 1024 to /proc/net/sunrpc/nfs_debug.\n\n (5) Clone mounts are now called xdev mounts.\n\n (6) Use the dentry passed to the statfs() op as the handle for retrieving fs\n     statistics rather than the root dentry of the superblock (which is now a\n     dummy).\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cf6d7b5de8535a9f0088c5cc28ee2dae87371b4a",
      "tree": "815aecb371fc5b702c209bbda550e950e2bd1b04",
      "parents": [
        "5006a76cca8f86c6975c16fcf67e83b8b0eee2b6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:12 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:36 2006 -0400"
      },
      "message": "NFS: Start rpciod in server common management\n\nStart rpciod in the server common (nfs_client struct) management code rather\nthan in the superblock management code.  This means we only need to \"start\" it\nonce per server instead of once per superblock.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5006a76cca8f86c6975c16fcf67e83b8b0eee2b6",
      "tree": "fbe711871729ddfc921e91ba86202a15c5a1a55f",
      "parents": [
        "8fa5c000d7f986ef9cdc6d95f9f7fcee20e0a7d6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:12 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:36 2006 -0400"
      },
      "message": "NFS: Eliminate client_sys in favour of cl_rpcclient\n\nEliminate nfs_server::client_sys in favour of nfs_client::cl_rpcclient as we\nonly really need one per server that we\u0027re talking to since it doesn\u0027t have any\nsecurity on it.\n\nThe retransmission management variables are also moved to the common struct as\nthey\u0027re required to set up the cl_rpcclient connection.\n\nThe NFS2/3 client and client_acl connections are thenceforth derived by cloning\nthe cl_rpcclient connection and post-applying the authorisation flavour.\n\nThe code for setting up the initial common connection has been moved to\nclient.c as nfs_create_rpc_client().  All the NFS program definition tables are\nalso moved there as that\u0027s where they\u0027re now required rather than super.c.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8fa5c000d7f986ef9cdc6d95f9f7fcee20e0a7d6",
      "tree": "356b811803db9775fd9c870d189a9ff75885ae6c",
      "parents": [
        "1f163415dc05983830bcc47b33c155b2528b1574"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:12 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:35 2006 -0400"
      },
      "message": "NFS: Move rpc_ops from nfs_server to nfs_client\n\nMove the rpc_ops from the nfs_server struct to the nfs_client struct as they\u0027re\ncommon to all server records of a particular NFS protocol version.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1f163415dc05983830bcc47b33c155b2528b1574",
      "tree": "e4180da9947f8b802b6927726cda9d0949f8e00f",
      "parents": [
        "27951bd26031f6c27d38df9e94623bbe208a2464"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:11 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:35 2006 -0400"
      },
      "message": "NFS: Make better use of inode* dereferencing macros\n\nMake better use of inode* dereferencing macros to hide dereferencing chains\n(including NFS_PROTO and NFS_CLIENT).\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "27951bd26031f6c27d38df9e94623bbe208a2464",
      "tree": "4d5b84cb50ad06883e5aaf16d144ce6cdab9f006",
      "parents": [
        "509de8111656a7d89b4a1a5f430f4460ce510f0f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:11 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:35 2006 -0400"
      },
      "message": "NFS: Maintain a common server record for NFS2/3 as well as for NFS4\n\nMaintain a common server record for NFS2/3 as well as for NFS4 so that common\nstuff can be moved there from struct nfs_server.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "509de8111656a7d89b4a1a5f430f4460ce510f0f",
      "tree": "94ec0130ab74a5c80956ca3edd3298999b3b9897",
      "parents": [
        "0c7d90cfed91a283228017ba6faf37ee0bcd32b1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:11 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:34 2006 -0400"
      },
      "message": "NFS: Add extra const qualifiers\n\nAdd some extra const qualifiers into NFS.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0c7d90cfed91a283228017ba6faf37ee0bcd32b1",
      "tree": "bf8aae1186e905660f179cbda720ce51d1b7498c",
      "parents": [
        "24c8dbbb5f777187d660393599641ab3307b4b97"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:10 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:34 2006 -0400"
      },
      "message": "NFS: Use the dentry superblock directly in nfs_statfs()\n\nUse the nominated dentry\u0027s superblock directly in the NFS statfs() op to get a\nfile handle, rather than using s_root (which will become a dummy dentry in a\nfuture patch).\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "24c8dbbb5f777187d660393599641ab3307b4b97",
      "tree": "9d50fdd57c7593d925a21e4bb049095a4e4ead6f",
      "parents": [
        "e9326dcab413848e70ab746c7c5363da13e5f801"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:10 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:33 2006 -0400"
      },
      "message": "NFS: Generalise the nfs_client structure\n\nGeneralise the nfs_client structure by:\n\n (1) Moving nfs_client to a more general place (nfs_fs_sb.h).\n\n (2) Renaming its maintenance routines to be non-NFS4 specific.\n\n (3) Move those maintenance routines to a new non-NFS4 specific file (client.c)\n     and move the declarations to internal.h.\n\n (4) Make nfs_find/get_client() take a full sockaddr_in to include the port\n     number (will be required for NFS2/3).\n\n (5) Make nfs_find/get_client() take the NFS protocol version (again will be\n     required to differentiate NFS2, 3 \u0026 4 client records).\n\nAlso:\n\n (6) Make nfs_client construction proceed akin to inodes, marking them as under\n     construction and providing a function to indicate completion.\n\n (7) Make nfs_get_client() wait interruptibly if it finds a client that it can\n     share, but that client is currently being constructed.\n\n (8) Make nfs4_create_client() use (6) and (7) instead of locking cl_sem.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e9326dcab413848e70ab746c7c5363da13e5f801",
      "tree": "594a1e4ac32fd0620f0b91442d5d1b65fd9cc743",
      "parents": [
        "2b3de4411b3ccaeb00018c99d1bbe7203554cf7f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:10 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:33 2006 -0400"
      },
      "message": "NFS: Add a server capabilities NFS RPC op\n\nAdd a set_capabilities NFS RPC op so that the server capabilities can be set.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2b3de4411b3ccaeb00018c99d1bbe7203554cf7f",
      "tree": "cb49ea1fe64835fdbb8335a55049e70b3d87c5ae",
      "parents": [
        "b7162792b5c0e0f6e91b8997f8e6bbc76ec5420a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:09 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:32 2006 -0400"
      },
      "message": "NFS: Add a lookupfh NFS RPC op\n\nAdd a lookup filehandle NFS RPC op so that a file handle can be looked up\nwithout requiring dentries and inodes and other VFS stuff when doing an NFS4\npathwalk during mounting.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b7162792b5c0e0f6e91b8997f8e6bbc76ec5420a",
      "tree": "214c0aec3cee41cf872e0c4940fa778f6c0f94e9",
      "parents": [
        "7539bbab8062aadc1db95a22b377146843cfa88f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:09 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:32 2006 -0400"
      },
      "message": "NFS: Return an error when starting the idmapping pipe\n\nReturn an error when starting the idmapping pipe so that we can detect it\nfailing.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7539bbab8062aadc1db95a22b377146843cfa88f",
      "tree": "697983ea016cbe378e4f2128846edebd78e468b9",
      "parents": [
        "adfa6f980bd46974e6b32b22dd0c45e3f52063f4"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:09 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:32 2006 -0400"
      },
      "message": "NFS: Rename nfs_server::nfs4_state\n\nRename nfs_server::nfs4_state to nfs_client as it will be used to represent the\nclient state for NFS2 and NFS3 also.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "adfa6f980bd46974e6b32b22dd0c45e3f52063f4",
      "tree": "7dbc86985faa0fce0e73103979262c1593ea3a3b",
      "parents": [
        "5ae1fbce142b67bf59e15fb1af96e88a96abde7b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:08 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:31 2006 -0400"
      },
      "message": "NFS: Rename struct nfs4_client to struct nfs_client\n\nRename struct nfs4_client to struct nfs_client so that it can become the basis\nfor a general client record for NFS2 and NFS3 in addition to NFS4.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5ae1fbce142b67bf59e15fb1af96e88a96abde7b",
      "tree": "88e09770f11535b688f9539b5999f836c8b322ab",
      "parents": [
        "0a8ea4372b2868842986118ca90912f3382e6c5a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:08 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:31 2006 -0400"
      },
      "message": "NFS: Fix NFS4 callback up/down prototypes\n\nMake the nfs_callback_up()/down() prototypes just do nothing if NFS4 is not\nenabled.  Also make the down function void type since we can\u0027t really do\nanything if it fails.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0a8ea4372b2868842986118ca90912f3382e6c5a",
      "tree": "06d0641bf6d5906c28814c672ce43697467fa03d",
      "parents": [
        "7d4e2747a0412583526a162fbbd6edeeafcceb08"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:08 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:30 2006 -0400"
      },
      "message": "NFS: Disambiguate nfs_stat_to_errno()\n\nRename the NFS4 version of nfs_stat_to_errno() so that it doesn\u0027t conflict with\nthe common one used by NFS2 and NFS3.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d4e2747a0412583526a162fbbd6edeeafcceb08",
      "tree": "756180b37a02b504998c646ff027652f80e10bab",
      "parents": [
        "770bfad846ab6628444428467b11fa6773ae9ea1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:07 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:30 2006 -0400"
      },
      "message": "NFS: Fix up split of fs/nfs/inode.c\n\nFix ups for the splitting of the superblock stuff out of fs/nfs/inode.c,\nincluding:\n\n (*) Move the callback tcpport module param into callback.c.\n\n (*) Move the idmap cache timeout module param into idmap.c.\n\n (*) Changes to internal.h:\n\n     (*) namespace-nfs4.c was renamed to nfs4namespace.c.\n\n     (*) nfs_stat_to_errno() is in nfs2xdr.c, not nfs4xdr.c.\n\n     (*) nfs4xdr.c is contingent on CONFIG_NFS_V4.\n\n     (*) nfs4_path() is only uses if CONFIG_NFS_V4 is set.\n\nPlus also:\n\n (*) The sec_flavours[] table should really be const.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "770bfad846ab6628444428467b11fa6773ae9ea1",
      "tree": "5fd803319fe718367dca081b23abd36bfc85f78a",
      "parents": [
        "979df72e6f963b42ee484f2eca049c3344da0ba7"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:07 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:30 2006 -0400"
      },
      "message": "NFS: Add dentry materialisation op\n\nThe attached patch adds a new directory cache management function that prepares\na disconnected anonymous function to be connected into the dentry tree. The\nanonymous dentry is transferred the name and parentage from another dentry.\n\nThe following changes were made in [try #2]:\n\n (*) d_materialise_dentry() now switches the parentage of the two nodes around\n     correctly when one or other of them is self-referential.\n\nThe following changes were made in [try #7]:\n\n (*) d_instantiate_unique() has had the interior part split out as function\n     __d_instantiate_unique(). Callers of this latter function must be holding\n     the appropriate locks.\n\n (*) _d_rehash() has been added as a wrapper around __d_rehash() to call it\n     with the most obvious hash list (the one from the name). d_rehash() now\n     calls _d_rehash().\n\n (*) d_materialise_dentry() is now __d_materialise_dentry() and is static.\n\n (*) d_materialise_unique() added to perform the combination of d_find_alias(),\n     d_materialise_dentry() and d_add_unique() that the NFS client was doing\n     twice, all within a single dcache_lock critical section. This reduces the\n     number of times two different spinlocks were being accessed.\n\nThe following further changes were made:\n\n (*) Add the dentries onto their parents d_subdirs lists.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "979df72e6f963b42ee484f2eca049c3344da0ba7",
      "tree": "f3ba48a16203c899dbe57482c1ff7f1c02e0c9ca",
      "parents": [
        "cfcea3e8c66c2dcde98d5c2693d4bff50b5cac97"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 25 11:28:19 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:29 2006 -0400"
      },
      "message": "NFS: Add an ACCESS cache memory shrinker\n\nA pinned inode may in theory end up filling memory with cached ACCESS\ncalls. This patch ensures that the VM may shrink away the cache in these\nparticular cases.\nThe shrinker works by iterating through the list of inodes on the global\nnfs_access_lru_list, and removing the least recently used access\ncache entry until it is done (or until the entire cache is empty).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cfcea3e8c66c2dcde98d5c2693d4bff50b5cac97",
      "tree": "ee7b995a48c43de7355fa33079ee7aaad020d6f3",
      "parents": [
        "1c3c07e9f6cc50dab2aeb8051325e317d4f6c70e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 25 11:28:18 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:29 2006 -0400"
      },
      "message": "NFS: Add a global LRU list for the ACCESS cache\n\n...in order to allow the addition of a memory shrinker.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1c3c07e9f6cc50dab2aeb8051325e317d4f6c70e",
      "tree": "96bbc2a304e9a0e831daf589d1662c6129303796",
      "parents": [
        "3eeab61aa3ddd3c0bedb7449ada1599de22fdb5a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 25 11:28:18 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:28 2006 -0400"
      },
      "message": "NFS: Add a new ACCESS rpc call cache to the linux nfs client\n\nThe current access cache only allows one entry at a time to be cached for each\ninode. Add a per-inode red-black tree in order to allow more than one to\nbe cached at a time.\n\nShould significantly cut down the time spent in path traversal for shared\ndirectories such as ${PATH}, /usr/share, etc.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3eeab61aa3ddd3c0bedb7449ada1599de22fdb5a",
      "tree": "0bb8477f775e48ab32900d254116288ee794441d",
      "parents": [
        "6585b572402e5ec7936422123b44b65fef7a5ea6",
        "b8c06a2ab68661bf841e21003f4447f8d422aed3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 22 17:51:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 22 17:51:59 2006 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  [CIFS] statfs for cifs unix extensions no longer experimental\n  [CIFS] New POSIX locking code not setting rc properly to zero on successful\n  [CIFS] Support deep tree mounts (e.g. mounts to //server/share/path)\n"
    },
    {
      "commit": "3e59ddff2b8dfe42b15520c4f8f2486bd9f9708e",
      "tree": "10587a53ab093fc498fa52651f8a7c1b2b99af60",
      "parents": [
        "6bbd9b6d694ff7242d63cda2faac4bd59ee4328e",
        "eb35746ca5e2211569b91ebb44d55b88ec91f3b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 22 12:52:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 22 12:52:16 2006 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2:\n  ocfs2: Remove overzealous BUG_ON()\n  ocfs2: Don\u0027t print on unknown remote blocking call\n  ocfs2: Remove EXPERIMENTAL dependency\n  ocfs2: implement directory read-ahead\n  ocfs2: properly update i_mtime on buffered write\n  ocfs2: Fix directory link count checks in ocfs2_link()\n  ocfs2: move nlink check in ocfs2_mknod()\n  ocfs2: Fix heartbeat sector calculation\n  [PATCH] fs/ocfs2/ioctl.c should #include \"ioctl.h\"\n  ocfs2: add ext2 attributes\n  configfs: Prevent duplicate subsystem names.\n"
    },
    {
      "commit": "6bbd9b6d694ff7242d63cda2faac4bd59ee4328e",
      "tree": "0641aa896e2ea01f4692973e5fbea429408854f4",
      "parents": [
        "a489d159229fcc07bbb7566ac4fac745b79197ad",
        "3c164bd8153c4644a22dc2101b003c67cd2a0d0a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 22 12:51:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 22 12:51:33 2006 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (64 commits)\n  [BLOCK] dm-crypt: trivial comment improvements\n  [CRYPTO] api: Deprecate crypto_digest_* and crypto_alg_available\n  [CRYPTO] padlock: Convert padlock-sha to use crypto_hash\n  [CRYPTO] users: Use crypto_comp and crypto_has_*\n  [CRYPTO] api: Add crypto_comp and crypto_has_*\n  [CRYPTO] users: Use crypto_hash interface instead of crypto_digest\n  [SCSI] iscsi: Use crypto_hash interface instead of crypto_digest\n  [CRYPTO] digest: Remove old HMAC implementation\n  [CRYPTO] doc: Update documentation for hash and me\n  [SCTP]: Use HMAC template and hash interface\n  [IPSEC]: Use HMAC template and hash interface\n  [CRYPTO] tcrypt: Use HMAC template and hash interface\n  [CRYPTO] hmac: Add crypto template implementation\n  [CRYPTO] digest: Added user API for new hash type\n  [CRYPTO] api: Mark parts of cipher interface as deprecated\n  [PATCH] scatterlist: Add const to sg_set_buf/sg_init_one pointer argument\n  [CRYPTO] drivers: Remove obsolete block cipher operations\n  [CRYPTO] users: Use block ciphers where applicable\n  [SUNRPC] GSS: Use block ciphers where applicable\n  [IPSEC] ESP: Use block ciphers where applicable\n  ...\n"
    },
    {
      "commit": "f2dd117fa51dd8fc071b1352254c0d14d2399b0a",
      "tree": "b7c5e149cdf942723c409b85df8da01fb55324d0",
      "parents": [
        "cbc88ba83ff772d8c47d95ba0fef38ad888d6fcf"
      ],
      "author": {
        "name": "Michal Piotrowski",
        "email": "michal.k.k.piotrowski@gmail.com",
        "time": "Fri Sep 22 10:13:46 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Fri Sep 22 10:13:46 2006 +0100"
      },
      "message": "[JFFS2] Remove unneeded ifdefs from jffs2_fs_i.h\n\nWe certainly don\u0027t need the check for Linux version \u003e 2.5.2, and in fact\nwe can also live without the __ECOS check, since we can just add it back\nin the eCos git tree which is automatically derived from the Linux fs/jffs2\nsubdirectory in the upstream git tree.\n\nSigned-off-by: Michal Piotrowski \u003cmichal.k.k.piotrowski@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "b8c06a2ab68661bf841e21003f4447f8d422aed3",
      "tree": "c3fc32bb2d9a3d6ac35a4c296ba82053681ccc76",
      "parents": [
        "6b70c9559bcf381a6521e38b0dd5d3d4d905868a"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Sep 22 01:14:52 2006 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Sep 22 01:14:52 2006 +0000"
      },
      "message": "[CIFS] statfs for cifs unix extensions no longer experimental\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "6b70c9559bcf381a6521e38b0dd5d3d4d905868a",
      "tree": "2165ddc6fa0d7677b00fdee6265271ac29024df6",
      "parents": [
        "2fe87f02a04ad6e7075023a87fe38eb458a4bb9d"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Sep 21 07:35:29 2006 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Sep 21 07:35:29 2006 +0000"
      },
      "message": "[CIFS] New POSIX locking code not setting rc properly to zero on successful\nunlock in case where server does not support POSIX locks and nobrl is\nnot specified.\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "2fe87f02a04ad6e7075023a87fe38eb458a4bb9d",
      "tree": "ec095fecdccad724faa6560cf7a81a9494a5a093",
      "parents": [
        "b835bebe95608c81270636a78b70333afb011925"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Sep 21 07:02:52 2006 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Sep 21 07:02:52 2006 +0000"
      },
      "message": "[CIFS] Support deep tree mounts (e.g. mounts to //server/share/path)\n\nSamba bugzilla #4040\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "35058687912aa2f0b4554383cc10be4e0683b9a4",
      "tree": "3e18d13aef6682553887076c1e9872e91e6fc5c4",
      "parents": [
        "dc64ddf4918f0da52df10d83c2a5941a547c2035"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Aug 24 19:10:20 2006 +1000"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Sep 21 11:46:21 2006 +1000"
      },
      "message": "[CRYPTO] users: Use crypto_hash interface instead of crypto_digest\n\nThis patch converts all remaining crypto_digest users to use the new\ncrypto_hash interface.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "eb35746ca5e2211569b91ebb44d55b88ec91f3b0",
      "tree": "debd08f16bdb89c11b893a7e009892aaf9621411",
      "parents": [
        "f12033d206ea48928d8124cdd5d35d8008c18935"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Aug 09 13:23:08 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 16:00:54 2006 -0700"
      },
      "message": "ocfs2: Remove overzealous BUG_ON()\n\nThe truncate code was never supposed to BUG() on an allocator it doesn\u0027t\nknow about, but rather to ignore it. Right now, this does nothing, but when\nwe change our allocation paths to use all suballocator files, this will\nallow current versions of the fs module to work fine.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "f12033d206ea48928d8124cdd5d35d8008c18935",
      "tree": "769c6e3c8c2fb6cef9736ce6557cfbfe29ad9875",
      "parents": [
        "02ed8416fe5b7e33b5bbf2d73f9af1d316806822"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 13 18:57:57 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 16:00:36 2006 -0700"
      },
      "message": "ocfs2: Don\u0027t print on unknown remote blocking call\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "02ed8416fe5b7e33b5bbf2d73f9af1d316806822",
      "tree": "5d13f6792c2ec5f593f7a89ca55bf8454e06c887",
      "parents": [
        "aa9588741db907785e4d92c8b768dd6c9077e6f0"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Sep 14 10:28:06 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 16:00:06 2006 -0700"
      },
      "message": "ocfs2: Remove EXPERIMENTAL dependency\n\nThings have been working pretty well for a while now.\n\nWe should\u0027ve probably done this at least one kernel\nrevision ago, but it doesn\u0027t hurt to be paranoid.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "aa9588741db907785e4d92c8b768dd6c9077e6f0",
      "tree": "d34da288a9d296a8a2ba19dfa0f1df8429bd3e33",
      "parents": [
        "e0b4096d34fbd6b30838c417100c9d0ef73c71f2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Apr 21 13:49:02 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 15:53:40 2006 -0700"
      },
      "message": "ocfs2: implement directory read-ahead\n\nUptodate.c now knows about read-ahead buffers. Use some more aggressive\nlogic in ocfs2_readdir().\n\nThe two functions which currently use directory read-ahead are\nocfs2_find_entry() and ocfs2_readdir().\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "e0b4096d34fbd6b30838c417100c9d0ef73c71f2",
      "tree": "cabe34d3ae64b906f186ddea53bf3b4f84099ab7",
      "parents": [
        "0f62de2c9ca60a35f63122e7ea992cee8aae4bef"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jul 11 14:38:54 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 15:53:05 2006 -0700"
      },
      "message": "ocfs2: properly update i_mtime on buffered write\n\nWe weren\u0027t always updating i_mtime on writes, so fix ocfs2_commit_write() to\nhandle this.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nAcked-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "0f62de2c9ca60a35f63122e7ea992cee8aae4bef",
      "tree": "31af0006aedea3a22e463198b5c4a00ca893bf1c",
      "parents": [
        "a663e30513d7ecc77dd71d474e7646bf78c0ba62"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Thu Aug 31 20:39:47 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 15:52:27 2006 -0700"
      },
      "message": "ocfs2: Fix directory link count checks in ocfs2_link()\n\nRemove the redundant \"i_nlink \u003e\u003d OCFS2_LINK_MAX\" check and adds an unlinked\ndirectory check in ocfs2_link().\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "a663e30513d7ecc77dd71d474e7646bf78c0ba62",
      "tree": "ac37a5d33b62cce82df4e35a816f73f4631e339a",
      "parents": [
        "471e3f57286da7ce8820ad42c77d5f5f49d56a41"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Aug 09 11:45:07 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 15:52:08 2006 -0700"
      },
      "message": "ocfs2: move nlink check in ocfs2_mknod()\n\nThe dir nlink check in ocfs2_mknod() was being done outside of the cluster\nlock, which means we could have been checking against a stale version of the\ninode. Fix this by doing the check after the cluster lock instead.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "471e3f57286da7ce8820ad42c77d5f5f49d56a41",
      "tree": "763078566e354815f0c48684c48b618506be73d3",
      "parents": [
        "2d5625181fac18f572cbbd18878d28f5eebf4733"
      ],
      "author": {
        "name": "Mathieu Avila",
        "email": "mathieu.avila@seanodes.com",
        "time": "Wed Sep 13 11:11:27 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 15:50:53 2006 -0700"
      },
      "message": "ocfs2: Fix heartbeat sector calculation\n\nThis fixes things for devices which set max_sectors to 8.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "2d5625181fac18f572cbbd18878d28f5eebf4733",
      "tree": "5125d63c551d6c7be1f9a5c99b16d05a85a3db7c",
      "parents": [
        "ca4d147e62df370c334898464023aa7f9126abe1"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jul 10 01:32:51 2006 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 15:49:33 2006 -0700"
      },
      "message": "[PATCH] fs/ocfs2/ioctl.c should #include \"ioctl.h\"\n\nEvery file should #include the headers containing the prototypes for its\nglobal functions.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    }
  ],
  "next": "ca4d147e62df370c334898464023aa7f9126abe1"
}
