)]}'
{
  "log": [
    {
      "commit": "50f3515828024582402044bcced6804c070c491c",
      "tree": "f9cf25bee56d0ca54acf4d571536268774dc56ed",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067",
        "4b2a58abd1e17c0ee53c8dded879e015917cca67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 30 09:46:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 30 09:46:09 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  libceph: Create a new key type \"ceph\".\n  libceph: Get secret from the kernel keys api when mounting with key\u003dNAME.\n  ceph: Move secret key parsing earlier.\n  libceph: fix null dereference when unregistering linger requests\n  ceph: unlock on error in ceph_osdc_start_request()\n  ceph: fix possible NULL pointer dereference\n  ceph: flush msgr_wq during mds_client shutdown\n"
    },
    {
      "commit": "8323c3aa74cd92465350294567142d12ffdcc963",
      "tree": "052e7374393994eea8d534f98ee1bc7acea4c2d9",
      "parents": [
        "fbdb9190482fd83a3eb20cdeb0da454759f479d7"
      ],
      "author": {
        "name": "Tommi Virtanen",
        "email": "tommi.virtanen@dreamhost.com",
        "time": "Fri Mar 25 16:32:57 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 29 12:11:16 2011 -0700"
      },
      "message": "ceph: Move secret key parsing earlier.\n\nThis makes the base64 logic be contained in mount option parsing,\nand prepares us for replacing the homebew key management with the\nkernel key retention service.\n\nSigned-off-by: Tommi Virtanen \u003ctommi.virtanen@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0444d76ae64fffc7851797fc1b6ebdbb44ac504a",
      "tree": "d0678f0f8c82f3c2b2c66a6b47242eef1b323142",
      "parents": [
        "cb1817b37313b4b6c7f8f93c730553dd3cb6ac57"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 29 18:08:50 2011 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 29 07:50:34 2011 -0700"
      },
      "message": "fs: don\u0027t use igrab() while holding i_lock\n\nFix the incorrect use of igrab() inside the i_lock in NFS and Ceph‥\n\nIf we are already holding the i_lock, we have a reference to the\ninode so we can safely use ihold() to gain an extra reference. This\navoids hangs due to lock recursion on the i_lock now that the\ninode_lock is gone and igrab() uses the i_lock itself.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-fsdevel@vger.kernel.org\nCc: Ryan Mallon \u003cryan@bluewatersys.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef550f6f4f6c9345a27ec85d98f4f7de1adce79c",
      "tree": "dafd71f3e7fe46ed685b5ab3fd62c2bb7d3cb679",
      "parents": [
        "59c2be1e4d42c0d4949cecdeef3f37070a1fbc13"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Mar 25 13:27:48 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Mar 25 13:27:48 2011 -0700"
      },
      "message": "ceph: flush msgr_wq during mds_client shutdown\n\nThe release method for mds connections uses a backpointer to the\nmds_client, so we need to flush the workqueue of any pending work (and\nceph_connection references) prior to freeing the mds_client.  This fixes\nan oops easily triggered under UML by\n\n while true ; do mount ... ; umount ... ; done\n\nAlso fix an outdated comment: the flush in ceph_destroy_client only flushes\nOSD connections out.  This bug is basically an artifact of the ceph -\u003e\nceph+libceph conversion.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "147851d2dc4d2be2f60d40276d12d7ef82f8a7ce",
      "tree": "e7b112fab505f6f97694fee5f2d6c509e8dd6289",
      "parents": [
        "49bcb93236ce1c60d9b7eb21a0aea1999f4d8709"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 15 14:57:41 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 21 12:24:26 2011 -0700"
      },
      "message": "ceph: rename dentry_release -\u003e d_release, fix comment\n\nJust for consistency\u0027s sake.  Fix obsolete comment too.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "49bcb93236ce1c60d9b7eb21a0aea1999f4d8709",
      "tree": "e8dc94cf5c106fc1067411bc38e16e43ab15318e",
      "parents": [
        "78a255654fa7f01945dea0dcedcf5113b3ad9f93"
      ],
      "author": {
        "name": "Henry C Chang",
        "email": "henry.cy.chang@gmail.com",
        "time": "Tue Mar 15 09:18:02 2011 +0000"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 21 12:24:25 2011 -0700"
      },
      "message": "ceph: add request to the tail of unsafe write list\n\nIn sync_write_wait(), we assume that the newest request is at the\ntail of unsafe write list. We should maintain the semantics here.\n\nSigned-off-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "78a255654fa7f01945dea0dcedcf5113b3ad9f93",
      "tree": "87664950f3c8d68ba56e53034c6e9bcdf3a03699",
      "parents": [
        "80456f8672f7e69d05c01627da03587dc1ea1603"
      ],
      "author": {
        "name": "Henry C Chang",
        "email": "henry.cy.chang@gmail.com",
        "time": "Tue Mar 15 09:18:01 2011 +0000"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 21 12:24:24 2011 -0700"
      },
      "message": "ceph: remove request from unsafe list if it is canceled/timed out\n\nThis fixes the list corruption warning like this:\n\n------------[ cut here ]------------\nWARNING: at lib/list_debug.c:30 __list_add+0x68/0x81()\nHardware name: X8DTU\nlist_add corruption. prev-\u003enext should be next (ffff880618931250), but was (null). (prev\u003dffff880c188b9130).\nModules linked in: nfsd lockd nfs_acl auth_rpcgss exportfs ceph libceph libcrc32c sunrpc ipv6 fuse igb i2c_i801 ioatdma i2c_core iTCO_wdt iTCO_vendor_support joydev dca serio_raw usb_storage [last unloaded: scsi_wait_scan]\nPid: 10977, comm: smbd Tainted: G        W  2.6.32.23-170.Elaster.xendom0.fc12.x86_64 #1\nCall Trace:\n[\u003cffffffff8105753c\u003e] warn_slowpath_common+0x7c/0x94\n[\u003cffffffff810575ab\u003e] warn_slowpath_fmt+0x41/0x43\n[\u003cffffffff812351a3\u003e] __list_add+0x68/0x81\n[\u003cffffffffa014799d\u003e] ceph_aio_write+0x614/0x8a2 [ceph]\n[\u003cffffffff8111d2a0\u003e] do_sync_write+0xe8/0x125\n[\u003cffffffff81075a1f\u003e] ? autoremove_wake_function+0x0/0x39\n[\u003cffffffff811f21ec\u003e] ? selinux_file_permission+0x5c/0xb3\n[\u003cffffffff811e8521\u003e] ? security_file_permission+0x16/0x18\n[\u003cffffffff8111d864\u003e] vfs_write+0xae/0x10b\n[\u003cffffffff8111d91b\u003e] sys_pwrite64+0x5a/0x76\n[\u003cffffffff81012d32\u003e] system_call_fastpath+0x16/0x1b\n---[ end trace 08573eb9f07ff6f4 ]---\n\nSigned-off-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "80456f8672f7e69d05c01627da03587dc1ea1603",
      "tree": "8351eb6c340a54357fc38df32335a87afefd875f",
      "parents": [
        "ad1fee96cbaf873520064252c5dc3212c9844861"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 10 13:33:26 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 21 12:24:23 2011 -0700"
      },
      "message": "ceph: move readahead default to fs/ceph from libceph\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ad1fee96cbaf873520064252c5dc3212c9844861",
      "tree": "bce9fcd824af836279a6dd10007430cc3872cb3a",
      "parents": [
        "483fac71485e5063ff4033b6dc7d91567f1b6ff1"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Jan 21 16:44:03 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 21 12:24:22 2011 -0700"
      },
      "message": "ceph: add ino32 mount option\n\nThe ino32 mount option forces the ceph fs to report 32 bit\nino values.  This is useful for 64 bit kernels with 32 bit userspace.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "21f3b5f1bbc3c27e82a8c9fc9861fa20bcb31f26",
      "tree": "faf7ebdf7c50918ded6946ede0dfb8a6c9a603d7",
      "parents": [
        "6f6c7006755b667f9f6c1f3b6f08cd65f75cc471"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 19 09:45:22 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 21 12:24:20 2011 -0700"
      },
      "message": "ceph: remove debugfs debug cruft\n\nWhoops!\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "09adc80c611bb8902daa8ccfe34dbbc009d6befe",
      "tree": "56d6096d2c4983a47acd7bb0a0f5d6e9c7fae331",
      "parents": [
        "b09734b1f4abd86e046777f0f268215b4ef1b523"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 04 21:38:47 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 15 09:14:03 2011 -0700"
      },
      "message": "ceph: preserve I_COMPLETE across rename\n\nd_move puts the renamed dentry at the end of d_subdirs, screwing with our\ncached dentry directory offsets.  We were just clearing I_COMPLETE to avoid\nany possibility of trouble.  However, assigning the renamed dentry an\noffset at the end of the directory (to match it\u0027s new d_subdirs position)\nis sufficient to maintain correct behavior and hold onto I_COMPLETE.\n\nThis is especially important for workloads like rsync, which renames files\ninto place.  Before, we would lose I_COMPLETE and do MDS lookups for each\nfile.  With this patch we only talk to the MDS on create and rename.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0eb980e31770cfeff6e27760b4692d595b8dbf28",
      "tree": "62ce6d994beb41f1276169de643ebc9e343daeaa",
      "parents": [
        "c78f4cc5e7d642c7009089817c12d8984e7ba872"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:44:05 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:44:05 2011 -0500"
      },
      "message": "ceph: fix d_revalidate oopsen on NFS exports\n\ncan\u0027t blindly check nd-\u003eflags in -\u003ed_revalidate()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "455cec0abff563574cca432ced49f734117ca113",
      "tree": "594e8dd5ac6c48a97836e5ca1e6ce451e157f2a2",
      "parents": [
        "e00de341fdb76c955703b4438100f9933c452b7f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 03 13:44:35 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Mar 04 12:25:09 2011 -0800"
      },
      "message": "ceph: no .snap inside of snapped namespace\n\nOtherwise you can do things like\n\n# mkdir .snap/foo\n# cd .snap/foo/.snap\n# ls\n\u003cbadness\u003e\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "16a8b70a5a757db513f036bbcc73309f6c507d81",
      "tree": "e075716a8e58149894fcad3fa36ebf6ea16cfc6e",
      "parents": [
        "b545cc1505eb49247071ce9f4092665de788ca00"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 28 12:49:15 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 03 10:09:52 2011 -0800"
      },
      "message": "ceph: do not clear I_COMPLETE from d_release\n\nFirst, this was racy anyway: d_release isn\u0027t called until well after the\ndentry is unhashed.  Second, this runs afoul of the recent dcache change\nthat clears d_parent prior to calling d_release (949854d0), causing a NULL\npointer dereference.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b545cc1505eb49247071ce9f4092665de788ca00",
      "tree": "25bfbae54c086a1fdd0801efdd07aa4bdfdac951",
      "parents": [
        "9bde178d052418af0b8e0f12932cf02ab4764c9d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 28 12:46:46 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 03 10:09:51 2011 -0800"
      },
      "message": "ceph: do not set I_COMPLETE\n\nDo not set the I_COMPLETE flag on directories until we resolve races with\ndcache pruning.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9bde178d052418af0b8e0f12932cf02ab4764c9d",
      "tree": "e70cf12b6687ce93005ca97937e5b79da42e09a1",
      "parents": [
        "f5412be599602124d2bdd49947b231dd77c0bf99"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 28 09:47:37 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 03 10:09:50 2011 -0800"
      },
      "message": "Revert \"ceph: keep reference to parent inode on ceph_dentry\"\n\nThis reverts commit 97d79b403ef03f729883246208ef5d8a2ebc4d68.\n\nThis fails to account for d_parent changes due to rename or disconnected\ndentries due to submounts or NFS reexports.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8bd89ca22010847e85de37b77d9f19f16b1962ad",
      "tree": "0bcee2ae6a85443177a6d95ed960301e0f4c9d57",
      "parents": [
        "b08b69a110bd981909c248f89997dcdcdfd5a39c",
        "97d79b403ef03f729883246208ef5d8a2ebc4d68"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 21 15:01:38 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 21 15:01:38 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: keep reference to parent inode on ceph_dentry\n  ceph: queue cap_snaps once per realm\n  libceph: fix socket write error handling\n  libceph: fix socket read error handling\n"
    },
    {
      "commit": "97d79b403ef03f729883246208ef5d8a2ebc4d68",
      "tree": "6badfd07e1ae880bd30f99dfb55227d3210b6e3a",
      "parents": [
        "e8e1ba96b207deba1339b09983f8b29f92cb1497"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Jan 18 13:37:28 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Feb 19 19:59:14 2011 -0800"
      },
      "message": "ceph: keep reference to parent inode on ceph_dentry\n\nWhen creating a new dentry we now hold a reference to the parent\ninode in the ceph_dentry.  This is required due to the new RCU\nchanges from 949854d0, which set dentry-\u003ed_parent to NULL in d_kill before\ncalling the -\u003erelease() callback.  If/when that behavior is changed, we can\nrevert this hack.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e8e1ba96b207deba1339b09983f8b29f92cb1497",
      "tree": "281f255e549ec247699d9860117c3b684c472997",
      "parents": [
        "42961d2333a1855c649fa3790e258ab4f0fa66a4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 04 20:45:58 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 04 20:45:58 2011 -0800"
      },
      "message": "ceph: queue cap_snaps once per realm\n\nWe were forming a dirty list, and then queueing cap_snaps for each realm\n_and_ its children, regardless of whether the children were already in the\ndirty list.  This meant we did it twice for some realms.  Which in turn\nmeant we corrupted mdsc-\u003esnap_flush_list when the cap_snap was re-added to\nthe list it was already on, and could trigger an infinite loop.\n\nWe were also using recursion to do reach all the children, a no-no when\nstack is limited.\n\nInstead, (re)queue any children on the dirty list, avoiding processing\nanything twice and avoiding any recursion.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b12ece7d852efbc8db45371c068900fcc62002d4",
      "tree": "6344b69d72415224f784ac3c0d855ae334a612d2",
      "parents": [
        "363aab29eb89b46d14d44e4a44a5fff57e30bcfc",
        "d66bbd441c08fe00ed2add1cf70cb243ebc2b27e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 12:12:58 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 12:12:58 2011 +1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: avoid picking MDS that is not active\n  ceph: avoid immediate cap check after import\n  ceph: fix flushing of caps vs cap import\n  ceph: fix erroneous cap flush to non-auth mds\n  ceph: fix cap_wanted_delay_{min,max} mount option initialization\n  ceph: fix xattr rbtree search\n  ceph: fix getattr on directory when using norbytes\n"
    },
    {
      "commit": "d66bbd441c08fe00ed2add1cf70cb243ebc2b27e",
      "tree": "bde3d1bf8d6a665b14e2b86e82506c8c7b3b0657",
      "parents": [
        "7e57b81c7688c762bc9e775bc83f9fc17946f527"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jan 21 21:16:46 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jan 25 08:16:37 2011 -0800"
      },
      "message": "ceph: avoid picking MDS that is not active\n\nIgnore replication or auth frag data if it indicates an MDS that is not\nactive.  This can happen if the MDS shuts down and the client has stale\ndata about the namespace distribution across the MDS cluster.  If that\u0027s\nthe case, fall back to directing the request based on the auth cap (which\nshould always be accurate).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7e57b81c7688c762bc9e775bc83f9fc17946f527",
      "tree": "d50dada5f348a9e9137a631e525c63f57e0cb796",
      "parents": [
        "088b3f5e9ee2649f5cfc2f08d8ce654e3eeba310"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jan 18 09:00:01 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 19 09:23:26 2011 -0800"
      },
      "message": "ceph: avoid immediate cap check after import\n\nThe NODELAY flag avoids the heuristics that delay cap (issued/wanted)\nrelease.  There\u0027s no reason for that after we import a cap, and it kills\nwhatever benefit we get from those delays.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "088b3f5e9ee2649f5cfc2f08d8ce654e3eeba310",
      "tree": "ca61373ee6eccd99a2af9a58ef492e099bacce3d",
      "parents": [
        "24be0c481067560b11441e794e27f166a3568863"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jan 18 08:56:01 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 19 09:23:25 2011 -0800"
      },
      "message": "ceph: fix flushing of caps vs cap import\n\nIf we are mid-flush and a cap is migrated to another node, we need to\nresend the cap flush message to the new MDS, and do so with the original\nflush_seq to avoid leaking across a sync boundary.  Previously we didn\u0027t\nredo the flush (we only flushed newly dirty data), which would cause a\nlater sync to hang forever.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "24be0c481067560b11441e794e27f166a3568863",
      "tree": "e91a8f77b8ecdacf747e5418c30a1c18dbdc38a3",
      "parents": [
        "50aac4fec503960380ab594a93a6fbfdf3f8915f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jan 18 08:48:06 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 19 09:23:24 2011 -0800"
      },
      "message": "ceph: fix erroneous cap flush to non-auth mds\n\nThe int flushing is global and not clear on each iteration of the loop,\nwhich can cause a second flush of caps to any MDSs with ids greater than\nthe auth.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "50aac4fec503960380ab594a93a6fbfdf3f8915f",
      "tree": "31a4cc787284ce14bc06548e750bc045e0aa2c8b",
      "parents": [
        "17db143fc091238c43ab9f373974ca2224a4c3f8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jan 18 07:59:40 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 19 09:23:22 2011 -0800"
      },
      "message": "ceph: fix cap_wanted_delay_{min,max} mount option initialization\n\nThese were initialized to 0 instead of the default, fallout from the RBD\nrefactor in 3d14c5d2b6e15c21d8e5467dc62d33127c23a644.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "17db143fc091238c43ab9f373974ca2224a4c3f8",
      "tree": "d72df7c0d88e6e9176292a560e9e9fcac12848aa",
      "parents": [
        "1c1266bb916e6a6b362d3be95f2cc7f3c41277a6"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jan 13 15:27:29 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jan 13 15:50:11 2011 -0800"
      },
      "message": "ceph: fix xattr rbtree search\n\nFix xattr name comparison in rbtree search for strings that share a prefix.\nThe *name argument is null terminated, but the xattr name is not, so we\nneed to use strncmp, but that means adjusting for the case where name is\na prefix of xattr-\u003ename.\n\nThe corresponding case in __set_xattr() already handles this properly\n(although in that case *name is also not null terminated).\n\nReported-by: Sergiy Kibrik \u003csakib@meta.ua\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1c1266bb916e6a6b362d3be95f2cc7f3c41277a6",
      "tree": "8c70982d3a5ef6e3e810f92e0a20710f42dc4ef2",
      "parents": [
        "766fc43973b16f9becb6b7402b3e052dbb84adee"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Wed Jan 12 16:53:27 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jan 13 15:50:06 2011 -0800"
      },
      "message": "ceph: fix getattr on directory when using norbytes\n\nThe norbytes mount option was broken, and when doing getattr\non a directory it return the rbytes instead of the number of\nentities. This commit fixes it.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a1703154200c390ab03c10224c586e815d3e31e8",
      "tree": "df90865eed3cfdf7af8664b5453a90e09d17480a",
      "parents": [
        "67b5ad9a63caa2ce56ddd2b22b802dae00d72c13",
        "766fc43973b16f9becb6b7402b3e052dbb84adee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:25:24 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:25:24 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  rbd: fix cleanup when trying to mount inexistent image\n  net/ceph: make ceph_msgr_wq non-reentrant\n  ceph: fsc-\u003e*_wq\u0027s aren\u0027t used in memory reclaim path\n  ceph: Always free allocated memory in osdmap_decode()\n  ceph: Makefile: Remove unnessary code\n  ceph: associate requests with opening sessions\n  ceph: drop redundant r_mds field\n  ceph: implement DIRLAYOUTHASH feature to get dir layout from MDS\n  ceph: add dir_layout to inode\n"
    },
    {
      "commit": "01e6acc4ea4c284c44bfb3d46c76f4ae580c6435",
      "tree": "d5b5c2c82827eae7f23ac6141feb4adfbb781920",
      "parents": [
        "b0aee3516d84c05240065a53f238ba7a718f56b9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jan 03 14:49:45 2011 +0100"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:14 2011 -0800"
      },
      "message": "ceph: fsc-\u003e*_wq\u0027s aren\u0027t used in memory reclaim path\n\nfsc-\u003e*_wq\u0027s aren\u0027t depended upon during memory reclaim.  Convert to\nalloc_workqueue() w/o WQ_MEM_RECLAIM.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: ceph-devel@vger.kernel.org\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "582c86e69045f37da8be445c265f72a7a73b18c6",
      "tree": "4c6661ffd8b5b331ce6f1316e9556c1bda079dfb",
      "parents": [
        "dc69e2e9fcd7c613eb744ea3b9c4ee9ca554e822"
      ],
      "author": {
        "name": "Tracey Dent",
        "email": "tdent48227@gmail.com",
        "time": "Tue Dec 14 19:32:37 2010 -0500"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:13 2011 -0800"
      },
      "message": "ceph: Makefile: Remove unnessary code\n\nRemove the if and else conditional because the code is in mainline and there\nis no need in it being there.\n\nAlso, Changed Makefile to use \u003cmodules\u003e-y instead of \u003cmodules\u003e-objs\nbecause -objs is deprecated and not mentioned in\n Documentation/kbuild/makefiles.txt.\n\nSigned-off-by: Tracey Dent \u003ctdent48227@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "dc69e2e9fcd7c613eb744ea3b9c4ee9ca554e822",
      "tree": "4b981b9ded0e08c2ab517b48367040a7b9902ed9",
      "parents": [
        "4af25fdda6943f311a63034f80933e4d6d6e3a19"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 02 13:49:00 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:13 2011 -0800"
      },
      "message": "ceph: associate requests with opening sessions\n\nAssociate request with sessions that aren\u0027t yep open.  This makes the\ndebugfs mdsc request list more informative.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4af25fdda6943f311a63034f80933e4d6d6e3a19",
      "tree": "8d0be03aedc4d3ea09ba0b8d3f1b63df4ef302e1",
      "parents": [
        "14303d20f3ae3e6ab626c77a4aac202b3bafd377"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 02 13:41:47 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:13 2011 -0800"
      },
      "message": "ceph: drop redundant r_mds field\n\nThe r_mds field is redundant, since we can find the same information at\nr_session-\u003es_mds, and when r_session is NULL then r_mds is meaningless.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "14303d20f3ae3e6ab626c77a4aac202b3bafd377",
      "tree": "ee93c0de758571721f594c35f556ca79468e684f",
      "parents": [
        "6c0f3af72cb1622a66962a1180c36ef8c41be8e2"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Dec 14 17:37:52 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:13 2011 -0800"
      },
      "message": "ceph: implement DIRLAYOUTHASH feature to get dir layout from MDS\n\nThis implements the DIRLAYOUTHASH protocol feature, which passes the dir\nlayout over the wire from the MDS.  This gives the client knowledge\nof the correct hash function to use for mapping dentries among dir\nfragments.\n\nNote that if this feature is _not_ present on the client but is on the\nMDS, the client may misdirect requests.  This will result in a forward\nand degrade performance.  It may also result in inaccurate NFS filehandle\ngeneration, which will prevent fh resolution when the inode is not present\nin the client cache and the parent directories have been fragmented.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6c0f3af72cb1622a66962a1180c36ef8c41be8e2",
      "tree": "66e415bf31ea31a3e9360c0ce624fd20b6050c89",
      "parents": [
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 16 11:14:34 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:12 2011 -0800"
      },
      "message": "ceph: add dir_layout to inode\n\nAdd a ceph_dir_layout to the inode, and calculate dentry hash values based\non the parent directory\u0027s specified dir_hash function.  This is needed\nbecause the old default Linux dcache hash function is extremely week and\nleads to a poor distribution of files among dir fragments.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b74c79e99389cd79b31fcc08f82c24e492e63c7e",
      "tree": "763c6b412517306670bc625e90035f2d16bb739f",
      "parents": [
        "34286d6662308d82aed891852d04c7c3a2649b16"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:58 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: provide rcu-walk aware permission i_ops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "34286d6662308d82aed891852d04c7c3a2649b16",
      "tree": "c4b7311404d302e7cb94df7a4690298e1059910a",
      "parents": [
        "44a7d7a878c9cbb74f236ea755b25b6b2e26a9a9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:57 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: rcu-walk aware d_revalidate method\n\nRequire filesystems be aware of .d_revalidate being called in rcu-walk\nmode (nd-\u003eflags \u0026 LOOKUP_RCU). For now do a simple push down, returning\n-ECHILD from all implementations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fb045adb99d9b7c562dc7fef834857f78249daa1",
      "tree": "1fd6a4024fffeec568abe100d730589bfdb81c38",
      "parents": [
        "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:55 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache reduce branches in lookup path\n\nReduce some branches and memory accesses in dcache lookup by adding dentry\nflags to indicate common d_ops are set, rather than having to check them.\nThis saves a pointer memory access (dentry-\u003ed_op) in common path lookup\nsituations, and saves another pointer load and branch in cases where we\nhave d_op but not the particular operation.\n\nPatched with:\n\ngit grep -E \u0027[.\u003e]([[:space:]])*d_op([[:space:]])*\u003d\u0027 | xargs sed -e \u0027s/\\([^\\t ]*\\)-\u003ed_op \u003d \\(.*\\);/d_set_d_op(\\1, \\2);/\u0027 -e \u0027s/\\([^\\t ]*\\)\\.d_op \u003d \\(.*\\);/d_set_d_op(\\\u0026\\1, \\2);/\u0027 -i\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b5c84bf6f6fa3a7dfdcb556023a62953574b60ee",
      "tree": "7a2c299a180713e21d5cb653cb933121adf53c31",
      "parents": [
        "949854d02455080d20cd3e1db28a3a18daf7599d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:38 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:23 2011 +1100"
      },
      "message": "fs: dcache remove dcache_lock\n\ndcache_lock no longer protects anything. remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "2fd6b7f50797f2e993eea59e0a0b8c6399c811dc",
      "tree": "ce33b94b34844c09103836cf4cfa4364b742f217",
      "parents": [
        "da5029563a0a026c64821b09e8e7b4fd81d3fe1b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:34 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale subdirs\n\nProtect d_subdirs and d_child with d_lock, except in filesystems that aren\u0027t\nusing dcache_lock for these anyway (eg. using i_mutex).\n\nNote: if we change the locking rule in future so that -\u003ed_child protection is\nprovided only with -\u003ed_parent-\u003ed_lock, it may allow us to reduce some locking.\nBut it would be an exception to an otherwise regular locking scheme, so we\u0027d\nhave to see some good results. Probably not worthwhile.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "da5029563a0a026c64821b09e8e7b4fd81d3fe1b",
      "tree": "5d5618e0cb382390073377b1be7d0aa76879ac54",
      "parents": [
        "b7ab39f631f505edc2bbdb86620d5493f995c9da"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:33 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale d_unhashed\n\nProtect d_unhashed(dentry) condition with d_lock. This means keeping\nDCACHE_UNHASHED bit in synch with hash manipulations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b7ab39f631f505edc2bbdb86620d5493f995c9da",
      "tree": "62be97ebc7fc69ceb601f23312d335ebb8038ee7",
      "parents": [
        "2304450783dfde7b0b94ae234edd0dbffa865073"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:32 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale dentry refcount\n\nMake d_count non-atomic and protect it with d_lock. This allows us to ensure a\n0 refcount dentry remains 0 without dcache_lock. It is also fairly natural when\nwe start protecting many other dentry members with d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b6aa5901c7a2bd90d0b6b9866300d2648b2568f3",
      "tree": "1161ed9dbacb7ace73c5d48fc9acd1db0d7815d5",
      "parents": [
        "92cf765237e2787eb168096305c448caf25ac7f8"
      ],
      "author": {
        "name": "Henry C Chang",
        "email": "henry_c_chang@tcloudcomputing.com",
        "time": "Wed Dec 15 20:45:41 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 17 09:54:40 2010 -0800"
      },
      "message": "ceph: mark user pages dirty on direct-io reads\n\nFor read operation, we have to set the argument _write_ of get_user_pages\nto 1 since we will write data to pages. Also, we need to SetPageDirty before\nreleasing these pages.\n\nSigned-off-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "92cf765237e2787eb168096305c448caf25ac7f8",
      "tree": "089f6d5a0f979ca858295cbf616ee2e85a62680f",
      "parents": [
        "ab226e21ad34f6ef52e00d2ab399d2364b4cdfee"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 17 09:53:41 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 17 09:53:48 2010 -0800"
      },
      "message": "ceph: fix null pointer dereference in ceph_init_dentry for nfs reexport\n\nThe fh_to_dentry etc. methods use ceph_init_dentry(), which assumes that\nd_parent is defined.  It isn\u0027t for those callers, so check!\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ab226e21ad34f6ef52e00d2ab399d2364b4cdfee",
      "tree": "95b9683b601a0602d9f813f7e6786e9a0e6da118",
      "parents": [
        "d96c9043d1588f04c7f467167f653c07d83232d5"
      ],
      "author": {
        "name": "Henry C Chang",
        "email": "henry_c_chang@tcloudcomputing.com",
        "time": "Wed Dec 15 20:41:54 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 15 20:46:16 2010 -0800"
      },
      "message": "ceph: fix direct-io on non-page-aligned buffers\n\nThe user buffer may be 512-byte aligned, not page-aligned.  We were\nassuming the buffer was page-aligned and only accounting for\nnon-page-aligned io offsets.\n\nSigned-off-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1cd275f609ba46c8cae3ee77e499c54a0d13a983",
      "tree": "8530a763f57fc2dd02b34c4036c689ae603df3b6",
      "parents": [
        "a5b10629edfa521071ccdb3b1e0e7fb350a044db"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 06 09:45:22 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 06 09:45:22 2010 -0800"
      },
      "message": "ceph: fix ioctl magic\n\nThe ioctl magic was inadvertently changed in 571dba52.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a5b10629edfa521071ccdb3b1e0e7fb350a044db",
      "tree": "c852f7a214c30fe1923579ec031b37fc8f326523",
      "parents": [
        "637ae8d547390df75bad42a7e9cb65e625119767"
      ],
      "author": {
        "name": "Herb Shiu",
        "email": "herb_shiu@tcloudcomputing.com",
        "time": "Tue Nov 23 13:58:29 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 01 14:22:34 2010 -0800"
      },
      "message": "ceph: Behave better when handling file lock replies.\n\nFill in the local lock with response data if appropriate,\nand don\u0027t call posix_lock_file when reading locks.\n\nSigned-off-by: Herb Shiu \u003cherb_shiu@tcloudcomputing.com\u003e\nAcked-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "637ae8d547390df75bad42a7e9cb65e625119767",
      "tree": "311b5e454928e8954aee522d8c1a943954c9ea7e",
      "parents": [
        "25933abdd8c562182ca6dc9f8c4c2cc8265c3a80"
      ],
      "author": {
        "name": "Herb Shiu",
        "email": "herb_shiu@tcloudcomputing.com",
        "time": "Tue Nov 23 13:42:23 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 01 14:22:34 2010 -0800"
      },
      "message": "ceph: pass lock information by struct file_lock instead of as individual params.\n\nSigned-off-by: Herb Shiu \u003cherb_shiu@tcloudcomputing.com\u003e\nAcked-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "25933abdd8c562182ca6dc9f8c4c2cc8265c3a80",
      "tree": "213db691c7a2d115f2f9ec5d586c1b769dfdb6fc",
      "parents": [
        "884ea892763d4dfba509743f65961c782c0442db"
      ],
      "author": {
        "name": "Herb Shiu",
        "email": "herb_shiu@tcloudcomputing.com",
        "time": "Wed Dec 01 14:14:38 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 01 14:22:27 2010 -0800"
      },
      "message": "ceph: Handle file locks in replies from the MDS.\n\nPreviously the kernel client incorrectly assumed everything was a directory.\n\nSigned-off-by: Herb Shiu \u003cherb_shiu@tcloudcomputing.com\u003e\nAcked-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "884ea892763d4dfba509743f65961c782c0442db",
      "tree": "92a7f5b67aa06cf32457ccb2b69c28c528a48c15",
      "parents": [
        "3561d43fd289f590fdae672e5eb831b8d5cf0bf6"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 22 22:58:06 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 01 14:15:31 2010 -0800"
      },
      "message": "ceph: avoid possible null deref in readdir after dir llseek\n\nlast may be NULL, but we dereference it in the else branch without\nchecking.  Normally it doesn\u0027t trigger because last \u003d\u003d NULL when fpos \u003d\u003d 2,\nbut it could happen on a newly opened dir if the user seeks forward.\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "76db8ac45fc738f7d7664fe9b56d15c594a45228",
      "tree": "eca23feab074d505b375e27714473f4ad337bd85",
      "parents": [
        "caf8394524fdc039b090cd3af99157e9e76f4f06",
        "3105c19c450ac7c18ab28c19d364b588767261b3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 19 15:32:22 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 19 15:32:22 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: fix readdir EOVERFLOW on 32-bit archs\n  ceph: fix frag offset for non-leftmost frags\n  ceph: fix dangling pointer\n  ceph: explicitly specify page alignment in network messages\n  ceph: make page alignment explicit in osd interface\n  ceph: fix comment, remove extraneous args\n  ceph: fix update of ctime from MDS\n  ceph: fix version check on racing inode updates\n  ceph: fix uid/gid on resent mds requests\n  ceph: fix rdcache_gen usage and invalidate\n  ceph: re-request max_size if cap auth changes\n  ceph: only let auth caps update max_size\n  ceph: fix open for write on clustered mds\n  ceph: fix bad pointer dereference in ceph_fill_trace\n  ceph: fix small seq message skipping\n  Revert \"ceph: update issue_seq on cap grant\"\n"
    },
    {
      "commit": "3105c19c450ac7c18ab28c19d364b588767261b3",
      "tree": "2b306fb3b8536f5f92f085993bbd966d9eb3929a",
      "parents": [
        "7b88dadc13e0004947de52df128dbd5b0754ed0a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 18 09:15:07 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 18 09:15:07 2010 -0800"
      },
      "message": "ceph: fix readdir EOVERFLOW on 32-bit archs\n\nOne of the readdir filldir_t callers was passing the raw ceph 64-bit ino\ninstead of the hashed 32-bit one, producing an EOVERFLOW in the filler\ncallback.  Fix this by calling the ceph_vino_to_ino() helper to do the\nconversion.\n\nReported-by: Jan Smets \u003cjan.smets@alcatel-lucent.com\u003e\nTested-by: Jan Smets \u003cjan.smets@alcatel-lucent.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b88dadc13e0004947de52df128dbd5b0754ed0a",
      "tree": "9a2fd203b382b5922dfd1be5cb3adf055ff50c2d",
      "parents": [
        "a1629c3b24f26ec1b0f534874af674a6b4c1540b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 11 16:48:59 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 11 16:48:59 2010 -0800"
      },
      "message": "ceph: fix frag offset for non-leftmost frags\n\nWe start at offset 2 for the leftmost frag, and 0 for subsequent frags.\nWhen we reach the end (rightmost), we go back to 2.  This fixes readdir on\nfragmented (large) directories.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a1629c3b24f26ec1b0f534874af674a6b4c1540b",
      "tree": "7b40b54486f68189cde9753aca31d8e3d8af61a2",
      "parents": [
        "c5c6b19d4b8f5431fca05f28ae9e141045022149"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 11 15:24:06 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 11 15:24:06 2010 -0800"
      },
      "message": "ceph: fix dangling pointer\n\nClear fi-\u003elast_name when it\u0027s freed.  The only caller is rewinddir() (or\nequivalent lseek).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b7495fc2ff941db6a118a93ab8d61149e3f4cef8",
      "tree": "231c339d74760e2fa13e5e6f41c10bc28cea51b3",
      "parents": [
        "e98b6fed84d0f0155d7b398e0dfeac74c792f2d0"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 09 12:43:12 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 09 12:43:12 2010 -0800"
      },
      "message": "ceph: make page alignment explicit in osd interface\n\nWe used to infer alignment of IOs within a page based on the file offset,\nwhich assumed they matched.  This broke with direct IO that was not aligned\nto pages (e.g., 512-byte aligned IO).  We were also trusting the alignment\nspecified in the OSD reply, which could have been adjusted by the server.\n\nExplicitly specify the page alignment when setting up OSD IO requests.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e98b6fed84d0f0155d7b398e0dfeac74c792f2d0",
      "tree": "0762cba398c39329dc5f056ddfccebf6768d2555",
      "parents": [
        "d8672d64b88cdb7aa8139fb6d218f40b8cbf60af"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 09 12:24:53 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 09 12:24:53 2010 -0800"
      },
      "message": "ceph: fix comment, remove extraneous args\n\nThe offset/length arguments aren\u0027t used.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d8672d64b88cdb7aa8139fb6d218f40b8cbf60af",
      "tree": "71d955bc89b33df3f838f8e1e8c0cbcd3f2bfc62",
      "parents": [
        "8bd59e0188c04f6540f00e13f633f22e4804ce06"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 09:24:34 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 09:24:34 2010 -0800"
      },
      "message": "ceph: fix update of ctime from MDS\n\nThe client can have a newer ctime than the MDS due to AUTH_EXCL and\nXATTR_EXCL caps as well; update the check in ceph_fill_file_time\nappropriately.\n\nThis fixes cases where ctime/mtime goes backward under the right sequence\nof local updates (e.g. chmod) and mds replies (e.g. subsequent stat that\ngoes to the MDS).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8bd59e0188c04f6540f00e13f633f22e4804ce06",
      "tree": "7f311b4fc75dea4fcd71aedbfa85ce7b6cfd712d",
      "parents": [
        "cb4276cca4695670916a82e359f2e3776f0a9138"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 09:23:12 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 09:23:12 2010 -0800"
      },
      "message": "ceph: fix version check on racing inode updates\n\nWe may get updates on the same inode from multiple MDSs; generally we only\npay attention if the update is newer than what we already have.  The\nexception is when an MDS sense unstable information, in which case we\nalways update.\n\nThe old \u003e check got this wrong when our version was odd (e.g. 3) and the\nreply version was even (e.g. 2): the older stale (v2) info would be\napplied.  Fixed and clarified the comment.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cb4276cca4695670916a82e359f2e3776f0a9138",
      "tree": "09695ba622771c933e045bafe63c1da1139266f3",
      "parents": [
        "cd045cb42a266882ac24bc21a3a8d03683c72954"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 07:28:52 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 07:29:05 2010 -0800"
      },
      "message": "ceph: fix uid/gid on resent mds requests\n\nMDS requests can be rebuilt and resent in non-process context, but were\nfilling in uid/gid from current_fsuid/gid.  Put that information in the\nrequest struct on request setup.\n\nThis fixes incorrect (and root) uid/gid getting set for requests that\nare forwarded between MDSs, usually due to metadata migrations.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cd045cb42a266882ac24bc21a3a8d03683c72954",
      "tree": "2938560e8362804e829cc9feb23ef746d354140b",
      "parents": [
        "feb4cc9bb433bf1491ac5ffbba133f3258dacf06"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 04 11:05:05 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 07:29:05 2010 -0800"
      },
      "message": "ceph: fix rdcache_gen usage and invalidate\n\nWe used to use rdcache_gen to indicate whether we \"might\" have cached\npages.  Now we just look at the mapping to determine that.  However, some\nold behavior remains from that transition.\n\nFirst, rdcache_gen \u003d\u003d 0 no longer means we have no pages.  That can happen\nat any time (presumably when we carry FILE_CACHE).  We should not reset it\nto zero, and we should not check that it is zero.\n\nThat means that the only purpose for rdcache_revoking is to resolve races\nbetween new issues of FILE_CACHE and an async invalidate.  If they are\nequal, we should invalidate.  On success, we decrement rdcache_revoking,\nso that it is no longer equal to rdcache_gen.  Similarly, if we success\nin doing a sync invalidate, set revoking \u003d gen - 1.  (This is a small\noptimization to avoid doing unnecessary invalidate work and does not\naffect correctness.)\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "feb4cc9bb433bf1491ac5ffbba133f3258dacf06",
      "tree": "6339043d3fd867683459d9dc33f146b2f7e37d75",
      "parents": [
        "912a9b0319a8eb9e0834b19a25e01013ab2d6a9f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 09:39:00 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 09:39:23 2010 -0800"
      },
      "message": "ceph: re-request max_size if cap auth changes\n\nIf the auth cap migrates to another MDS, clear requested_max_size so that\nwe resend any pending max_size increase requests.  This fixes potential\nhangs on writes that extend a file and race with an cap migration between\nMDSs.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "912a9b0319a8eb9e0834b19a25e01013ab2d6a9f",
      "tree": "7b04fca1669f006c1a1f35da8d986ca8ad11161c",
      "parents": [
        "7421ab8041d98363edfb85955fa3b9849ffae366"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 09:37:25 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 09:39:21 2010 -0800"
      },
      "message": "ceph: only let auth caps update max_size\n\nOnly the auth MDS has a meaningful max_size value for us, so only update it\nin fill_inode if we\u0027re being issued an auth cap.  Otherwise, a random\nstat result from a non-auth MDS can clobber a meaningful max_size, get\nthe client\u003c-\u003emds cap state out of sync, and make writes hang.\n\nSpecifically, even if the client re-requests a larger max_size (which it\nwill), the MDS won\u0027t respond because as far as it knows we already have a\nsufficiently large value.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7421ab8041d98363edfb85955fa3b9849ffae366",
      "tree": "d1ae0dbaf56ed8f56849f4199626a303ec86b03d",
      "parents": [
        "d8b16b3d1c9d8d9124d647d05797383d35e2d645"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 09:07:15 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 09:07:15 2010 -0800"
      },
      "message": "ceph: fix open for write on clustered mds\n\nNormally when we open a file we already have a cap, and simply update the\nwanted set.  However, if we open a file for write, but don\u0027t have an auth\ncap, that doesn\u0027t work; we need to open a new cap with the auth MDS.  Only\nreuse existing caps if we are opening for read or the existing cap is auth.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d8b16b3d1c9d8d9124d647d05797383d35e2d645",
      "tree": "29bd57396f016572b5535c17a198b24062e2c79d",
      "parents": [
        "df9f86faf3ee610527ed02031fe7dd3c8b752e44"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Nov 06 12:41:16 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 08:40:43 2010 -0800"
      },
      "message": "ceph: fix bad pointer dereference in ceph_fill_trace\n\nWe dereference *in a few lines down, but only set it on rename.  It is\napparently pretty rare for this to trigger, but I have been hitting it\nwith a clustered MDSs.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a7f9fb205a88ab9af675a68fc554cf51dafc8b60",
      "tree": "0aaa2ad1b345f46fc96d3e00592f9d106a269836",
      "parents": [
        "8bcbbf0009dd467afd6bed1fedfcb1d2463f55a7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 16:17:55 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:18 2010 -0400"
      },
      "message": "convert ceph\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2f56f56ad991edd51ffd0baf1182245ee1277a04",
      "tree": "e4062e2bb1a92b487609cded256d5ede1a6eda90",
      "parents": [
        "efa4c1206eaff047c474af2136748a58eb8cc33b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 27 20:59:49 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 27 21:05:54 2010 -0700"
      },
      "message": "Revert \"ceph: update issue_seq on cap grant\"\n\nThis reverts commit d91f2438d881514e4a923fd786dbd94b764a9440.\n\nThe intent of issue_seq is to distinguish between mds-\u003eclient messages that\n(re)create the cap and those that do not, which means we should _only_ be\nupdating that value in the create paths.  By updating it in handle_cap_grant,\nwe reset it to zero, which then breaks release.\n\nThe larger question is what workload/problem made me think it should be\nupdated here...\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1b430beee5e388605dfb092b214ef0320f752cf6",
      "tree": "c1b1ece282aab771fd1386a3fe0c6e82cb5c5bfe",
      "parents": [
        "d19d5476f4b9f91d2de92b91588bb118beba6c0d"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Oct 26 14:21:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "writeback: remove nonblocking/encountered_congestion references\n\nThis removes more dead code that was somehow missed by commit 0d99519efef\n(writeback: remove unused nonblocking and congestion checks).  There are\nno behavior change except for the removal of two entries from one of the\next4 tracing interface.\n\nThe nonblocking checks in -\u003ewritepages are no longer used because the\nflusher now prefer to block on get_request_wait() than to skip inodes on\nIO congestion.  The latter will lead to more seeky IO.\n\nThe nonblocking checks in -\u003ewritepage are no longer used because it\u0027s\nredundant with the WB_SYNC_NONE check.\n\nWe no long set -\u003enonblocking in VM page out and page migration, because\na) it\u0027s effectively redundant with WB_SYNC_NONE in current code\nb) it\u0027s old semantic of \"Don\u0027t get stuck on request queues\" is mis-behavior:\n   that would skip some dirty inodes on congestion and page out others, which\n   is unfair in terms of LRU age.\n\nInspired by Christoph Hellwig. Thanks!\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Steve French \u003csfrench@samba.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "efa4c1206eaff047c474af2136748a58eb8cc33b",
      "tree": "61f8957ed7735c01a6d6900a3c4c2c45d084c3a7",
      "parents": [
        "61413c2f594e6b63db2b14c70c2e7d8cf02f9c00"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 18 14:04:31 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:27 2010 -0700"
      },
      "message": "ceph: do not carry i_lock for readdir from dcache\n\nWe were taking dcache_lock inside of i_lock, which introduces a dependency\nnot found elsewhere in the kernel, complicationg the vfs locking\nscalability work.  Since we don\u0027t actually need it here anyway, remove\nit.\n\nWe only need i_lock to test for the I_COMPLETE flag, so be careful to do\nso without dcache_lock held.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "61413c2f594e6b63db2b14c70c2e7d8cf02f9c00",
      "tree": "2201b24eafc589067890a681a5e4e3431f8decdc",
      "parents": [
        "85b5aaa624aac568b8a3a88dbe4de6628c7cc527"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Sun Oct 17 21:55:21 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:26 2010 -0700"
      },
      "message": "fs/ceph/xattr.c: Use kmemdup\n\nConvert a sequence of kmalloc and memcpy to use kmemdup.\n\nThe semantic patch that performs this transformation is:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression a,flag,len;\nexpression arg,e1,e2;\nstatement S;\n@@\n\n  a \u003d\n-  \\(kmalloc\\|kzalloc\\)(len,flag)\n+  kmemdup(arg,len,flag)\n  \u003c... when !\u003d a\n  if (a \u003d\u003d NULL || ...) S\n  ...\u003e\n- memcpy(a,arg,len+1);\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "571dba52a34015a5a7aa5d480a86936878444a6f",
      "tree": "358000d91b2960555835e7e194660f45d189953b",
      "parents": [
        "010e3b48fca57920557d2b80b83f8b2899fb5d1e"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Fri Sep 24 14:56:40 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:23 2010 -0700"
      },
      "message": "ceph: add CEPH_MDS_OP_SETDIRLAYOUT and associated ioctl.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6f453ed6c07dbed83b368269c9c0fb170866ee71",
      "tree": "f43e0bfd108aad49e8bbab9be395c74f97da5109",
      "parents": [
        "f4cf3deef4c474381e8fee2e6099d49edd9105cb"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Sep 28 09:53:10 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:21 2010 -0700"
      },
      "message": "ceph: fix debugfs warnings\n\nInclude \"super.h\" outside of CONFIG_DEBUG_FS to eliminate a compiler warning:\n\nfs/ceph/debugfs.c:266: warning: \u0027struct ceph_fs_client\u0027 declared inside parameter list\nfs/ceph/debugfs.c:266: warning: its scope is only this definition or declaration, which is probably not what you want\nfs/ceph/debugfs.c:271: warning: \u0027struct ceph_fs_client\u0027 declared inside parameter list\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "496e59553c51ce18acc836de070106b583926b87",
      "tree": "a171b2ec236fd021d4f17ea9d5df7312e93c1645",
      "parents": [
        "fca4451acfdcf894154e4809529ca28a09db88ff"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Sep 22 19:57:10 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:18 2010 -0700"
      },
      "message": "ceph: switch from BKL to lock_flocks()\n\nSwitch from using the BKL explicitly to the new lock_flocks() interface.\nEventually this will turn into a spinlock.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "fca4451acfdcf894154e4809529ca28a09db88ff",
      "tree": "446381c8e8c7b592b47c2e50c32b1e40817fcfe1",
      "parents": [
        "ac0b74d8a1ced8ea86147467daf06b15b130dd94"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Fri Sep 17 10:24:02 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:17 2010 -0700"
      },
      "message": "ceph: preallocate flock state without locks held\n\nWhen the lock_kernel() turns into lock_flocks() and a spinlock, we won\u0027t\nbe able to do allocations with the lock held.  Preallocate space without\nthe lock, and retry if the lock state changes out from underneath us.\n\nSigned-off-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "18a38193efcaac1fb3c94ad8fa04bb117850a3c2",
      "tree": "096877dc2a039a991262d9f05fa0a2c2f684cfa8",
      "parents": [
        "93afd449aa3c0430ef409c13e1cb2b3f0458fc10"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 10:46:44 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:15 2010 -0700"
      },
      "message": "ceph: use mapping-\u003enrpages to determine if mapping is empty\n\nThis is simpler and faster.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "93afd449aa3c0430ef409c13e1cb2b3f0458fc10",
      "tree": "dd9ab308735c2414260539e33605197a5f90f069",
      "parents": [
        "4c32f5dda5ffe23687a55da1538b7cc426710d1a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 08:38:25 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:15 2010 -0700"
      },
      "message": "ceph: only invalidate on check_caps if we actually have pages\n\nThe i_rdcache_gen value only implies we MAY have cached pages; actually\ncheck the mapping to see if it\u0027s worth bothering with an invalidate.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4c32f5dda5ffe23687a55da1538b7cc426710d1a",
      "tree": "d0048f2310cdf1809ac13d4c8d59c75f96f67280",
      "parents": [
        "602adf400201636e95c3fed9f31fba54a3d7e844"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 16:27:36 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:14 2010 -0700"
      },
      "message": "ceph: do not hide .snap in root directory\n\nSnaps in the root directory are now supported by the MDS, and harmless on\nolder versions.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3d14c5d2b6e15c21d8e5467dc62d33127c23a644",
      "tree": "7d123c47847df9d1e865b6b78dc7da3fe739b704",
      "parents": [
        "ae1533b62b3369e6ae32338f4a77d64d0e88f676"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Apr 06 15:14:15 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:37:28 2010 -0700"
      },
      "message": "ceph: factor out libceph from Ceph file system\n\nThis factors out protocol and low-level storage parts of ceph into a\nseparate libceph module living in net/ceph and include/linux/ceph.  This\nis mostly a matter of moving files around.  However, a few key pieces\nof the interface change as well:\n\n - ceph_client becomes ceph_fs_client and ceph_client, where the latter\n   captures the mon and osd clients, and the fs_client gets the mds client\n   and file system specific pieces.\n - Mount option parsing and debugfs setup is correspondingly broken into\n   two pieces.\n - The mon client gets a generic handler callback for otherwise unknown\n   messages (mds map, in this case).\n - The basic supported/required feature bits can be expanded (and are by\n   ceph_fs_client).\n\nNo functional change, aside from some subtle error handling cases that got\ncleaned up in the refactoring process.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ae1533b62b3369e6ae32338f4a77d64d0e88f676",
      "tree": "9a54b1c1c8a52a4ae46bc0c5421d04e93ac6495f",
      "parents": [
        "68b4476b0bc13fef18266b4140309a30e86739d2"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue May 18 16:38:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:37:25 2010 -0700"
      },
      "message": "ceph-rbd: osdc support for osd call and rollback operations\n\nThis will be used for rbd snapshots administration.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "68b4476b0bc13fef18266b4140309a30e86739d2",
      "tree": "47fab5ea2491c7bc75fe14a3b0d3a091eb6244b7",
      "parents": [
        "3499e8a5d4dbb083324efd942e2c4fb7eb65f27c"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Apr 06 15:01:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:37:18 2010 -0700"
      },
      "message": "ceph: messenger and osdc changes for rbd\n\nAllow the messenger to send/receive data in a bio.  This is added\nso that we wouldn\u0027t need to copy the data into pages or some other buffer\nwhen doing IO for an rbd block device.\n\nWe can now have trailing variable sized data for osd\nops.  Also osd ops encoding is more modular.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3499e8a5d4dbb083324efd942e2c4fb7eb65f27c",
      "tree": "7c3914991f81bcf2a9153047e7f1dad2ae0da74b",
      "parents": [
        "7669a2c95e502a77f93f27e5449fc93a00d588b6"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Apr 06 14:51:47 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:36:01 2010 -0700"
      },
      "message": "ceph: refactor osdc requests creation functions\n\nThe osd requests creation are being decoupled from the\nvino parameter, allowing clients using the osd to use\nother arbitrary object names that are not necessarily\nvino based. Also, calc_raw_layout now takes a snap id.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7669a2c95e502a77f93f27e5449fc93a00d588b6",
      "tree": "4230c625bf5781d1cb3cf6b1e38b2d0ef103234c",
      "parents": [
        "cd07202cc8262e1669edff0d97715f3dd9260917"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Mon May 17 12:31:35 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:35:36 2010 -0700"
      },
      "message": "ceph: lookup pool in osdmap by name\n\nImplement a pool lookup by name.  This will be used by rbd.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d91f2438d881514e4a923fd786dbd94b764a9440",
      "tree": "d0419a4c2132687c58e54a18938ab2359794700d",
      "parents": [
        "21b559de56695d36b3f0819b7e2454737db254f8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Sep 22 11:16:00 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 07 08:01:50 2010 -0700"
      },
      "message": "ceph: update issue_seq on cap grant\n\nWe need to update the issue_seq on any grant operation, be it via an MDS\nreply or a separate grant message.  The update in the grant path was\nmissing.  This broke cap release for inodes in which the MDS sent an\nexplicit grant message that was not soon after followed by a successful\nMDS reply on the same inode.\n\nAlso fix the signedness on seq locals.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "21b559de56695d36b3f0819b7e2454737db254f8",
      "tree": "41559b37754818d637d11aec1b61a138d7a8efb5",
      "parents": [
        "bba0cd0e3d97472855840af817b766e3f632a501"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Wed Oct 06 15:46:30 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 07 08:00:24 2010 -0700"
      },
      "message": "ceph: send cap release message early on failed revoke.\n\nIf an MDS tries to revoke caps that we don\u0027t have, we want to send\nreleases early since they probably contain the caps message the MDS\nis looking for.\n\nPreviously, we only sent the messages if we didn\u0027t have the inode either. But\nin a multi-mds system we can retain the inode after dropping all caps for\na single MDS.\n\nSigned-off-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bba0cd0e3d97472855840af817b766e3f632a501",
      "tree": "31794165c098a079e3af617b594eaf9ae8d3bd8a",
      "parents": [
        "92923dcbfcad107b0e0469f579a2455729ccf10e"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Oct 05 16:03:42 2010 +0530"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 07 08:00:24 2010 -0700"
      },
      "message": "ceph: Update max_len with minimum required size\n\nencode_fh on error should update max_len with minimum required\nsize, so that caller can redo the call with the reallocated buffer.\nThis is required with open by handle patch series\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "92923dcbfcad107b0e0469f579a2455729ccf10e",
      "tree": "a16b4b1510af3c57acfa483d8f88cb5d0ba41d98",
      "parents": [
        "6bc18876ba01fd4a077db6e1ed27201e4bda8864"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Oct 05 16:03:41 2010 +0530"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 07 08:00:23 2010 -0700"
      },
      "message": "ceph: Fix return value of encode_fh function\n\nencode_fh function should return 255 on error as done by other file\nsystem to indicate EOVERFLOW. Also max_len is in sizeof(u32) units\nand not in bytes.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6bc18876ba01fd4a077db6e1ed27201e4bda8864",
      "tree": "145b14be550e359e2a5a9f594f54f870d46fd926",
      "parents": [
        "936aeb5c4a9fa799abd7d630a94223acedcaad50"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Sep 27 10:18:52 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 07 08:00:23 2010 -0700"
      },
      "message": "ceph: avoid null deref in osd request error path\n\nIf we interrupt an osd request, we call __cancel_request, but it wasn\u0027t\nverifying that req-\u003er_osd was non-NULL before dereferencing it.  This could\ncause a crash if osds were flapping and we aborted a request on said osd.\n\nReported-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "936aeb5c4a9fa799abd7d630a94223acedcaad50",
      "tree": "377c2b25d450975e928012c8d9b7c12214b62428",
      "parents": [
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "Henry C Chang",
        "email": "henry_c_chang@tcloudcomputing.com",
        "time": "Wed Sep 22 20:21:17 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 07 08:00:23 2010 -0700"
      },
      "message": "ceph: fix list_add usage on unsafe_writes list\n\nFix argument order.\n\nSigned-off-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "be4f104dfd3b5e3ae262bff607965cfc38027dec",
      "tree": "8b2f84afebe64730a83307ad9b18c6f6ca51962f",
      "parents": [
        "a43fb73101eaf6db0b33d22c152b338ab8b3edbb"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 12:30:31 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 12:30:31 2010 -0700"
      },
      "message": "ceph: select CRYPTO\n\nWe select CRYPTO_AES, but not CRYPTO.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a43fb73101eaf6db0b33d22c152b338ab8b3edbb",
      "tree": "039276b81586a986f5b9662fc28b37cbf9271eb3",
      "parents": [
        "e835124c2be289515b918f2688ced4249e2de566"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 09:54:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 09:54:31 2010 -0700"
      },
      "message": "ceph: check mapping to determine if FILE_CACHE cap is used\n\nSee if the i_data mapping has any pages to determine if the FILE_CACHE\ncapability is currently in use, instead of assuming it is any time the\nrdcache_gen value is set (i.e., issued -\u003e used).\n\nThis allows the MDS RECALL_STATE process work for inodes that have cached\npages.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e835124c2be289515b918f2688ced4249e2de566",
      "tree": "1bf9bc86a2d1c3e9508dc304830a3bb42ad7de9b",
      "parents": [
        "ae00d4f37f4df56821331deb1028748110dd6dc9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 08:03:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 08:03:08 2010 -0700"
      },
      "message": "ceph: only send one flushsnap per cap_snap per mds session\n\nSending multiple flushsnap messages is problematic because we ignore\nthe response if the tid doesn\u0027t match, and the server may only respond to\neach one once.  It\u0027s also a waste.\n\nSo, skip cap_snaps that are already on the flushing list, unless the caller\ntells us to resend (because we are reconnecting).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ae00d4f37f4df56821331deb1028748110dd6dc9",
      "tree": "52437bde7370fc7a21193c27a08dc1d7238cee98",
      "parents": [
        "cfc0bf6640dfd0f43bf8bfec5a475284809baa4d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Sep 16 16:26:51 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Sep 16 16:26:51 2010 -0700"
      },
      "message": "ceph: fix cap_snap and realm split\n\nThe cap_snap creation/queueing relies on both the current i_head_snapc\n_and_ the i_snap_realm pointers being correct, so that the new cap_snap\ncan properly reference the old context and the new i_head_snapc can be\nupdated to reference the new snaprealm\u0027s context.  To fix this, we:\n\n - move inodes completely to the new (split) realm so that i_snap_realm\n   is correct, and\n - generate the new snapc\u0027s _before_ queueing the cap_snaps in\n   ceph_update_snap_trace().\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cfc0bf6640dfd0f43bf8bfec5a475284809baa4d",
      "tree": "63ee1563bc9b844c48684e57ad03bc3c023014a2",
      "parents": [
        "8bef9239ee1a42eb37d3f83bacf6a75f019c028d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Sep 14 15:50:59 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Sep 14 15:50:59 2010 -0700"
      },
      "message": "ceph: stop sending FLUSHSNAPs when we hit a dirty capsnap\n\nStop sending FLUSHSNAP messages when we hit a capsnap that has dirty_pages\nor is still writing.  We\u0027ll send the newer capsnaps only after the older\nones complete.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8bef9239ee1a42eb37d3f83bacf6a75f019c028d",
      "tree": "aca21838744fd483b5a2e374315c095b98193647",
      "parents": [
        "467c525109d5d542d7d416b0c11bdd54610fe2f4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Sep 14 15:45:44 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Sep 14 15:45:44 2010 -0700"
      },
      "message": "ceph: correctly set \u0027follows\u0027 in flushsnap messages\n\nThe \u0027follows\u0027 should match the seq for the snap context for the given snap\ncap, which is the context under which we have been dirtying and writing\ndata and metadata.  The snapshot that _contains_ those updates thus\n_follows_ that context\u0027s seq #.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "467c525109d5d542d7d416b0c11bdd54610fe2f4",
      "tree": "abde91184dc9ccecc9efc784520b184cae772fb1",
      "parents": [
        "a77d9f7dce7600058d56f0670ed29d77abffcde2"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Sep 13 11:39:20 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Sep 13 11:40:36 2010 -0700"
      },
      "message": "ceph: fix dn offset during readdir_prepopulate\n\nWhen adding the readdir results to the cache, ceph_set_dentry_offset was\nclobbered our just-set offset.  This can cause the readdir result offsets\nto get out of sync with the server.  Add an argument to the helper so\nthat it does not.\n\nThis bug was introduced by 1cd3935bedccf592d44343890251452a6dd74fc4.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a77d9f7dce7600058d56f0670ed29d77abffcde2",
      "tree": "60c0b90d2f3af86e9d65641f61ceca075ed61fdf",
      "parents": [
        "3612abbd5df6baa9ca3e0777c6c8646e202d3f66"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Sep 11 10:55:25 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Sep 11 10:55:25 2010 -0700"
      },
      "message": "ceph: fix file offset wrapping at 4GB on 32-bit archs\n\nCast the value before shifting so that we don\u0027t run out of bits with a\n32-bit unsigned long.  This fixes wrapping of high file offsets into the\nlow 4GB of a file on disk, and the subsequent data corruption for large\nfiles.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3612abbd5df6baa9ca3e0777c6c8646e202d3f66",
      "tree": "6c4512ac7acf0ac12683ab330c600eef69346fe7",
      "parents": [
        "3d4401d9d0aef5c40706350685ddea3df6708496"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Sep 07 15:59:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Sep 11 10:52:47 2010 -0700"
      },
      "message": "ceph: fix reconnect encoding for old servers\n\nFix the reconnect encoding to encode the cap record when the MDS does not\nhave the FLOCK capability (i.e., pre v0.22).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3d4401d9d0aef5c40706350685ddea3df6708496",
      "tree": "91f92cdc2bb440ffd1baff6bf3efdc2b83855174",
      "parents": [
        "ca04d9c3ec721e474f00992efc1b1afb625507f5"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Sep 03 12:57:11 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Sep 11 10:52:47 2010 -0700"
      },
      "message": "ceph: fix pagelist kunmap tail\n\nA wrong parameter was passed to the kunmap.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ca04d9c3ec721e474f00992efc1b1afb625507f5",
      "tree": "9dfe95fe2a08ff008888a754db10f31ac04fbea4",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 16:12:01 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Sep 11 10:52:47 2010 -0700"
      },
      "message": "ceph: fix null pointer deref on anon root dentry release\n\nWhen we release a root dentry, particularly after a splice, the parent\n(actually our) inode was evaluating to NULL and was getting dereferenced\nby ceph_snap().  This is reproduced by something as simple as\n\n mount -t ceph monhost:/a/b mnt\n mount -t ceph monhost:/a mnt2\n ls mnt2\n\nA splice_dentry() would kill the old \u0027b\u0027 inode\u0027s root dentry, and we\u0027d\ncrash while releasing it.\n\nFix by checking for both the ROOT and NULL cases explicitly.  We only need\nto invalidate the parent dir when we have a correct parent to invalidate.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b545787dbb00a041c541a4759d938ddb0108295a",
      "tree": "7d64ee98012ee45726b79a32ed815e06c83c4ef9",
      "parents": [
        "e072f8aa3587710cd35cce0f6b6efd7b4276c327"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Aug 26 11:12:38 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:26:50 2010 -0700"
      },
      "message": "ceph: fix get_ticket_handler() error handling\n\nget_ticket_handler() returns a valid pointer or it returns\nERR_PTR(-ENOMEM) if kzalloc() fails.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    }
  ],
  "next": "e072f8aa3587710cd35cce0f6b6efd7b4276c327"
}
