)]}'
{
  "log": [
    {
      "commit": "6d50bc26836e16a9589e0b128d527c29e30d722a",
      "tree": "8fd02d634b4cdf618e0328813b33c3a357015547",
      "parents": [
        "e420dfb40c453a9760b86c7f338052bdb4dfa755"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:22 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:52 2008 +0200"
      },
      "message": "x86: use 28 bits irq NR for pci msi/msix and ht\n\nalso print out irq no in /proc/interrups and /proc/stat in hex, so could\ntell bus/dev/func.\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "52b17329d6d0a4824b89206803a430915031ff23",
      "tree": "714884d90d67a771eef01863a677d502b2d758fc",
      "parents": [
        "a2f9f43858db64cb8b45c4f6746d7a52b80d4dcb"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:20 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:51 2008 +0200"
      },
      "message": "x86_64: make /proc/interrupts work with dyn irq_desc\n\nloop with irq_desc list\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c7fb03a475bd80c642c1345d85c7c550f63514b8",
      "tree": "575978fa259a52209f00d5bfaacb4d162caef0d3",
      "parents": [
        "2c6927a38f65b53b62f86158fba29a068c4e8b6a"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:12 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:33 2008 +0200"
      },
      "message": "irq, fs/proc: replace loop with nr_irqs for proc/stat\n\nReplace another nr_irqs loop to avoid the allocation of all sparse\nirq entries - use for_each_irq_desc instead.\n\nv2: make sure arch without GENERIC_HARDIRQS works too\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7f95ec9e4c12fd067febfd57532da1166d75d858",
      "tree": "b395b6776485f60e3f5d9d820ad665161ef76771",
      "parents": [
        "3060d6fe28570640c2d7d66d38b9eaa848c3b9e3"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:09 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:32 2008 +0200"
      },
      "message": "x86: move kstat_irqs from kstat to irq_desc\n\nbased on Eric\u0027s patch ...\n\ntogether mold it with dyn_array for irq_desc, will allcate kstat_irqs for\nnr_irq_desc alltogether if needed. -- at that point nr_cpus is known already.\n\nv2: make sure system without generic_hardirqs works they don\u0027t have irq_desc\nv3: fix merging\nv4: [mingo@elte.hu] fix typo\n\n[ mingo@elte.hu ] irq: build fix\n\nfix:\n\n arch/x86/xen/spinlock.c: In function \u0027xen_spin_lock_slow\u0027:\n arch/x86/xen/spinlock.c:90: error: \u0027struct kernel_stat\u0027 has no member named \u0027irqs\u0027\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "da27c118eb4f87f27ae8da2635b916daedf7264f",
      "tree": "7805ebae6d7191a0daf6e9fda3547b43304e1096",
      "parents": [
        "a62c41337356989387d15020dc0f0288aaacfa44"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:49:56 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:07 2008 +0200"
      },
      "message": "fs/proc: use nr_irqs\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "acd15a836053ff6b48e78dc6de388b225ba9e40d",
      "tree": "9dec0be18d746c5fb0d105233f50ebe7df455708",
      "parents": [
        "72f22b1eb6ca5e4676a632a04d40d46cb61d4562",
        "d4a8c93c8248534bdedb07f83c9aebd6f7d1d579"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 14 16:34:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 14 16:34:11 2008 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (56 commits)\n  ocfs2: Make cached block reads the common case.\n  ocfs2: Kill the last naked wait_on_buffer() for cached reads.\n  ocfs2: Move ocfs2_bread() into dir.c\n  ocfs2: Simplify ocfs2_read_block()\n  ocfs2: Require an inode for ocfs2_read_block(s)().\n  ocfs2: Separate out sync reads from ocfs2_read_blocks()\n  ocfs2: Refactor xattr list and remove ocfs2_xattr_handler().\n  ocfs2: Calculate EA hash only by its suffix.\n  ocfs2: Move trusted and user attribute support into xattr.c\n  ocfs2: Uninline ocfs2_xattr_name_hash()\n  ocfs2: Don\u0027t check for NULL before brelse()\n  ocfs2: use smaller counters in ocfs2_remove_xattr_clusters_from_cache\n  ocfs2: Documentation update for user_xattr / nouser_xattr mount options\n  ocfs2: make la_debug_mutex static\n  ocfs2: Remove pointless !!\n  ocfs2: Add empty bucket support in xattr.\n  ocfs2/xattr.c: Fix a bug when inserting xattr.\n  ocfs2: Add xattr mount option in ocfs2_show_options()\n  ocfs2: Switch over to JBD2.\n  ocfs2: Add the \u0027inode64\u0027 mount option.\n  ...\n"
    },
    {
      "commit": "8acd3a60bcca17c6d89c73cee3ad6057eb83ba1e",
      "tree": "d610c8d39246c33c499ee9d92d302d3ca9e89ae3",
      "parents": [
        "c269bc00fcb876ae3b85f178f1e34601185c8ccc",
        "107e0008dfb8bd6366bc8827f5bbbc0c1f795d2d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 14 12:31:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 14 12:31:14 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux: (59 commits)\n  svcrdma: Fix IRD/ORD polarity\n  svcrdma: Update svc_rdma_send_error to use DMA LKEY\n  svcrdma: Modify the RPC reply path to use FRMR when available\n  svcrdma: Modify the RPC recv path to use FRMR when available\n  svcrdma: Add support to svc_rdma_send to handle chained WR\n  svcrdma: Modify post recv path to use local dma key\n  svcrdma: Add a service to register a Fast Reg MR with the device\n  svcrdma: Query device for Fast Reg support during connection setup\n  svcrdma: Add FRMR get/put services\n  NLM: Remove unused argument from svc_addsock() function\n  NLM: Remove \"proto\" argument from lockd_up()\n  NLM: Always start both UDP and TCP listeners\n  lockd: Remove unused fields in the nlm_reboot structure\n  lockd: Add helper to sanity check incoming NOTIFY requests\n  lockd: change nlmclnt_grant() to take a \"struct sockaddr *\"\n  lockd: Adjust nlmsvc_lookup_host() to accomodate AF_INET6 addresses\n  lockd: Adjust nlmclnt_lookup_host() signature to accomodate non-AF_INET\n  lockd: Support non-AF_INET addresses in nlm_lookup_host()\n  NLM: Convert nlm_lookup_host() to use a single argument\n  svcrdma: Add Fast Reg MR Data Types\n  ...\n"
    },
    {
      "commit": "d4a8c93c8248534bdedb07f83c9aebd6f7d1d579",
      "tree": "f978a7b36d515c29657f271ca5b70281c911a82f",
      "parents": [
        "5e0b3dec0107540244ba343f983ef4f972db20de"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:34 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:58:22 2008 -0700"
      },
      "message": "ocfs2: Make cached block reads the common case.\n\nocfs2_read_blocks() currently requires the CACHED flag for cached I/O.\nHowever, that\u0027s the common case.  Let\u0027s flip it around and provide an\nIGNORE_CACHE flag for the special users.  This has the added benefit of\ncleaning up the code some (ignore_cache takes on its special meaning\nearlier in the loop).\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "5e0b3dec0107540244ba343f983ef4f972db20de",
      "tree": "b279c196c84abc01b61fcd70ec7aaa7f6e74e78b",
      "parents": [
        "07446dc72cffcc6e2672d0e54061dcd1858725ba"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:33 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:58:11 2008 -0700"
      },
      "message": "ocfs2: Kill the last naked wait_on_buffer() for cached reads.\n\nocfs2\u0027s cached buffer I/O goes through ocfs2_read_block(s)().  dir.c had\na naked wait_on_buffer() to wait for some readahead, but it should\nuse ocfs2_read_block() instead.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "07446dc72cffcc6e2672d0e54061dcd1858725ba",
      "tree": "43ac4e257d6300b2bf767a953a8e2138e6894c18",
      "parents": [
        "0fcaa56a2a020dd6f90c202b7084e6f4cbedb6c2"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:32 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:58:03 2008 -0700"
      },
      "message": "ocfs2: Move ocfs2_bread() into dir.c\n\ndir.c is the only place using ocfs2_bread(), so let\u0027s make it static to\nthat file.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0fcaa56a2a020dd6f90c202b7084e6f4cbedb6c2",
      "tree": "057204016523ce0274d4a23ec02944075f084e8c",
      "parents": [
        "31d33073ca38603dea705dae45e094a64ca062d6"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:31 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:51:57 2008 -0700"
      },
      "message": "ocfs2: Simplify ocfs2_read_block()\n\nMore than 30 callers of ocfs2_read_block() pass exactly OCFS2_BH_CACHED.\nOnly six pass a different flag set.  Rather than have every caller care,\nlet\u0027s make ocfs2_read_block() take no flags and always do a cached read.\nThe remaining six places can call ocfs2_read_blocks() directly.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "31d33073ca38603dea705dae45e094a64ca062d6",
      "tree": "cf02beb489456ebc9e07bace80e96ad1150f2cbf",
      "parents": [
        "da1e90985a0e767e44397c9db0937e236033fa58"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:30 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:43:29 2008 -0700"
      },
      "message": "ocfs2: Require an inode for ocfs2_read_block(s)().\n\nNow that synchronous readers are using ocfs2_read_blocks_sync(), all\ncallers of ocfs2_read_blocks() are passing an inode.  Use it\nunconditionally.  Since it\u0027s there, we don\u0027t need to pass the\nocfs2_super either.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "da1e90985a0e767e44397c9db0937e236033fa58",
      "tree": "88d16dd378bf1b180d345a87de95316546af348a",
      "parents": [
        "936b8834366ec05f2a6993f73afd8348cac9718e"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:29 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:29:10 2008 -0700"
      },
      "message": "ocfs2: Separate out sync reads from ocfs2_read_blocks()\n\nThe ocfs2_read_blocks() function currently handles sync reads, cached,\nreads, and sometimes cached reads.  We\u0027re going to add some\nfunctionality to it, so first we should simplify it.  The uncached,\nsynchronous reads are much easer to handle as a separate function, so we\ninstroduce ocfs2_read_blocks_sync().\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "936b8834366ec05f2a6993f73afd8348cac9718e",
      "tree": "6f1d4b4e7586599bd11ff92a88a751aa78ce1a4b",
      "parents": [
        "2057e5c6780d86939a199031cdbafb81e6f88aac"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Oct 09 23:06:14 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:45 2008 -0700"
      },
      "message": "ocfs2: Refactor xattr list and remove ocfs2_xattr_handler().\n\nAccording to Christoph Hellwig\u0027s advice, we really don\u0027t need\na -\u003elist to handle one xattr\u0027s list. Just a map from index to\nxattr prefix is enough. And I also refactor the old list method\nwith the reference from fs/xfs/linux-2.6/xfs_xattr.c and the\nxattr list method in btrfs.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "2057e5c6780d86939a199031cdbafb81e6f88aac",
      "tree": "f36039ea7d491f44215a880b03f37c1644bb4f41",
      "parents": [
        "99219aea68b5bff4f182858372b43181ad3bdb34"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Oct 09 23:06:13 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Calculate EA hash only by its suffix.\n\nAccording to Christoph Hellwig\u0027s advice, the hash value of EA\nis only calculated by its suffix.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "99219aea68b5bff4f182858372b43181ad3bdb34",
      "tree": "fbe3c16322ecc658e2c432dc7700bb1b19d00d54",
      "parents": [
        "40daa16a3441abe822bfcc748150116a77aee2ea"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 14:52:59 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Move trusted and user attribute support into xattr.c\n\nPer Christoph Hellwig\u0027s suggestion - don\u0027t split these up. It\u0027s not like we\ngained much by having the two tiny files around.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "40daa16a3441abe822bfcc748150116a77aee2ea",
      "tree": "218d2966a03e9ed1afd3ae2945389f781fa229ce",
      "parents": [
        "a81cb88b64a479b78c6dd5666678d50171865db8"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 14:31:42 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Uninline ocfs2_xattr_name_hash()\n\nThis is too big to be inlined.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a81cb88b64a479b78c6dd5666678d50171865db8",
      "tree": "9fe0f67e30d7c70d43785827e57736ac01558c24",
      "parents": [
        "fd8351f83d413b41da956109cf429c15881886e2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 14:25:16 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Don\u0027t check for NULL before brelse()\n\nThis is pointless as brelse() already does the check.\n\nSigned-off-by: Mark Fasheh\n"
    },
    {
      "commit": "fd8351f83d413b41da956109cf429c15881886e2",
      "tree": "86557f75dd1ab2f3b1ed7d8cda479d09f2e2372d",
      "parents": [
        "696b55d768ea5ebf38a369da615f8c956750ab3f"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 12:50:46 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: use smaller counters in ocfs2_remove_xattr_clusters_from_cache\n\ni and b_len don\u0027t really need to be u64\u0027s. Xattr extent lengths should be\nlimited by the VFS, and then the size of our on-disk length field.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4cc8124584610fbe087ea2bed29ca52d2d0aa84a",
      "tree": "4d1da0e72b6161ba3a321ff4533ca2f1a8511adf",
      "parents": [
        "009d37502a7b9fc89741e66b4454afca4edc1c26"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 11:02:04 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: make la_debug_mutex static\n\nIt can also be moved into ocfs2_la_debug_read().\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "009d37502a7b9fc89741e66b4454afca4edc1c26",
      "tree": "5baff62529735bf9e1a0d72108fe3183876de18e",
      "parents": [
        "5a09561199e7f8d3feaaa01c39372050e140b775"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 06 16:16:08 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Remove pointless !!\n\nocfs2_stack_supports_plocks() doesn\u0027t need this to properly return a zero or\none value.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "5a09561199e7f8d3feaaa01c39372050e140b775",
      "tree": "5affae979a564bae543e81d70abc58015ce44f80",
      "parents": [
        "06b240d8af21ddee4cfec3b0f02b81d9f168a98a"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Sep 19 22:17:41 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:43 2008 -0700"
      },
      "message": "ocfs2: Add empty bucket support in xattr.\n\nAs Mark mentioned, it may be time-consuming when we remove the\nempty xattr bucket, so this patch try to let empty bucket exist\nin xattr operation. The modification includes:\n1. Remove the functin of bucket and extent record deletion during\n   xattr delete.\n2. In xattr set:\n   1) Don\u0027t clean the last entry so that if the bucket is empty,\n      the hash value of the bucket is the hash value of the entry\n      which is deleted last.\n   2) During insert, if we meet with an empty bucket, just use the\n      1st entry.\n3. In binary search of xattr bucket, use the bucket hash value(which\n   stored in the 1st xattr entry) to find the right place.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "06b240d8af21ddee4cfec3b0f02b81d9f168a98a",
      "tree": "eb725cc51e755252b17efb235db4c9d9adeb7469",
      "parents": [
        "b0f73cfc36ed62decdd3f78e943bbfd00ee80e49"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Sep 19 22:16:34 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:43 2008 -0700"
      },
      "message": "ocfs2/xattr.c: Fix a bug when inserting xattr.\n\nDuring the process of xatt insertion, we use binary search\nto find the right place and \"low\" is set to it. But when\nthere is one xattr which has the same name hash as the inserted\none, low is the wrong value. So set it to the right position.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "b0f73cfc36ed62decdd3f78e943bbfd00ee80e49",
      "tree": "66449d0a071b68774edc85e17d09af737d4b83d6",
      "parents": [
        "2b4e30fbde425828b17f0e9c8f8e3fd3ecb2bc75"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Fri Sep 05 11:29:14 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:43 2008 -0700"
      },
      "message": "ocfs2: Add xattr mount option in ocfs2_show_options()\n\nPatch adds check for [no]user_xattr in ocfs2_show_options() that completes\nthe list of all mount options.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "2b4e30fbde425828b17f0e9c8f8e3fd3ecb2bc75",
      "tree": "5b340cde72e058b51642f0c7255818f62014bc91",
      "parents": [
        "12462f1d9f0b96389497438dc2730c6f7410be82"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 03 20:03:41 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:43 2008 -0700"
      },
      "message": "ocfs2: Switch over to JBD2.\n\nocfs2 wants JBD2 for many reasons, not the least of which is that JBD is\nlimiting our maximum filesystem size.\n\nIt\u0027s a pretty trivial change.  Most functions are just renamed.  The\nonly functional change is moving to Jan\u0027s inode-based ordered data mode.\nIt\u0027s better, too.\n\nBecause JBD2 reads and writes JBD journals, this is compatible with any\nexisting filesystem.  It can even interact with JBD-based ocfs2 as long\nas the journal is formated for JBD.\n\nWe provide a compatibility option so that paranoid people can still use\nJBD for the time being.  This will go away shortly.\n\n[ Moved call of ocfs2_begin_ordered_truncate() from ocfs2_delete_inode() to\n  ocfs2_truncate_for_delete(). --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "12462f1d9f0b96389497438dc2730c6f7410be82",
      "tree": "d96dec791dd45cc8901dc6a894bdbe96ad7e7c67",
      "parents": [
        "1187c968852e3c668f3b9376083851f81f6eee22"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 03 20:03:40 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:08 2008 -0700"
      },
      "message": "ocfs2: Add the \u0027inode64\u0027 mount option.\n\nNow that ocfs2 limits inode numbers to 32bits, add a mount option to\ndisable the limit.  This parallels XFS.  64bit systems can handle the\nlarger inode numbers.\n\n[ Added description of inode64 mount option in ocfs2.txt. --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1187c968852e3c668f3b9376083851f81f6eee22",
      "tree": "23a34ab89f724cc015f9e4f6e8bc6ed0fc20ce51",
      "parents": [
        "08413899db89d8d636c2a2d4ba5c356ab587d7ef"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 03 20:03:39 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:07 2008 -0700"
      },
      "message": "ocfs2: Limit inode allocation to 32bits.\n\nocfs2 inode numbers are block numbers.  For any filesystem with less\nthan 2^32 blocks, this is not a problem.  However, when ocfs2 starts\nusing JDB2, it will be able to support filesystems with more than 2^32\nblocks.  This would result in inode numbers higher than 2^32.\n\nThe problem is that stat(2) can\u0027t handle those numbers on 32bit\nmachines.  The simple solution is to have ocfs2 allocate all inodes\nbelow that boundary.\n\nThe suballoc code is changed to honor an optional block limit.  Only the\ninode suballocator sets that limit - all other allocations stay unlimited.\n\nThe biggest trick is to grow the inode suballocator beneath that limit.\nThere\u0027s no point in allocating block groups that are above the limit,\nthen rejecting their elements later on.  We want to prevent the inode\nallocator from ever having block groups above the limit.  This involves\na little gyration with the local alloc code.  If the local alloc window\nis above the limit, it signals the caller to try the global bitmap but\ndoes not disable the local alloc file (which can be used for other\nallocations).\n\n[ Minor cleanup - removed an ML_NOTICE comment. --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "08413899db89d8d636c2a2d4ba5c356ab587d7ef",
      "tree": "82e65ffa9b0b30d0206259ae99e0fbc8db667936",
      "parents": [
        "28b8ca0b7f70b1b048d03dc0b9d87f58619e9791"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Aug 29 09:00:19 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:06 2008 -0700"
      },
      "message": "ocfs2: Resolve deadlock in ocfs2_xattr_free_block.\n\nIn ocfs2_xattr_free_block, we take a cluster lock on xb_alloc_inode while we\nhave a transaction open. This will deadlock the downconvert thread, so fix\nit.\n\nWe can clean up how xattr blocks are removed while here - this patch also\nmoves the mechanism of releasing xattr block (including both value, xattr\ntree and xattr block) into this function.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "28b8ca0b7f70b1b048d03dc0b9d87f58619e9791",
      "tree": "24e581b6bc0d8a71c528b3f15b081712714e291e",
      "parents": [
        "8d6220d6a74a33552cf877bcea25503d7f6a59e6"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Sep 01 08:45:18 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:06 2008 -0700"
      },
      "message": "ocfs2: bug-fix for journal extend in xattr.\n\nIn ocfs2_extend_trans, when we can\u0027t extend the current\ntransaction, it will commit current transaction and restart\na new one. So if the previous credits we have allocated aren\u0027t\nused(the block isn\u0027t dirtied before our extend), we will not\nhave enough credits for any future operation(it will cause jbd\ncomplain and bug out). So check this and re-extend it.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8d6220d6a74a33552cf877bcea25503d7f6a59e6",
      "tree": "2c3f662c55ab4a0a22989c06edf0d027387bfbed",
      "parents": [
        "1625f8ac151743e452ec062c2989669c508ffa48"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Aug 22 12:46:09 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:05 2008 -0700"
      },
      "message": "ocfs2: Change ocfs2_get_*_extent_tree() to ocfs2_init_*_extent_tree()\n\nThe original get/put_extent_tree() functions held a reference on\net_root_bh.  However, every single caller already has a safe reference,\nmaking the get/put cycle irrelevant.\n\nWe change ocfs2_get_*_extent_tree() to ocfs2_init_*_extent_tree().  It\nno longer gets a reference on et_root_bh.  ocfs2_put_extent_tree() is\nremoved.  Callers now have a simpler init+use pattern.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1625f8ac151743e452ec062c2989669c508ffa48",
      "tree": "0da18fe83c3c0153c33ed1ad5903e4ae08e2fb6e",
      "parents": [
        "f99b9b7ccf6a691f653cec45f36bfdd1e94769c7"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Aug 21 17:11:10 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:05 2008 -0700"
      },
      "message": "ocfs2: Comment struct ocfs2_extent_tree_operations.\n\nstruct ocfs2_extent_tree_operations provides methods for the different\non-disk btrees in ocfs2.  Describing what those methods do is probably a\ngood idea.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "f99b9b7ccf6a691f653cec45f36bfdd1e94769c7",
      "tree": "1c6ff6ea1fa1bb86b70f1fd78dd725b559c729e4",
      "parents": [
        "1e61ee79e2a96f62c007486677319814ce621c3c"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 19:36:33 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:05 2008 -0700"
      },
      "message": "ocfs2: Make ocfs2_extent_tree the first-class representation of a tree.\n\nWe now have three different kinds of extent trees in ocfs2: inode data\n(dinode), extended attributes (xattr_tree), and extended attribute\nvalues (xattr_value).  There is a nice abstraction for them,\nocfs2_extent_tree, but it is hidden in alloc.c.  All the calling\nfunctions have to pick amongst a varied API and pass in type bits and\noften extraneous pointers.\n\nA better way is to make ocfs2_extent_tree a first-class object.\nEveryone converts their object to an ocfs2_extent_tree() via the\nocfs2_get_*_extent_tree() calls, then uses the ocfs2_extent_tree for all\ntree calls to alloc.c.\n\nThis simplifies a lot of callers, making for readability.  It also\nprovides an easy way to add additional extent tree types, as they only\nneed to be defined in alloc.c with a ocfs2_get_\u003cnew\u003e_extent_tree()\nfunction.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1e61ee79e2a96f62c007486677319814ce621c3c",
      "tree": "50e966441431ec036649dac3ebd17d1452937f26",
      "parents": [
        "1a09f556e5415a29cdddaf9a6ebf474194161cf3"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 18:32:45 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:05 2008 -0700"
      },
      "message": "ocfs2: Add an insertion check to ocfs2_extent_tree_operations.\n\nA couple places check an extent_tree for a valid inode.  We move that\nout to add an eo_insert_check() operation.  It can be called from\nocfs2_insert_extent() and elsewhere.\n\nWe also have the wrapper calls ocfs2_et_insert_check() and\nocfs2_et_sanity_check() ignore NULL ops.  That way we don\u0027t have to\nprovide useless operations for xattr types.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1a09f556e5415a29cdddaf9a6ebf474194161cf3",
      "tree": "902dc5cc4719ffce151c610b3441baa3511aa50e",
      "parents": [
        "943cced39ee45ed2db25efd25eee8ba49cf2dfc4"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 17:44:24 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:05 2008 -0700"
      },
      "message": "ocfs2: Create specific get_extent_tree functions.\n\nA caller knows what kind of extent tree they have.  There\u0027s no reason\nthey have to call ocfs2_get_extent_tree() with a NULL when they could\njust as easily call a specific function to their type of extent tree.\n\nIntroduce ocfs2_dinode_get_extent_tree(),\nocfs2_xattr_tree_get_extent_tree(), and\nocfs2_xattr_value_get_extent_tree().  They only take the necessary\narguments, calling into the underlying __ocfs2_get_extent_tree() to do\nthe real work.\n\n__ocfs2_get_extent_tree() is the old ocfs2_get_extent_tree(), but\nwithout needing any switch-by-type logic.\n\nocfs2_get_extent_tree() is now a wrapper around the specific calls.  It\nexists because a couple alloc.c functions can take et_type.  This will\ngo later.\n\nAnother benefit is that ocfs2_xattr_value_get_extent_tree() can take a\nstruct ocfs2_xattr_value_root* instead of void*.  This gives us\ntypechecking where we didn\u0027t have it before.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "943cced39ee45ed2db25efd25eee8ba49cf2dfc4",
      "tree": "a06ce33db4a9b918c98e38a434e7060b32255e6d",
      "parents": [
        "1c25d93a4a27c90c3ae33f9e724f7b67783d68d1"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 17:31:10 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Determine an extent tree\u0027s max_leaf_clusters in an et_op.\n\nProvide an optional extent_tree_operation to specify the\nmax_leaf_clusters of an ocfs2_extent_tree.  If not provided, the value\nis 0 (unlimited).\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1c25d93a4a27c90c3ae33f9e724f7b67783d68d1",
      "tree": "d62c9b19fae527770939748566ce3a31ce0bce53",
      "parents": [
        "0ce1010f1a4319e02574b856d50dfdc0ed855f40"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 17:09:42 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Use struct ocfs2_extent_tree in ocfs2_num_free_extents().\n\nocfs2_num_free_extents() re-implements the logic of\nocfs2_get_extent_tree().  Now that ocfs2_get_extent_tree() does not\nallocate, let\u0027s use it in ocfs2_num_free_extents() to simplify the code.\n\nThe inode validation code in ocfs2_num_free_extents() is not needed.\nAll callers are passing in pre-validated inodes.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0ce1010f1a4319e02574b856d50dfdc0ed855f40",
      "tree": "6d65e00caa9c4c5310fd4f51a07678d46803adfd",
      "parents": [
        "ea5efa151265a743f48e3d371992a0100d73a0eb"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 17:19:50 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Provide the get_root_el() method to ocfs2_extent_tree_operations.\n\nThe root_el of an ocfs2_extent_tree needs to be calculated from\net-\u003eet_object.  Make it an operation on et-\u003eet_ops.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ea5efa151265a743f48e3d371992a0100d73a0eb",
      "tree": "5e3688b0882271210b524564f5b6b42e2813f32c",
      "parents": [
        "dc0ce61af418305afa7e0d05d86ab334e0daabf7"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 16:57:27 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Make \u0027private\u0027 into \u0027object\u0027 on ocfs2_extent_tree.\n\nThe \u0027private\u0027 pointer was a way to store off xattr values, which don\u0027t\nlive at a set place in the bh.  But the concept of \"the object\ncontaining the extent tree\" is much more generic.  For an inode it\u0027s the\nstruct ocfs2_dinode, for an xattr value its the value.  Let\u0027s save off\nthe \u0027object\u0027 at all times.  If NULL is passed to\nocfs2_get_extent_tree(), \u0027object\u0027 is set to bh-\u003eb_data;\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "dc0ce61af418305afa7e0d05d86ab334e0daabf7",
      "tree": "7122bafdcb29a77cd65e34a600d3df76b9e165fe",
      "parents": [
        "ce1d9ea621291ed5e985d6677278c6bb20d96a40"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 16:48:35 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Make ocfs2_extent_tree get/put instead of alloc.\n\nRather than allocating a struct ocfs2_extent_tree, just put it on the\nstack.  Fill it with ocfs2_get_extent_tree() and drop it with\nocfs2_put_extent_tree().  Now the callers don\u0027t have to ENOMEM, yet\nstill safely ref the root_bh.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ce1d9ea621291ed5e985d6677278c6bb20d96a40",
      "tree": "5bd40bdd327745ab0e91fb181752062306147135",
      "parents": [
        "35dc0aa3c5e7391319754e0c19cdfc0a28eb5b25"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 16:30:07 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Prefix the ocfs2_extent_tree structure.\n\nThe members of the ocfs2_extent_tree structure gain a prefix of \u0027et_\u0027.\nAll users are updated.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "35dc0aa3c5e7391319754e0c19cdfc0a28eb5b25",
      "tree": "709fc00742bbcf9fc8941e0fe61845a22bb5a73b",
      "parents": [
        "ff1ec20ef65d51cc3466e86912cdeaac16f3aaa0"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 16:25:06 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:04 2008 -0700"
      },
      "message": "ocfs2: Prefix the extent tree operations structure.\n\nThe ocfs2_extent_tree_operations structure gains a field prefix on its\nmembers.  The -\u003eeo_sanity_check() operation gains a wrapper function for\ncompleteness.  All of the extent tree operation wrappers gain a\nconsistent name (ocfs2_et_*()).\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ff1ec20ef65d51cc3466e86912cdeaac16f3aaa0",
      "tree": "2c5859e0f8e502ede6110397062208afe0641ad6",
      "parents": [
        "8154da3d2114241cf3edb108b43e2172be86d483"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Aug 19 10:54:29 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: fix printk format warnings\n\nThis patch fixes the following build warnings:\n\nfs/ocfs2/xattr.c: In function \u0027ocfs2_half_xattr_bucket\u0027:\nfs/ocfs2/xattr.c:3282: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 7 has type \u0027long int\u0027\nfs/ocfs2/xattr.c:3282: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 8 has type \u0027long int\u0027\nfs/ocfs2/xattr.c:3282: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 7 has type \u0027long int\u0027\nfs/ocfs2/xattr.c:3282: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 8 has type \u0027long int\u0027\nfs/ocfs2/xattr.c:3282: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 7 has type \u0027long int\u0027\nfs/ocfs2/xattr.c:3282: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 8 has type \u0027long int\u0027\nfs/ocfs2/xattr.c: In function \u0027ocfs2_xattr_set_entry_in_bucket\u0027:\nfs/ocfs2/xattr.c:4092: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 6 has type \u0027size_t\u0027\nfs/ocfs2/xattr.c:4092: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 6 has type \u0027size_t\u0027\nfs/ocfs2/xattr.c:4092: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 6 has type \u0027size_t\u0027\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8154da3d2114241cf3edb108b43e2172be86d483",
      "tree": "a6d1c1652469d9a34b50dbdab4a435376bf3f32c",
      "parents": [
        "a394425643e1e9c3a624d629fc8ba5633d8474c6"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Mon Aug 18 17:11:46 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Add incompatible flag for extended attribute\n\nThis patch adds the s_incompat flag for extended attribute support. This\nhelps us ensure that older versions of Ocfs2 or ocfs2-tools will not be able\nto mount a volume with xattr support.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a394425643e1e9c3a624d629fc8ba5633d8474c6",
      "tree": "bf7ae7087452f22530448070cbccee921ba985ef",
      "parents": [
        "012255961c9ecfe22b7a1df47ac26ab37818cb1e"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:54 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Delete all xattr buckets during inode removal\n\nIn inode removal, we need to iterate all the buckets, remove any\nexternally-stored EA values and delete the xattr buckets.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "012255961c9ecfe22b7a1df47ac26ab37818cb1e",
      "tree": "914d2a1f58734f44389bdae6e47b555ec8f81c12",
      "parents": [
        "ca12b7c48942d21b2e7890b820db9d578bc291cd"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:53 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Enable xattr set in index btree\n\nWhere the previous patches added the ability of list/get xattr in buckets\nfor ocfs2, this patch enables ocfs2 to store large numbers of EAs.\n\nThe original design doc is written by Mark Fasheh, and it can be found in\nhttp://oss.oracle.com/osswiki/OCFS2/DesignDocs/IndexedEATrees. I only had to\nmake small modifications to it.\n\nFirst, because the bucket size is 4K, a new field named xh_free_start is added\nin ocfs2_xattr_header to indicate the next valid name/value offset in a bucket.\nIt is used when we store new EA name/value. With this field, we can find the\nplace more quickly and what\u0027s more, we don\u0027t need to sort the name/value every\ntime to let the last entry indicate the next unused space. This makes the\ninsert operation more efficient for blocksizes smaller than 4k.\n\nBecause of the new xh_free_start, another field named as xh_name_value_len is\nalso added in ocfs2_xattr_header. It records the total length of all the\nname/values in the bucket. We need this so that we can check it and defragment\nthe bucket if there is not enough contiguous free space.\n\nAn xattr insertion looks like this:\n1. xattr_index_block_find: find the right bucket by the name_hash, say bucketA.\n2. check whether there is enough space in bucketA. If yes, insert it directly\n   and modify xh_free_start and xh_name_value_len accordingly. If not, check\n   xh_name_value_len to see whether we can store this by defragment the bucket.\n   If yes, defragment it and go on insertion.\n3. If defragement doesn\u0027t work, check whether there is new empty bucket in\n   the clusters within this extent record. If yes, init the new bucket and move\n   all the buckets after bucketA one by one to the next bucket. Move half of the\n   entries in bucketA to the next bucket and go on insertion.\n4. If there is no new bucket, grow the extent tree.\n\nAs for xattr deletion, we will delete an xattr bucket when all it\u0027s xattrs\nare removed and move all the buckets after it to the previous one. When all\nthe xattr buckets in an extend record are freed, free this extend records\nfrom ocfs2_xattr_tree.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ca12b7c48942d21b2e7890b820db9d578bc291cd",
      "tree": "e051e6ceb77a05db7dd1d749d7f3f1682c69196c",
      "parents": [
        "589dc2602f2a1b7fa5e59b90f548af189f128d77"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:52 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Optionally limit extent size in ocfs2_insert_extent()\n\nIn xattr bucket, we want to limit the maximum size of a btree leaf,\notherwise we\u0027ll lose the benefits of hashing because we\u0027ll have to search\nlarge leaves.\n\nSo add a new field in ocfs2_extent_tree which indicates the maximum leaf cluster\nsize we want so that we can prevent ocfs2_insert_extent() from merging the leaf\nrecord even if it is contiguous with an adjacent record.\n\nOther btree types are not affected by this change.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "589dc2602f2a1b7fa5e59b90f548af189f128d77",
      "tree": "0a87e16146aa06c72de8db0aed1215c8be72b5fc",
      "parents": [
        "0c044f0b24b9128ba8c297149d88bd81f2e36af3"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:51 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Add xattr lookup code xattr btrees\n\nAdd code to lookup a given extended attribute in the xattr btree. Lookup\nfollows this general scheme:\n\n1. Use ocfs2_xattr_get_rec to find the xattr extent record\n\n2. Find the xattr bucket within the extent which may contain this xattr\n\n3. Iterate the bucket to find the xattr. In ocfs2_xattr_block_get(), we need\n   to recalcuate the block offset and name offset for the right position of\n   name/value.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0c044f0b24b9128ba8c297149d88bd81f2e36af3",
      "tree": "2a0d6a34fca5e5a8bdfde0d1068cb56d4252e864",
      "parents": [
        "ba492615f0d32d0210b02c14b24512b4372b13d6"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:50 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Add xattr bucket iteration for large numbers of EAs\n\nOcfs2 breaks up xattr index tree leaves into 4k regions, called buckets.\nAttributes are stored within a given bucket, depending on hash value.\n\nAfter a discussion with Mark, we decided that the per-bucket index\n(xe_entry[]) would only exist in the 1st block of a bucket. Likewise,\nname/value pairs will not straddle more than one block. This allows the\nmajority of operations to work directly on the buffer heads in a leaf block.\n\nThis patch adds code to iterate the buckets in an EA. A new abstration of\nocfs2_xattr_bucket is added. It records the bhs in this bucket and\nocfs2_xattr_header. This keeps the code neat, improving readibility.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ba492615f0d32d0210b02c14b24512b4372b13d6",
      "tree": "65275171ba8543a497037c5a159701a06277af4b",
      "parents": [
        "cf1d6c763fbcb115263114302485ad17e7933d87"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:49 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:02 2008 -0700"
      },
      "message": "ocfs2: Add xattr index tree operations\n\nWhen necessary, an ocfs2_xattr_block will embed an ocfs2_extent_list to\nstore large numbers of EAs. This patch adds a new type in\nocfs2_extent_tree_type and adds the implementation so that we can re-use the\nb-tree code to handle the storage of many EAs.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "cf1d6c763fbcb115263114302485ad17e7933d87",
      "tree": "85717dc9d20b7ac1e31b683653933f2d30099f44",
      "parents": [
        "fdd77704a8b4666a32120fcd1e4a9fedaf3263d8"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Mon Aug 18 17:11:00 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:02 2008 -0700"
      },
      "message": "ocfs2: Add extended attribute support\n\nThis patch implements storing extended attributes both in inode or a single\nexternal block. We only store EA\u0027s in-inode when blocksize \u003e 512 or that\ninode block has free space for it. When an EA\u0027s value is larger than 80\nbytes, we will store the value via b-tree outside inode or block.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "fdd77704a8b4666a32120fcd1e4a9fedaf3263d8",
      "tree": "bfc7ba78487c5c6287354b2b07ee4042bff566bc",
      "parents": [
        "f56654c435c06f2b2bd5751889b1a08a3add7d6c"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Mon Aug 18 17:08:55 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:02 2008 -0700"
      },
      "message": "ocfs2: reserve inline space for extended attribute\n\nAdd the structures and helper functions we want for handling inline extended\nattributes. We also update the inline-data handlers so that they properly\nfunction in the event that we have both inline data and inline attributes\nsharing an inode block.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "f56654c435c06f2b2bd5751889b1a08a3add7d6c",
      "tree": "b186d68aedc5dda7afe435f5a68c03937ae382ff",
      "parents": [
        "ac11c827192272eabb68b8f4cf844066461d9690"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:48 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:01 2008 -0700"
      },
      "message": "ocfs2: Add extent tree operation for xattr value btrees\n\nAdd some thin wrappers around ocfs2_insert_extent() for each of the 3\ndifferent btree types, ocfs2_inode_insert_extent(),\nocfs2_xattr_value_insert_extent() and ocfs2_xattr_tree_insert_extent(). The\nlast is for the xattr index btree, which will be used in a followup patch.\n\nAll the old callers in file.c etc will call ocfs2_dinode_insert_extent(),\nwhile the other two handle the xattr issue. And the init of extent tree are\nhandled by these functions.\n\nWhen storing xattr value which is too large, we will allocate some clusters\nfor it and here ocfs2_extent_list and ocfs2_extent_rec will also be used. In\norder to re-use the b-tree operation code, a new parameter named \"private\"\nis added into ocfs2_extent_tree and it is used to indicate the root of\nocfs2_exent_list. The reason is that we can\u0027t deduce the root from the\nbuffer_head now. It may be in an inode, an ocfs2_xattr_block or even worse,\nin any place in an ocfs2_xattr_bucket.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ac11c827192272eabb68b8f4cf844066461d9690",
      "tree": "cd96822f16199879a203d30a4957f7d191c8659d",
      "parents": [
        "5a7bc8eb29b8c759df374d97b6189e03d4ea71c5"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:47 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:59 2008 -0700"
      },
      "message": "ocfs2: Add helper function in uptodate.c for removing xattr clusters\n\nThe old uptodate only handles the issue of removing one buffer_head from\nocfs2 inode\u0027s buffer cache. With xattr clusters, we may need to remove\nmultiple buffer_head\u0027s at a time.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "5a7bc8eb29b8c759df374d97b6189e03d4ea71c5",
      "tree": "9356d290dccd0afbb1b0e1f183c49bda843df052",
      "parents": [
        "0eb8d47e69a2211a36643b180f1843ef45f6017d"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:46 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:59 2008 -0700"
      },
      "message": "ocfs2: Add the basic xattr disk layout in ocfs2_fs.h\n\nOcfs2 uses a very flexible structure for storing extended attributes on\ndisk. Small amount of attributes are stored directly in the inode block - up\nto 256 bytes worth. If that fills up, attributes are also stored in an\nexternal block, linked to from the inode block. That block can in turn\nexpand to a btree, capable of storing large numbers of attributes.\n\nIndividual attribute values are stored inline if they\u0027re small enough\n(currently about 80 bytes, this can be changed though), and otherwise are\nexpanded to a btree. The theoretical limit to the size of an individual\nattribute is about the same as an inode, though the kernel\u0027s upper bound on\nthe size of an attributes data is far smaller.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0eb8d47e69a2211a36643b180f1843ef45f6017d",
      "tree": "745a063238cbcf6af84644bd51d4bfcd592e06a1",
      "parents": [
        "e7d4cb6bc19658646357eeff134645cd9bc3479f"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:45 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:59 2008 -0700"
      },
      "message": "ocfs2: Make high level btree extend code generic\n\nFactor out the non-inode specifics of ocfs2_do_extend_allocation() into a more generic\nfunction, ocfs2_do_cluster_allocation(). ocfs2_do_extend_allocation calls\nocfs2_do_cluster_allocation() now, but the latter can be used for other\nbtree types as well.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e7d4cb6bc19658646357eeff134645cd9bc3479f",
      "tree": "4e24321e5c28fb90dffa1f396972fddb3c458e58",
      "parents": [
        "811f933df1e55615fd0bb4818f31e3868a8e6e23"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:44 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:58 2008 -0700"
      },
      "message": "ocfs2: Abstract ocfs2_extent_tree in b-tree operations.\n\nIn the old extent tree operation, we take the hypothesis that we\nare using the ocfs2_extent_list in ocfs2_dinode as the tree root.\nAs xattr will also use ocfs2_extent_list to store large value\nfor a xattr entry, we refactor the tree operation so that xattr\ncan use it directly.\n\nThe refactoring includes 4 steps:\n1. Abstract set/get of last_eb_blk and update_clusters since they may\n   be stored in different location for dinode and xattr.\n2. Add a new structure named ocfs2_extent_tree to indicate the\n   extent tree the operation will work on.\n3. Remove all the use of fe_bh and di, use root_bh and root_el in\n   extent tree instead. So now all the fe_bh is replaced with\n   et-\u003eroot_bh, el with root_el accordingly.\n4. Make ocfs2_lock_allocators generic. Now it is limited to be only used\n   in file extend allocation. But the whole function is useful when we want\n   to store large EAs.\n\nNote: This patch doesn\u0027t touch ocfs2_commit_truncate() since it is not used\nfor anything other than truncate inode data btrees.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "811f933df1e55615fd0bb4818f31e3868a8e6e23",
      "tree": "53335e59bdff02d7ddb3a2ec15d36239fe50003d",
      "parents": [
        "231b87d10920e024efaf0f9e86e1bab7bced1620"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:43 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:58 2008 -0700"
      },
      "message": "ocfs2: Use ocfs2_extent_list instead of ocfs2_dinode.\n\nocfs2_extend_meta_needed(), ocfs2_calc_extend_credits() and\nocfs2_reserve_new_metadata() are all useful for extent tree operations. But\nthey are all limited to an inode btree because they use a struct\nocfs2_dinode parameter. Change their parameter to struct ocfs2_extent_list\n(the part of an ocfs2_dinode they actually use) so that the xattr btree code\ncan use these functions.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "231b87d10920e024efaf0f9e86e1bab7bced1620",
      "tree": "00283dfb9e4a7054576be8a073635dc51bdc4e22",
      "parents": [
        "9a8ff578fb430a8816dfbc73c77e5e09c6d9c343"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:42 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:58 2008 -0700"
      },
      "message": "ocfs2: Modify ocfs2_num_free_extents for future xattr usage.\n\nocfs2_num_free_extents() is used to find the number of free extent records\nin an inode btree. Hence, it takes an \"ocfs2_dinode\" parameter. We want to\nuse this for extended attribute trees in the future, so genericize the\ninterface the take a buffer head. A future patch will allow that buffer_head\nto contain any structure rooting an ocfs2 btree.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9a8ff578fb430a8816dfbc73c77e5e09c6d9c343",
      "tree": "be97f570b59a4af8fbf0c4c054619193155aaaa6",
      "parents": [
        "9c7af40b210e87f8fddd97b0badc0a352862234a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Jul 29 18:29:18 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:58 2008 -0700"
      },
      "message": "ocfs2: track local alloc state via debugfs\n\nA per-mount debugfs file, \"local_alloc\" is created which when read will\nexpose live state of the nodes local alloc file. Performance impact is\nminimal, only a bit of memory overhead per mount point. Still, the code is\nhidden behind CONFIG_OCFS2_FS_STATS. This feature will help us debug\nlocal alloc performance problems on a live system.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9c7af40b210e87f8fddd97b0badc0a352862234a",
      "tree": "deb248e5295439b96ad9bd1789e8512f93803142",
      "parents": [
        "ebcee4b5c9136096f64ee6f691a013d7c0a4bc34"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 28 18:02:53 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:57 2008 -0700"
      },
      "message": "ocfs2: throttle back local alloc when low on disk space\n\nOcfs2\u0027s local allocator disables itself for the duration of a mount point\nwhen it has trouble allocating a large enough area from the primary bitmap.\nThat can cause performance problems, especially for disks which were only\ntemporarily full or fragmented. This patch allows for the allocator to\nshrink it\u0027s window first, before being disabled. Later, it can also be\nre-enabled so that any performance drop is minimized.\n\nTo do this, we allow the value of osb-\u003elocal_alloc_bits to be shrunk when\nneeded. The default value is recorded in a mostly read-only variable so that\nwe can re-initialize when required.\n\nLocking had to be updated so that we could protect changes to\nlocal_alloc_bits. Mostly this involves protecting various local alloc values\nwith the osb spinlock. A new state is also added, OCFS2_LA_THROTTLED, which\nis used when the local allocator is has shrunk, but is not disabled. If the\navailable space dips below 1 megabyte, the local alloc file is disabled. In\neither case, local alloc is re-enabled 30 seconds after the event, or when\nan appropriate amount of bits is seen in the primary bitmap.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ebcee4b5c9136096f64ee6f691a013d7c0a4bc34",
      "tree": "cb28c9135559a8f5aaf4c61b9d39f9c4ce733b55",
      "parents": [
        "53da4939f349d4edd283b043219221ca5b78e4d4"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 28 14:55:20 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:57 2008 -0700"
      },
      "message": "ocfs2: Track local alloc bits internally\n\nDo this instead of tracking absolute local alloc size. This avoids\nneedless re-calculatiion of bits from bytes in localalloc.c. Additionally,\nthe value is now in a more natural unit for internal file system bitmap\nwork.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "53da4939f349d4edd283b043219221ca5b78e4d4",
      "tree": "3e0f8e1bd5474822431cffd1e449df9b639e1772",
      "parents": [
        "a447c0932445f92ce6f4c1bd020f62c5097a7842"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 21 14:29:16 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:57 2008 -0700"
      },
      "message": "ocfs2: POSIX file locks support\n\nThis is actually pretty easy since fs/dlm already handles the bulk of the\nwork. The Ocfs2 userspace cluster stack module already uses fs/dlm as the\nunderlying lock manager, so I only had to add the right calls.\n\nCluster-aware POSIX locks (\"plocks\") can be turned off by the same means at\nUNIX locks - mount with \u0027noflocks\u0027, or create a local-only Ocfs2 volume.\nInternally, the file system uses two sets of file_operations, depending on\nwhether cluster aware plocks is required. This turns out to be easier than\nimplementing local-only versions of -\u003elock.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a447c0932445f92ce6f4c1bd020f62c5097a7842",
      "tree": "bacf05bc7f9764515cdd6f7dc5e2254776b4f160",
      "parents": [
        "54cebc68c81eacac41a21bdfe99dc889d3882c60"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 13 10:46:57 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:10:37 2008 -0700"
      },
      "message": "vfs: Use const for kernel parser table\n\nThis is a much better version of a previous patch to make the parser\ntables constant. Rather than changing the typedef, we put the \"const\" in\nall the various places where its required, allowing the __initconst\nexception for nfsroot which was the cause of the previous trouble.\n\nThis was posted for review some time ago and I believe its been in -mm\nsince then.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Alexander Viro \u003caviro@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20272c8994cf1e1f8ed745a2ea161dd9ad3889f2",
      "tree": "96b1bf44be94e7e85bb2bf5b2b87a4dbd452ecde",
      "parents": [
        "8d71ff0bef9cf4e70108a9a2762f2361e607abde",
        "3bbfe0596746e1590888a6e1e6a07583265238b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:04:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:04:04 2008 -0700"
      },
      "message": "Merge branch \u0027proc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc\n\n* \u0027proc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc:\n  proc: remove kernel.maps_protect\n  proc: remove now unneeded ADDBUF macro\n  [PATCH] proc: show personality via /proc/pid/personality\n  [PATCH] signal, procfs: some lock_task_sighand() users do not need rcu_read_lock()\n  proc: move PROC_PAGE_MONITOR to fs/proc/Kconfig\n  proc: make grab_header() static\n  proc: remove unused get_dma_list()\n  proc: remove dummy vmcore_open()\n  proc: proc_sys_root tweak\n  proc: fix return value of proc_reg_open() in \"too late\" case\n\nFixed up trivial conflict in removed file arch/sparc/include/asm/dma_32.h\n"
    },
    {
      "commit": "8d71ff0bef9cf4e70108a9a2762f2361e607abde",
      "tree": "a79487fceb6ec18e956373a3019416a43b269f1d",
      "parents": [
        "244dc4e54b73567fae7f8fd9ba56584be9375442",
        "92562927826fceb2f8e69c89e28161b8c1e0b125"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:00:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:00:44 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (24 commits)\n  integrity: special fs magic\n  As pointed out by Jonathan Corbet, the timer must be deleted before\n  ERROR: code indent should use tabs where possible\n  The tpm_dev_release function is only called for platform devices, not pnp\n  Protect tpm_chip_list when transversing it.\n  Renames num_open to is_open, as only one process can open the file at a time.\n  Remove the BKL calls from the TPM driver, which were added in the overall\n  netlabel: Add configuration support for local labeling\n  cipso: Add support for native local labeling and fixup mapping names\n  netlabel: Changes to the NetLabel security attributes to allow LSMs to pass full contexts\n  selinux: Cache NetLabel secattrs in the socket\u0027s security struct\n  selinux: Set socket NetLabel based on connection endpoint\n  netlabel: Add functionality to set the security attributes of a packet\n  netlabel: Add network address selectors to the NetLabel/LSM domain mapping\n  netlabel: Add a generic way to create ordered linked lists of network addrs\n  netlabel: Replace protocol/NetLabel linking with refrerence counts\n  smack: Fix missing calls to netlbl_skbuff_err()\n  selinux: Fix missing calls to netlbl_skbuff_err()\n  selinux: Fix a problem in security_netlbl_sid_to_secattr()\n  selinux: Better local/forward check in selinux_ip_postroute()\n  ...\n"
    },
    {
      "commit": "244dc4e54b73567fae7f8fd9ba56584be9375442",
      "tree": "c7b47b122fde55c92f7f32797aef1e3e1c7030d1",
      "parents": [
        "e7f2f9918c0e97aa98ba147ca387e2c7238f0711",
        "e758936e02700ff88a0b08b722a3847b95283ef2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:59:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:59:14 2008 -0700"
      },
      "message": "Merge git://git.infradead.org/users/dwmw2/random-2.6\n\n* git://git.infradead.org/users/dwmw2/random-2.6:\n  Fix autoloading of MacBook Pro backlight driver.\n  Automatic MODULE_ALIAS() for DMI match tables.\n  Remove asm/a.out.h files for all architectures without a.out support.\n  Introduce HAVE_AOUT symbol to remove hard-coded arch list for BINFMT_AOUT\n  Remove redundant CONFIG_ARCH_SUPPORTS_AOUT\n  S390: Update comments about why we don\u0027t use \u003casm-generic/statfs.h\u003e\n  SPARC: Use \u003casm-generic/statfs.h\u003e\n  PowerPC: Use \u003casm-generic/statfs.h\u003e\n  PARISC: Use \u003casm-generic/statfs.h\u003e\n  x86_64: Use \u003casm-generic/statfs.h\u003e\n  IA64: Use \u003casm-generic/statfs.h\u003e\n  ARM: Use \u003casm-generic/statfs.h\u003e\n  Make \u003casm-generic/statfs.h\u003e suitable for 64-bit platforms.\n  Define and use PCI_DEVICE_ID_MARVELL_88ALP01_CCIC for CAFÉ camera driver\n  [MTD] [NAND] Define and use PCI_DEVICE_ID_MARVELL_88ALP01_NAND for CAFÉ\n  Use PCI_DEVICE_ID_88ALP01 for CAFÉ chip, rather than PCI_DEVICE_ID_CAFE.\n  EFS: Don\u0027t set f_fsid in statfs().\n"
    },
    {
      "commit": "a6f37daa8b892fd29dd71be0de61460a478cb122",
      "tree": "158010784c65dc0183b62551058ae0ed0fa2e887",
      "parents": [
        "89a52e109e2e2fe8bbd4e316cdb910774519c029"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Mon Oct 13 10:43:27 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:43 2008 -0700"
      },
      "message": "Simplify devpts_pty_kill\n\nWhen creating a new pty, save the pty\u0027s inode in the tty-\u003edriver_data.\nUse this inode in pty_kill() to identify the devpts instance. Since\nwe now have the inode for the pty, we can skip get_node() lookup and\nremove the unused get_node().\n\nTODO:\n\t- check if the mutex_lock is needed in pty_kill().\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89a52e109e2e2fe8bbd4e316cdb910774519c029",
      "tree": "5e469fcbfe109216ea1e046377c00b439b558bdd",
      "parents": [
        "527b3e4773628b30d03323a2cb5fb0d84441990f"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Mon Oct 13 10:43:18 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:43 2008 -0700"
      },
      "message": "Simplify devpts_pty_new()\n\ndevpts_pty_new() is called when setting up a new pty and would not\nwill not have an existing dentry or inode for the pty. So don\u0027t bother\nlooking for an existing dentry - just create a new one.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "527b3e4773628b30d03323a2cb5fb0d84441990f",
      "tree": "d7dfcc1b716881162d93bf24ade602a77ca171ac",
      "parents": [
        "15f1a6338ddd4e69fff965d4b3a0e1bfb7a13d9c"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Mon Oct 13 10:43:08 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:43 2008 -0700"
      },
      "message": "Simplify devpts_get_tty()\n\nAs pointed out by H. Peter Anvin, since the inode for the pty is known,\nwe don\u0027t need to look it up.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "15f1a6338ddd4e69fff965d4b3a0e1bfb7a13d9c",
      "tree": "301eea94cb514dc12b5070fc4b3ab33d3aab4322",
      "parents": [
        "4a2b5fddd53b80efcb3266ee36e23b8de28e761a"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Mon Oct 13 10:42:59 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:43 2008 -0700"
      },
      "message": "Add an instance parameter devpts interfaces\n\nPass-in \u0027inode\u0027 or \u0027tty\u0027 parameter to devpts interfaces.  With multiple\ndevpts instances, these parameters will be used in subsequent patches\nto identify the instance of devpts mounted. The parameters also help\nsimplify devpts implementation.\n\nChangelog[v3]:\n\t- minor changes due to merge with ttydev updates\n\t- rename parameters to emphasize they are ptmx or pts inodes\n\t- pass-in tty_struct * to devpts_pty_kill() (this will help\n\t  cleanup the get_node() call in a subsequent patch)\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "934e6ebf96e8c1a0f299e64129fdaebc1132a427",
      "tree": "ab4bd754997b097f06a5cfefd9e3671d56e628f4",
      "parents": [
        "2cb5998b5f0ccc886fdda3509059eef297b49577"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:40:43 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:41 2008 -0700"
      },
      "message": "tty: Redo current tty locking\n\nCurrently it is sometimes locked by the tty mutex and sometimes by the\nsighand lock. The latter is in fact correct and now we can hand back referenced\nobjects we can fix this up without problems around sleeping functions.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2cb5998b5f0ccc886fdda3509059eef297b49577",
      "tree": "9113731d3f892c2e164bfd05a7cf1a4b1713a619",
      "parents": [
        "216ba023a96c04e8d3aabf83d5931c35b6e2dbbb"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:40:30 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:41 2008 -0700"
      },
      "message": "tty: the vhangup syscall is racy\n\nWe now have the infrastructure to sort this out but rather than teaching\nthe syscall tty lock rules we move the hard work into a tty helper\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "452a00d2ee288f2cbc36f676edd06cb14d2878c1",
      "tree": "c8251c73924a6ac9b174bc557357bfeff0c8d1a8",
      "parents": [
        "f4d2a6c2096b764decb20070b1bf4356de9144a8"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:39:13 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:41 2008 -0700"
      },
      "message": "tty: Make get_current_tty use a kref\n\nWe now return a kref covered tty reference. That ensures the tty structure\ndoesn\u0027t go away when you have a return from get_current_tty. This is not\nenough to protect you from most of the resources being freed behind your\nback - yet.\n\n[Updated to include fixes for SELinux problems found by Andrew Morton and\n an s390 leak found while debugging the former]\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e758936e02700ff88a0b08b722a3847b95283ef2",
      "tree": "50c919bef1b459a778b85159d5929de95b6c4a01",
      "parents": [
        "239cfbde1f5843c4a24199f117d5f67f637d72d5",
        "4480f15b3306f43bbb0310d461142b4e897ca45b"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Oct 13 17:13:56 2008 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Oct 13 17:13:56 2008 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tinclude/asm-x86/statfs.h\n"
    },
    {
      "commit": "3280fb313911a80b13de52d9fe37f39668f2138e",
      "tree": "6903a275ab00172a88cf51ab1d570e4a3e1a286b",
      "parents": [
        "f1b2a5ace996de339292d4035f9f5b294aecd11e",
        "f319fb8bf6899e08bdb8d1e09a4e7a129dfa2312"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 12 16:10:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 12 16:10:29 2008 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: fix kconfig typo and extra whitespace\n  ext4: fix build failure without procfs\n  ext4: add an option to control error handling on file data\n  jbd2: don\u0027t dirty original metadata buffer on abort\n  ext4: add checks for errors from jbd2\n  jbd2: fix error handling for checkpoint io\n  jbd2: abort when failed to log metadata buffers\n"
    },
    {
      "commit": "92562927826fceb2f8e69c89e28161b8c1e0b125",
      "tree": "e44f22406ea4d3753a4834feed7e7d271da28ab8",
      "parents": [
        "93db628658197aa46bd7f83d429908b6f187ec9c"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue Oct 07 14:00:12 2008 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Oct 13 09:47:43 2008 +1100"
      },
      "message": "integrity: special fs magic\n\nDiscussion on the mailing list questioned the use of these\nmagic values in userspace, concluding these values are already\nexported to userspace via statfs and their correct/incorrect\nusage is left up to the userspace application.\n\n  - Move special fs magic number definitions to magic.h\n  - Add magic.h include\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "f319fb8bf6899e08bdb8d1e09a4e7a129dfa2312",
      "tree": "c54494adb7a698bf914bc882c79bd01cfb1120c3",
      "parents": [
        "3244fcb1ae03362e4aa8cb1a9039fbfd61661859"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Sun Oct 12 15:53:01 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 12 15:53:01 2008 -0400"
      },
      "message": "ext4: fix kconfig typo and extra whitespace\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "3244fcb1ae03362e4aa8cb1a9039fbfd61661859",
      "tree": "fa46eff0dff3a9a046917bdb0c8ec3b2fef807f4",
      "parents": [
        "5bf5683a33f3584da6eced480967c4f7e11515a8"
      ],
      "author": {
        "name": "Alexander Beregalov",
        "email": "a.beregalov@gmail.com",
        "time": "Sun Oct 12 17:27:49 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 12 17:27:49 2008 -0400"
      },
      "message": "ext4: fix build failure without procfs\n\nfs/ext4/super.c: In function \u0027ext4_fill_super\u0027:\nfs/ext4/super.c:2226: error: \u0027ext4_ui_proc_fops\u0027 undeclared (first use\nin this function)\nfs/ext4/super.c:2226: error: (Each undeclared identifier is reported\nonly once\nfs/ext4/super.c:2226: error: for each function it appears in.)\n\nSigned-off-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "f1b2a5ace996de339292d4035f9f5b294aecd11e",
      "tree": "3bd8144cf1b60e80d33295885b0fe572070e8b52",
      "parents": [
        "5e4c5f4c64902870552d4c15325d9e7d1a39884d",
        "14835a3325c1f84c3ae6eaf81102a3917e84809e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 12 12:42:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 12 12:42:36 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  [CIFS] cifs: remove pointless lock and unlock of GlobalMid_Lock in header_assemble\n"
    },
    {
      "commit": "06270d5d6aefb46b88bf44a7c5b1b9b3ef352c48",
      "tree": "61ddb0c8a8634aefb317d45073acf1563e6e6df0",
      "parents": [
        "0dab9cfa17179d1f5b067a32a3bca06cd31a3149"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sun Oct 12 07:15:19 2008 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 12 11:44:37 2008 -0700"
      },
      "message": "provide generic_block_fiemap() only with BLOCK\u003dy\n\nThis fixes the following compile error with CONFIG_BLOCK\u003dn caused by\ncommit 68c9d702bb72f367f3b148963ec6cf5e07ff7f65 (\"generic block based\nfiemap implementation\"):\n\n    CC      fs/ioctl.o\n  fs/ioctl.c: In function \u0027generic_block_fiemap\u0027:\n  fs/ioctl.c:249: error: storage size of \u0027tmp\u0027 isn\u0027t known\n  fs/ioctl.c:272: error: invalid application of \u0027sizeof\u0027 to incomplete type \u0027struct buffer_head\u0027\n  fs/ioctl.c:280: error: implicit declaration of function \u0027buffer_mapped\u0027\n  fs/ioctl.c:249: warning: unused variable \u0027tmp\u0027\n  make[2]: *** [fs/ioctl.o] Error 1\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14835a3325c1f84c3ae6eaf81102a3917e84809e",
      "tree": "1ea764174a676ef68af15fb6fed4b71874eea845",
      "parents": [
        "fd048088306656824958e7783ffcee27e241b361"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sun Oct 12 13:34:11 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sun Oct 12 13:34:11 2008 +0000"
      },
      "message": "[CIFS] cifs: remove pointless lock and unlock of GlobalMid_Lock in header_assemble\n\nWe lock GlobalMid_Lock in header_assemble and then immediately unlock it\nagain without doing anything. Not sure what this was intended to do, but\nremove it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "fd048088306656824958e7783ffcee27e241b361",
      "tree": "be11bebe3bbd2cac88ff27bd3c7450339d21bdc7",
      "parents": [
        "5c3c4d9b5810c9aabd8c05219c62ca088aa83eb0",
        "03010a3350301baac2154fa66de925ae2981b7e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 11 13:23:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 11 13:23:48 2008 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (43 commits)\n  ext4: Rename ext4dev to ext4\n  ext4: Avoid double dirtying of super block in ext4_put_super()\n  Update ext4 MAINTAINERS file\n  Hook ext4 to the vfs fiemap interface.\n  generic block based fiemap implementation\n  ocfs2: fiemap support\n  vfs: vfs-level fiemap interface\n  ext4: fix xattr deadlock\n  jbd2: Fix buffer head leak when writing the commit block\n  ext4: Add debugging markers that can be used by systemtap\n  jbd2: abort instead of waiting for nonexistent transaction\n  ext4: fix initialization of UNINIT bitmap blocks\n  ext4: Remove old legacy block allocator\n  ext4: Use readahead when reading an inode from the inode table\n  ext4: Improve the documentation for ext4\u0027s /proc tunables\n  ext4: Combine proc file handling into a single set of functions\n  ext4: move /proc setup and teardown out of mballoc.c\n  ext4: Don\u0027t use \u0027struct dentry\u0027 for internal lookups\n  ext4/jbd2: Avoid WARN() messages when failing to write to the superblock\n  ext4: use percpu data structures for lg_prealloc_list\n  ...\n"
    },
    {
      "commit": "86ed5a93b8b56e4e0877b914af0e10883a196384",
      "tree": "761c3db8250c54eb07c6e4a02ca7f93f044928b3",
      "parents": [
        "835a1c092432b3293ba6c4dec45ee6869c6f61fd",
        "b77d753c413e02559669df66e543869dad40c847"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 11 09:31:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 11 09:31:53 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  [CIFS] Check that last search entry resume key is valid\n  [CIFS] make sure we have the right resume info before calling CIFSFindNext\n  [CIFS]  clean up error handling in cifs_unlink\n  [CIFS] fix some settings of cifsAttrs after calling SetFileInfo and SetPathInfo\n  cifs: explicitly revoke SPNEGO key after session setup\n  cifs: Convert cifs to new aops.\n  [CIFS] update DOS attributes in cifsInode if we successfully changed them\n  cifs: remove NULL termination from rename target in CIFSSMBRenameOpenFIle\n  cifs: work around samba returning -ENOENT on SetFileDisposition call\n  cifs: fix inverted NULL check after kmalloc\n  [CIFS] clean up upcall handling for dns_resolver keys\n  [CIFS]  fix busy-file renames and refactor cifs_rename logic\n  cifs: add function to set file disposition\n  [CIFS] add constants for string lengths of keynames in SPNEGO upcall string\n  cifs: move rename and delete-on-close logic into helper function\n  cifs: have find_writeable_file prefer filehandles opened by same task\n  cifs: don\u0027t use GFP_KERNEL with GFP_NOFS\n  [CIFS] use common code for turning off ATTR_READONLY in cifs_unlink\n  cifs: clean up variables in cifs_unlink\n"
    },
    {
      "commit": "5bf5683a33f3584da6eced480967c4f7e11515a8",
      "tree": "4986ba3932d9f259fa1bc674deff3e35f689b243",
      "parents": [
        "7ad7445f60fe4d46c4c9d2a9463db180d2a3b270"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Fri Oct 10 22:12:43 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 22:12:43 2008 -0400"
      },
      "message": "ext4: add an option to control error handling on file data\n\nIf the journal doesn\u0027t abort when it gets an IO error in file data\nblocks, the file data corruption will spread silently.  Because\nmost of applications and commands do buffered writes without fsync(),\nthey don\u0027t notice the IO error.  It\u0027s scary for mission critical\nsystems.  On the other hand, if the journal aborts whenever it gets\nan IO error in file data blocks, the system will easily become\ninoperable.  So this patch introduces a filesystem option to\ndetermine whether it aborts the journal or just call printk() when\nit gets an IO error in file data.\n\nIf you mount an ext4 fs with data_err\u003dabort option, it aborts on file\ndata write error.  If you mount it with data_err\u003dignore, it doesn\u0027t\nabort, just call printk().  data_err\u003dignore is the default.\n\nHere is the corresponding patch of the ext3 version:\nhttp://kerneltrap.org/mailarchive/linux-kernel/2008/9/9/3239374\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "7ad7445f60fe4d46c4c9d2a9463db180d2a3b270",
      "tree": "cd4e0f69f90664e5ca4185271fbacbb7b4f59491",
      "parents": [
        "7ffe1ea8949c75ecffb7a4d988bb881a9fa62fbe"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Fri Oct 10 20:29:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:29:31 2008 -0400"
      },
      "message": "jbd2: don\u0027t dirty original metadata buffer on abort\n\nCurrently, original metadata buffers are dirtied when they are\nunfiled whether the journal has aborted or not.  Eventually these\nbuffers will be written-back to the filesystem by pdflush.  This\nmeans some metadata buffers are written to the filesystem without\njournaling if the journal aborts.  So if both journal abort and\nsystem crash happen at the same time, the filesystem would become\ninconsistent state.  Additionally, replaying journaled metadata\ncan overwrite the latest metadata on the filesystem partly.\nBecause, if the journal gets aborted, journaled metadata are\npreserved and replayed during the next mount not to lose\nuncheckpointed metadata.  This would also break the consistency\nof the filesystem.\n\nThis patch prevents original metadata buffers from being dirtied\non abort by clearing BH_JBDDirty flag from those buffers.  Thus,\nno metadata buffers are written to the filesystem without journaling.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "7ffe1ea8949c75ecffb7a4d988bb881a9fa62fbe",
      "tree": "42dc4e7dd16a33ba4c9b74cda41934e1fe27beb5",
      "parents": [
        "44519faf22ad6ce924ad0352d3dc200d9e0b66e8"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Fri Oct 10 20:29:21 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:29:21 2008 -0400"
      },
      "message": "ext4: add checks for errors from jbd2\n\nIf the journal has aborted due to a checkpointing failure, we\nhave to keep the contents of the journal space.  Otherwise, the\nfilesystem will lose uncheckpointed metadata completely and\nbecome inconsistent.  To avoid this, we need to keep needs_recovery\nflag if checkpoint has failed.\n\nWith this patch, ext4_put_super() detects a checkpointing failure\nfrom the return value of journal_destroy(), then it invokes\next4_abort() to make the filesystem read only and keep\nneeds_recovery flag.  Errors from jbd2_journal_flush() are also\nhandled by this patch in some places.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "44519faf22ad6ce924ad0352d3dc200d9e0b66e8",
      "tree": "332dd28cf16439fc4c78ad198e04c12ff7c16e66",
      "parents": [
        "77e841de8abac4755cc83ca224fdf71418d65380"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Fri Oct 10 20:29:13 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:29:13 2008 -0400"
      },
      "message": "jbd2: fix error handling for checkpoint io\n\nWhen a checkpointing IO fails, current JBD2 code doesn\u0027t check the\nerror and continue journaling.  This means latest metadata can be\nlost from both the journal and filesystem.\n\nThis patch leaves the failed metadata blocks in the journal space\nand aborts journaling in the case of jbd2_log_do_checkpoint().\nTo achieve this, we need to do:\n\n1. don\u0027t remove the failed buffer from the checkpoint list where in\n   the case of __try_to_free_cp_buf() because it may be released or\n   overwritten by a later transaction\n2. jbd2_log_do_checkpoint() is the last chance, remove the failed\n   buffer from the checkpoint list and abort the journal\n3. when checkpointing fails, don\u0027t update the journal super block to\n   prevent the journaled contents from being cleaned.  For safety,\n   don\u0027t update j_tail and j_tail_sequence either\n4. when checkpointing fails, notify this error to the ext4 layer so\n   that ext4 don\u0027t clear the needs_recovery flag, otherwise the\n   journaled contents are ignored and cleaned in the recovery phase\n5. if the recovery fails, keep the needs_recovery flag\n6. prevent jbd2_cleanup_journal_tail() from being called between\n   __jbd2_journal_drop_transaction() and jbd2_journal_abort()\n   (a possible race issue between jbd2_log_do_checkpoint()s called by\n   jbd2_journal_flush() and __jbd2_log_wait_for_space())\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "77e841de8abac4755cc83ca224fdf71418d65380",
      "tree": "937694b6bfb13b2ef6e154e8ab25f5f7200159fb",
      "parents": [
        "fd048088306656824958e7783ffcee27e241b361"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Sun Oct 12 16:39:16 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 12 16:39:16 2008 -0400"
      },
      "message": "jbd2: abort when failed to log metadata buffers\n\nIf we failed to write metadata buffers to the journal space and\nsucceeded to write the commit record, stale data can be written\nback to the filesystem as metadata in the recovery phase.\n\nTo avoid this, when we failed to write out metadata buffers,\nabort the journal before writing the commit record.\n\nWe can also avoid this kind of corruption by using the journal\nchecksum feature because it can detect invalid metadata blocks in the\njournal and avoid them from being replayed.  So we don\u0027t need to care\nabout asynchronous commit record writeout with a checksum.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "03010a3350301baac2154fa66de925ae2981b7e3",
      "tree": "b1af2cecbb540faab4bd67dc1a28ad3384341d72",
      "parents": [
        "39d80c33a068d9fa63a36c3b2c0d718d38440dd1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:02:48 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:02:48 2008 -0400"
      },
      "message": "ext4: Rename ext4dev to ext4\n\nThe ext4 filesystem is getting stable enough that it\u0027s time to drop\nthe \"dev\" prefix.  Also remove the requirement for the TEST_FILESYS\nflag.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "13dd7f876dffb44088c5435c3df1986e33cff960",
      "tree": "c9043429452663661dc888e1cbafa87bd2a62f44",
      "parents": [
        "b0af205afb111e17ac8db64c3b9c4f2c332de92a",
        "27eccf46491e1f77f9af9bbe0778122ce6882890"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 11:13:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 11:13:55 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: choose better identifiers\n  dlm: remove bkl\n  dlm: fix address compare\n  dlm: fix locking of lockspace list in dlm_scand\n  dlm: detect available userspace daemon\n  dlm: allow multiple lockspace creates\n"
    },
    {
      "commit": "73f6aa4d44ab6157badc456ddfa05b31e58de5f0",
      "tree": "77543df806dbeda22ce245d2d04b3831fce40f4f",
      "parents": [
        "445e1ceda377a681c6f53595311b0d654ca21003"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 10 17:28:29 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 11:08:07 2008 -0700"
      },
      "message": "Fix barrier fail detection in XFS\n\nCurrently we disable barriers as soon as we get a buffer in xlog_iodone\nthat has the XBF_ORDERED flag cleared.  But this can be the case not only\nfor buffers where the barrier failed, but also the first buffer of a\nsplit log write in case of a log wraparound.  Due to the disabled\nbarriers we can easily get directory corruption on unclean shutdowns.\nSo instead of using this check add a new buffer flag for failed barrier\nwrites.\n\nThis is a regression vs 2.6.26 caused by patch to use the right macro\nto check for the ORDERED flag, as we previously got true returned for\nevery buffer.\n\nThanks to Toei Rei for reporting the bug.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: David Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Tim Shimmin \u003ctes@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "445e1ceda377a681c6f53595311b0d654ca21003",
      "tree": "f3298bd926e67d33944992a485a05374f592bef1",
      "parents": [
        "ef5bef357cdf49f3a386c7102dbf3be5f7e5c913",
        "254db57f9b12daba841a4d91ddb9a8161e9c74ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 11:02:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 11:02:22 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw:\n  GFS2: Support for I/O barriers\n  GFS2: Add UUID to GFS2 sb\n  GFS2: high time to take some time over atime\n  GFS2: The war on bloat\n  GFS2: GFS2 will panic if you misspell any mount options\n  GFS2: Direct IO write at end of file error\n  GFS2: Use an IS_ERR test rather than a NULL test\n  GFS2: Fix race relating to glock min-hold time\n  GFS2: Fix \u0026 clean up GFS2 rename\n  GFS2: rm on multiple nodes causes panic\n  GFS2: Fix metafs mounts\n  GFS2: Fix debugfs glock file iterator\n"
    },
    {
      "commit": "e26feff647ef34423b048b940540a0059001ddb0",
      "tree": "acafe68602ee2f6f1a438c113073ffcc0040e949",
      "parents": [
        "d403a6484f0341bf0624d17ece46f24f741b6a92",
        "b911e473d24633c19414b54b82b9ff0b1a2419d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 10:52:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 10:52:45 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.28\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.28\u0027 of git://git.kernel.dk/linux-2.6-block: (132 commits)\n  doc/cdrom: Trvial documentation error, file not present\n  block_dev: fix kernel-doc in new functions\n  block: add some comments around the bio read-write flags\n  block: mark bio_split_pool static\n  block: Find bio sector offset given idx and offset\n  block: gendisk integrity wrapper\n  block: Switch blk_integrity_compare from bdev to gendisk\n  block: Fix double put in blk_integrity_unregister\n  block: Introduce integrity data ownership flag\n  block: revert part of d7533ad0e132f92e75c1b2eb7c26387b25a583c1\n  bio.h: Remove unused conditional code\n  block: remove end_{queued|dequeued}_request()\n  block: change elevator to use __blk_end_request()\n  gdrom: change to use __blk_end_request()\n  memstick: change to use __blk_end_request()\n  virtio_blk: change to use __blk_end_request()\n  blktrace: use BLKTRACE_BDEV_SIZE as the name size for setup structure\n  block: add lld busy state exporting interface\n  block: Fix blk_start_queueing() to not kick a stopped queue\n  include blktrace_api.h in headers_install\n  ...\n"
    },
    {
      "commit": "3bbfe0596746e1590888a6e1e6a07583265238b7",
      "tree": "057d3d2aa8cb68eff8c944378e86ba120eff9cf4",
      "parents": [
        "45acb8db06bad529f0feaf89465ce33152640089"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 10 03:27:16 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 10 04:24:51 2008 +0400"
      },
      "message": "proc: remove kernel.maps_protect\n\nAfter commit 831830b5a2b5d413407adf380ef62fe17d6fcbf2 aka\n\"restrict reading from /proc/\u003cpid\u003e/maps to those who share -\u003emm or can ptrace\"\nsysctl stopped being relevant because commit moved security checks from -\u003eshow\ntime to -\u003estart time (mm_for_maps()).\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Kees Cook \u003ckees.cook@canonical.com\u003e\n"
    },
    {
      "commit": "45acb8db06bad529f0feaf89465ce33152640089",
      "tree": "f6b899d124b70a0a2cb8b760566b8cf883d9abf7",
      "parents": [
        "478307230810d7e2a753ed220db9066dfdf88718"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Oct 07 01:58:45 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 10 04:18:58 2008 +0400"
      },
      "message": "proc: remove now unneeded ADDBUF macro\n\nAfter local seq_file conversion it was forgotten.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "478307230810d7e2a753ed220db9066dfdf88718",
      "tree": "7cb8bfebc5a0a7c043bdfda5675ddb526da1af34",
      "parents": [
        "a6bebbc87a8c16eabb6bd5c6fd2d994be0236fba"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees.cook@canonical.com",
        "time": "Mon Oct 06 03:11:58 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 10 04:18:57 2008 +0400"
      },
      "message": "[PATCH] proc: show personality via /proc/pid/personality\n\nMake process personality flags visible in /proc.  Since a process\u0027s\npersonality is potentially sensitive (e.g. READ_IMPLIES_EXEC), make this\nfile only readable by the process owner.\n\nSigned-off-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "a6bebbc87a8c16eabb6bd5c6fd2d994be0236fba",
      "tree": "3e617ca49063f3a12c982da5d6c687882a1b4070",
      "parents": [
        "53167a3ef23df561d898dee636f3393e9fba937c"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sun Oct 05 00:51:15 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 10 04:18:57 2008 +0400"
      },
      "message": "[PATCH] signal, procfs: some lock_task_sighand() users do not need rcu_read_lock()\n\nlock_task_sighand() make sure task-\u003esighand is being protected,\nso we do not need rcu_read_lock().\n[ exec() will get task-\u003esighand-\u003esiglock before change task-\u003esighand! ]\n\nBut code using rcu_read_lock() _just_ to protect lock_task_sighand()\nonly appear in procfs. (and some code in procfs use lock_task_sighand()\nwithout such redundant protection.)\n\nOther subsystem may put lock_task_sighand() into rcu_read_lock()\ncritical region, but these rcu_read_lock() are used for protecting\n\"for_each_process()\", \"find_task_by_vpid()\" etc. , not for protecting\nlock_task_sighand().\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n[ok from Oleg]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "53167a3ef23df561d898dee636f3393e9fba937c",
      "tree": "1619560ee2db5dc3d43e1f53dd4188fd849fd98f",
      "parents": [
        "81324364b76eba592255d4b712e522f9fd8d25f4"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 03 02:01:51 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 10 04:18:57 2008 +0400"
      },
      "message": "proc: move PROC_PAGE_MONITOR to fs/proc/Kconfig\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "81324364b76eba592255d4b712e522f9fd8d25f4",
      "tree": "97d34d9776843086706f88eab9296534ad5511ec",
      "parents": [
        "a70973c2141f98e2046f7ce9a29774bf254cf70f"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Oct 03 00:33:54 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 10 04:18:56 2008 +0400"
      },
      "message": "proc: make grab_header() static\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "a70973c2141f98e2046f7ce9a29774bf254cf70f",
      "tree": "36f5ffd3a1fbcf111ab456405e9d86d9c29d770d",
      "parents": [
        "a04f4de6412a4f0ababf9f665674414f26d4cb6e"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 03 00:31:19 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 10 04:18:56 2008 +0400"
      },
      "message": "proc: remove unused get_dma_list()\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    }
  ],
  "next": "a04f4de6412a4f0ababf9f665674414f26d4cb6e"
}
