)]}'
{
  "log": [
    {
      "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": "54cebc68c81eacac41a21bdfe99dc889d3882c60",
      "tree": "da1d3872c6ddf208768e784bd1ea09054a81462d",
      "parents": [
        "fffdedef691a0f6fa7ca1fc0a2a508cbb49def69",
        "71de1f8a6365ea65346881e526132563d93696d1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:08:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:08:43 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (60 commits)\n  Blackfin arch: make sure we include the fix for SPORT hysteresis when reprogramming clocks\n  Blackfin arch: Fix bogus str_ident check in gpio code\n  Blackfin arch: AD7879 Touchscreen driver\n  Blackfin arch: introducing bfin_addr_dcachable\n  Blackfin arch: fix a typo in comments\n  Blackfin arch: Remove useless head file\n  Blackfin arch: make sure L2 start and length are always defined (fixes building on BF542)\n  Blackfin arch: use the Blackfin on-chip ROM to do software reset when possible\n  Blackfin arch: update anomaly headers to match the latest sheet\n  Blackfin arch: bfin_reset() is an internal reboot function ... everyone should go through machine_restart()\n  Blackfin arch: print out error/warning if you are running on the incorrect CPU type\n  Blackfin arch: remove non-bf54x ifdef logic since this file is only compiled on bf54x parts\n  Blackfin arch: update board defconfigs\n  Blackfin arch: Add optional verbose debug\n  Blackfin arch: emulate a TTY over the EMUDAT/JTAG interface\n  Blackfin arch: have is_user_addr_valid() check for overflows (like when address is -1)\n  Blackfin arch: ptrace - fix off-by-one check on end of memory regions\n  Blackfin arch: Enable framebuffer support for the BF526-EZkit TFT LCD display\n  Blackfin arch: flash memory map and dm9000 resources updating\n  Blackfin arch: early prink code still use uart core console functions to parse and set configure option string\n  ...\n"
    },
    {
      "commit": "fffdedef691a0f6fa7ca1fc0a2a508cbb49def69",
      "tree": "124b128308a4d35bab0ac8001da4b324d40220eb",
      "parents": [
        "5723ff931a94acf0738df42604ee89f852e151b0",
        "bf94e17bc8d35fc339945a42990a2f2b5e9b5a40"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:08:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:08:08 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  net/mac80211/rx.c: fix build error\n  acpi: Make ACPI_TOSHIBA depend on INPUT.\n  net/bfin_mac.c MDIO namespace fixes\n  jme: remove unused #include \u003cversion.h\u003e\n  netfilter: remove unused #include \u003cversion.h\u003e\n  net: Fix off-by-one in skb_dma_map\n  smc911x: Add support for LAN921{5,7,8} chips from SMSC\n  qlge: remove duplicated #include\n  wireless: remove duplicated #include\n  net/au1000_eth.c MDIO namespace fixes\n  net/tc35815.c: fix compilation\n  sky2: Fix WOL regression\n  r8169: NULL pointer dereference on r8169 load\n"
    },
    {
      "commit": "5723ff931a94acf0738df42604ee89f852e151b0",
      "tree": "99be1b14cd5f2b5e987773a9271627b746f84a4b",
      "parents": [
        "be3bfbba8f7f6c8f32e8444ef895433701a3f801",
        "615c9136b385d5225d3ece20aa30b28a90c438d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:07:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:07:53 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:\n  chmc: Mark %ver register inline asm with __volatile__\n  sparc64: Add missing notify_cpu_starting() call.\n  sparc32: fix build errors\n"
    },
    {
      "commit": "be3bfbba8f7f6c8f32e8444ef895433701a3f801",
      "tree": "dfd00be7d15dbf8353f188f2505426411cb18d06",
      "parents": [
        "20272c8994cf1e1f8ed745a2ea161dd9ad3889f2",
        "7dc85076f83253fcffae99e6d5e6ce77840f8841"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:06:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:06:58 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (33 commits)\n  ALSA: ASoC codec: remove unused #include \u003cversion.h\u003e\n  ALSA: ASoC: update email address for Liam Girdwood\n  ALSA: hda: corrected invalid mixer values\n  ALSA: hda: add mixers for analog mixer on 92hd75xx codecs\n  ALSA: ASoC: Add destination and source port for DMA on OMAP1\n  ALSA: ASoC: Drop device registration from GTA01 lm4857 driver\n  ALSA: ASoC: Fix build of GTA01 audio driver\n  ALSA: ASoC: Add widgets before setting endpoints on GTA01\n  ALSA: ASoC: Fix inverted input PGA mute bits in WM8903\n  ALSA: ASoC: OMAP: Set DMA stream name at runtime in McBSP DAI driver\n  ALSA: ASoC: OMAP: Add support for OMAP2430 and OMAP34xx in McBSP DAI driver\n  ALSA: ASoC: OMAP: Add multilink support to McBSP DAI driver\n  ALSA: ASoC: Make TLV320AIC26 user-visible\n  ALSA: ASoC - clean up Kconfig for TLV320AIC2\n  ALSA: ASoC: Make WM8510 microphone input a DAPM mixer\n  ALSA: ASoC: Implement WM8510 bias level control\n  ALSA: ASoC: Remove unused AUDIO_NAME define from codec drivers\n  ALSA: ASoC: tlv320aic3x: Use uniform tlv320aic naming\n  ALSA: ASoC: Add WM8510 SPI support\n  ALSA: ASoC: Add WM8753 SPI support\n  ...\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": "e7f2f9918c0e97aa98ba147ca387e2c7238f0711",
      "tree": "dd85d6d2907bffeda76b42ce55a445e3142fe738",
      "parents": [
        "11a96d1820113fde0d55c3487b7da7a9031326b8",
        "c00193f9f09f9b852249a66391985f585d066084"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:54:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:54:45 2008 -0700"
      },
      "message": "Merge phase #5 (misc) of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\nMerges oprofile, timers/hpet, x86/traps, x86/time, and x86/core misc items.\n\n* \u0027x86-core-v4-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (132 commits)\n  x86: change early_ioremap to use slots instead of nesting\n  x86: adjust dependencies for CONFIG_X86_CMOV\n  dumpstack: x86: various small unification steps, fix\n  x86: remove additional_cpus\n  x86: remove additional_cpus configurability\n  x86: improve UP kernel when CPU-hotplug and SMP is enabled\n  dumpstack: x86: various small unification steps\n  dumpstack: i386: make kstack\u003d an early boot-param and add oops\u003dpanic\n  dumpstack: x86: use log_lvl and unify trace formatting\n  dumptrace: x86: consistently include loglevel, print stack switch\n  dumpstack: x86: add \"end\" parameter to valid_stack_ptr and print_context_stack\n  dumpstack: x86: make printk_address equal\n  dumpstack: x86: move die_nmi to dumpstack_32.c\n  traps: x86: finalize unification of traps.c\n  traps: x86: make traps_32.c and traps_64.c equal\n  traps: x86: various noop-changes preparing for unification of traps_xx.c\n  traps: x86_64: use task_pid_nr(tsk) instead of tsk-\u003epid in do_general_protection\n  traps: i386: expand clear_mem_error and remove from mach_traps.h\n  traps: x86_64: make io_check_error equal to the one on i386\n  traps: i386: use preempt_conditional_sti/cli in do_int3\n  ...\n"
    },
    {
      "commit": "11a96d1820113fde0d55c3487b7da7a9031326b8",
      "tree": "dfbb1a6f7a8aa89ea9c5133aa661c5427b6c8b3a",
      "parents": [
        "a18992d4652553f65469ac72b54b7fdd4f058277"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:46:24 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:45 2008 -0700"
      },
      "message": "tty: rename the remaining oddly named n_tty functions\n\nOriginal idea for this from a patch by Rodolfo Giometti which merges various\nbits of PPS support\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a18992d4652553f65469ac72b54b7fdd4f058277",
      "tree": "76b9347d3e11f0ef125f3466560f565e88a52d38",
      "parents": [
        "a90610e50b98e18385d4fbea2c9eaefb12c5a75c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:46:09 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "fs3270: Correct error returns\n\nDrop the kernel lock further and also correct cases where we set rc to an\nerror code, and then return 0\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a90610e50b98e18385d4fbea2c9eaefb12c5a75c",
      "tree": "03fd450b5d94710105a6c6f4f3f20519fd815461",
      "parents": [
        "402fda9201ac619ea1f120996b1a142c57aeeb6b"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:45:52 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "fs3270: remove extra locks\n\nget_current_tty now does internal locking and returns a referenced object,\nthus our use of tty_mutex here can go away.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "402fda9201ac619ea1f120996b1a142c57aeeb6b",
      "tree": "9a0e1411e55148aac0a8dd662335b29ab2e13063",
      "parents": [
        "8440838bc5337243917f13bc14ea2445da5e0197"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Oct 13 10:45:36 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "tty: tty_io.c shadows sparse fix\n\ndrivers/char/tty_io.c:1413:17: warning: symbol \u0027buf\u0027 shadows an earlier one\ndrivers/char/tty_io.c:1379:20: originally declared here\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8440838bc5337243917f13bc14ea2445da5e0197",
      "tree": "175af8fd7d678073a9794248132b606fb536c887",
      "parents": [
        "a7be18d436f0c7007794965e5af29fa1ffff1e05"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 13 10:45:26 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "serial: fix device name reporting when minor space is shared between drivers\n\nThe multiple drivers share the minor space occupied by a particular major\nnumber, the actual index within the device name\u0027s space is indicated by\nthe tty_driver-\u003ename_base + uart_port-\u003eline\n\nAnother usable formula is (uart_driver-\u003eminor - MINOR_BASE) + port-\u003eline\n\nUse those to print the device names properly in such situations in\nserial_core.c and 8250.c\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a7be18d436f0c7007794965e5af29fa1ffff1e05",
      "tree": "4675ce7e3a5255108bf1d9c7f4ec4507592d50b7",
      "parents": [
        "17b820606e7bdd3be31b001265d0177423fea5eb"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:45:17 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "applicom: Fix an unchecked user ioctl range and an error return\n\nCloses bug #11408 by checking the card index range for command 0\nFixes the ioctl to return ENOTTY which is correct for unknown ioctls\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17b820606e7bdd3be31b001265d0177423fea5eb",
      "tree": "df962dfca41e133983ee1a68deaad646a311d8b2",
      "parents": [
        "51383f69ec56fe3f425d5255fb43e18c445e061c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:45:06 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "tty: Minor tidyups and document fixes for n_tty\n\nRemove/fix some bogus NULL checks, comment some locking etc\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51383f69ec56fe3f425d5255fb43e18c445e061c",
      "tree": "f9d9e280892702c3a47ffa807c0937ea9c80e315",
      "parents": [
        "ea1afd256258f04a290aaa7fd5c2d4deb2e79e26"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:44:57 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "tty: Remove lots of NULL checks\n\nMany tty drivers contain \u0027can\u0027t happen\u0027 checks against NULL pointers passed\nin by the tty layer. These have never been possible to occur. Even more\nimportantly if they ever do occur we want to know as it would be a serious\nbug.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea1afd256258f04a290aaa7fd5c2d4deb2e79e26",
      "tree": "6ef94459212ed68e64b9a86c3b4542e935f32e10",
      "parents": [
        "53e86317e967b9a1b1b78d6a076547144454bce1"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:44:43 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "tty: fix up gigaset a bit\n\nStephen\u0027s fixes reminded me that gigaset is still rather broken so fix it up\na bit\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53e86317e967b9a1b1b78d6a076547144454bce1",
      "tree": "87f38a002bc278769aa632d3a6eadddee1e44732",
      "parents": [
        "47afa7a5a8a8fb9e60cdb6a3bd612e07c37e9d90"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Oct 13 10:44:33 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "tty: Fallout from tty-move-canon-specials\n\nToday\u0027s linux-next build (x86_64 allmodconfig) failed like this:\n\n/drivers/char/tty_ioctl.c: In function \u0027change_termios\u0027:\ndrivers/isdn/capi/capi.c:1234: error: implicit declaration of function \u0027n_tty_ioctl\u0027\ndrivers/isdn/gigaset/ser-gigaset.c: In function \u0027gigaset_tty_ioctl\u0027:\ndrivers/isdn/gigaset/ser-gigaset.c:648: error: implicit declaration of function \u0027n_tty_ioctl\u0027\n\nIntroduced by commit 686b5e4aea05a80e370dc931b7f4a8d03c80da54\n(\"tty-move-canon-specials\").  I added the following patch (which may not\nbe correct).\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "47afa7a5a8a8fb9e60cdb6a3bd612e07c37e9d90",
      "tree": "4f07d3aed0a08516162e529df75a014bd0798f8f",
      "parents": [
        "fe6e29fdb1a7b94891bbdd3c67358fe4ed14639d"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:44:17 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "tty: some ICANON magic is in the wrong places\n\nMove the set up on ldisc change into the ldisc\nMove the INQ/OUTQ cases into the driver not in shared ioctl code where it\ngives bogus answers for other ldisc values\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe6e29fdb1a7b94891bbdd3c67358fe4ed14639d",
      "tree": "a1b9524ec42081e6573dd5a77bbb881117c6a73b",
      "parents": [
        "8dff04ea316125639120c0a565ce0346b892fef7"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:44:08 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "tty: simplify ktermios allocation\n\nCopy the simplification from the pty unix98 special case to the generic one.\nThis allows us to kill off driver-\u003etermios_locked entirely which is nice. We\nhave to whack bits of the cris driver as it meddles in places it shouldn\u0027t\nproviding its own arrays that were never used anyway.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8dff04ea316125639120c0a565ce0346b892fef7",
      "tree": "f6c4d0455d951d550ab55cebe109ac526c957011",
      "parents": [
        "335adde689150d2fcf4df3cb26a6fc6740ed1f3e"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:43:58 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "pty: simplify unix98 allocation\n\nWe need both termios and termios_locked so allocate them as one\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "335adde689150d2fcf4df3cb26a6fc6740ed1f3e",
      "tree": "93e11b89e96e8baf15a276e4008e08bb5873fb90",
      "parents": [
        "fe9cd962a62cb5f666cf48b9941d3f3cde134254"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:43:48 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "pty: Fix allocation failure double free\n\nThe updating and moving around of the pty code added a bug where both the\nhelper and caller free the main tty struct (the pty driver must free the\no_tty pair itself however).\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe9cd962a62cb5f666cf48b9941d3f3cde134254",
      "tree": "c493585da2814bc8061c84fd2052a4407105d1e1",
      "parents": [
        "a6f37daa8b892fd29dd71be0de61460a478cb122"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:43:38 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:43 2008 -0700"
      },
      "message": "pty: Coding style and polish\n\nWe\u0027ve done the heavy lifting now its time to mop up a bit\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\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": "4a2b5fddd53b80efcb3266ee36e23b8de28e761a",
      "tree": "ecb39392a17d1e9f0668c21064e3aa4207700e76",
      "parents": [
        "bf970ee46e0fb363c8df4393229121d54330a98e"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Mon Oct 13 10:42:49 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:43 2008 -0700"
      },
      "message": "Move tty lookup/reopen to caller\n\nMove tty_driver_lookup_tty() and tty_reopen() from tty_init_dev()\ninto tty_open() (one of the two callers of tty_init_dev()).  These\ncalls are not really required in ptmx_open(), the other caller,\nsince ptmx_open() would be setting up a new tty.\n\nChangelog[v2]:\n\t- remove the lookup and reopen calls from ptmx_open\n\t- merge with recent changes to ttydev tree\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": "bf970ee46e0fb363c8df4393229121d54330a98e",
      "tree": "3beb09c369b3459e70689b5f9a35caacf063f116",
      "parents": [
        "73ec06fc5f5c8e1097a7a4a4ab2d7c6c3a007e81"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:42:39 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:43 2008 -0700"
      },
      "message": "tty: extract the pty init time special cases\n\nThe majority of the remaining init_dev code is pty special cases. We\nrefactor this code into the driver-\u003einstall method.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73ec06fc5f5c8e1097a7a4a4ab2d7c6c3a007e81",
      "tree": "2c244c8b0d853f82e479eaf72ca64d6c9209c6a6",
      "parents": [
        "8b0a88d5912ab549d5adac2c8498ecdaae5319a5"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:42:29 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:43 2008 -0700"
      },
      "message": "tty: Finish fixing up the init_dev interface to use ERR_PTR\n\nOriginal suggestion and proposal from Sukadev Bhattiprolu.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b0a88d5912ab549d5adac2c8498ecdaae5319a5",
      "tree": "8ed71420259881fd6d1dd5f5841ffe2f3c5d1fa2",
      "parents": [
        "7d7b93c1452f381350dbaf276a63357fa6559e6d"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:42:19 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:42 2008 -0700"
      },
      "message": "tty: More driver operations\n\nWe have the lookup operation abstracted which is nice for pty cleanup but\nwe really want to abstract the add/remove entries as well so that we can\npull the pty code out of the tty core and create a clear defined interface\nfor the tty driver table.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d7b93c1452f381350dbaf276a63357fa6559e6d",
      "tree": "02ce0c37e7fea66d1e8af20111d92171bfc0ff1d",
      "parents": [
        "99f1fe189daf8e99a847e420567e49dd7ee2aae7"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:42:09 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:42 2008 -0700"
      },
      "message": "tty: kref the tty driver object\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99f1fe189daf8e99a847e420567e49dd7ee2aae7",
      "tree": "09db410aa2b32e74086593eb771c75efe553a585",
      "parents": [
        "23499705753ab8b4c6b0b64e6c424a370bd900a1"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:42:00 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:42 2008 -0700"
      },
      "message": "tty: Clean up the tty_init_dev changes further\n\nFix up the naming, style and extract some bits of code into the driver\nspecific code\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "23499705753ab8b4c6b0b64e6c424a370bd900a1",
      "tree": "db092164c37a2c2897275a37d61ef325a59808d9",
      "parents": [
        "d81ed10307027e1643a65ab5fe17cc01233d376d"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Mon Oct 13 10:41:51 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:42 2008 -0700"
      },
      "message": "tty: Move parts of tty_init_dev into new functions\n\nMove the \u0027find-tty\u0027 and \u0027fast-track-open\u0027 parts of init_dev() to\nseparate functions.\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": "d81ed10307027e1643a65ab5fe17cc01233d376d",
      "tree": "e46ac5735124308357f42214a8a26f75dcd3f412",
      "parents": [
        "feebed6515a113eeb33919e9557a8b9710ea627c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:41:42 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:42 2008 -0700"
      },
      "message": "tty: Remove more special casing and out of place code\n\nCarry on pushing code out of tty_io when it belongs to other drivers. I\u0027m\nnot 100% happy with some of this and it will be worth revisiting some of the\nexports later when the restructuring work is done.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "feebed6515a113eeb33919e9557a8b9710ea627c",
      "tree": "0461178ee0c5e16ea90023e4b6386cb5c57d3391",
      "parents": [
        "bf7a06bcce205705ea5c7675cbb8ea9239ea30a0"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:41:30 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:42 2008 -0700"
      },
      "message": "tty: shutdown method\n\nRight now there are various drivers that try to use tty-\u003ecount to know when\nthey get the final close. Aristeau Rozanski showed while debugging the vt\nsysfs race that this isn\u0027t entirely safe.\n\nInstead of driver side tricks to work around this introduce a shutdown which\nis called when the tty is being destructed. This also means that the shutdown\nmethod is tied into the refcounting.\n\nUse this to rework the console close/sysfs logic.\n\nRemove lots of special case code from the tty core code. The pty code can now\nhave a shutdown() method that replaces the special case hackery in the tree\nfree up paths.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf7a06bcce205705ea5c7675cbb8ea9239ea30a0",
      "tree": "98decd6b145bb9e42350190bb32178584e4caca6",
      "parents": [
        "15582d36a15978355d2168eaa018a3736db7281f"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:41:16 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:42 2008 -0700"
      },
      "message": "vt: remove bogus lock dropping\n\nFor hysterical raisins the vt layer drops and retakes locks in the write\nmethod. This is a left over from the days when user/kernel data was passed\ndirectly to the tty not pre-buffered.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "15582d36a15978355d2168eaa018a3736db7281f",
      "tree": "6ea2b94bb4504cf0d8dffdecbd85a60fe0d69c06",
      "parents": [
        "dbda4c0b97b18fd59b3964548361b4f92357f730"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:41:03 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:42 2008 -0700"
      },
      "message": "pty: If the administrator creates a device for a ptmx slave we should not error\n\nThe open path for ptmx slaves is via the ptmx device. Opening them any\nother way is not allowed. Vegard Nossum found that previously this was not\nthe case and mknod foo c 128 42; cat foo would produce nasty diagnostics\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dbda4c0b97b18fd59b3964548361b4f92357f730",
      "tree": "ca7e2827541aec01762f2a9c0e3155aaf49bf0ca",
      "parents": [
        "934e6ebf96e8c1a0f299e64129fdaebc1132a427"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:40:53 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:42 2008 -0700"
      },
      "message": "tty: Fix abusers of current-\u003esighand-\u003etty\n\nVarious people outside the tty layer still stick their noses in behind the\nscenes. We need to make sure they also obey the locking and referencing rules.\n\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": "216ba023a96c04e8d3aabf83d5931c35b6e2dbbb",
      "tree": "3ff36bd6874a997354dcec8d02256489cf1fe508",
      "parents": [
        "d18a750fe9fa3b6cab882d51f99bba25bb0a006e"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:40:19 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:41 2008 -0700"
      },
      "message": "mxser: Switch to kref tty\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d18a750fe9fa3b6cab882d51f99bba25bb0a006e",
      "tree": "391ccab5a5847782ae48dde60a661486f434ae35",
      "parents": [
        "d450b5a0196b6442cf3f29fc611d9c8daa56b559"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:40:07 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:41 2008 -0700"
      },
      "message": "stallion: Use krefs\n\nUse tty_port_init and krefs in the stallion drivers to protect us from devices\ngoing away underneath us. As with the other drives some rearranging is done to\npass the tty structure down properly on the user side.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d450b5a0196b6442cf3f29fc611d9c8daa56b559",
      "tree": "2a6b641b033bfbe16b194897ddbc988544dcefc2",
      "parents": [
        "4a90f09b20f4622dcbff1f0e1e6bae1704f8ad8c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:39:58 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:41 2008 -0700"
      },
      "message": "tty: kref usage for isicom and moxa\n\nRather than blindly keep taking krefs we reorder the code in a few places\nto pass the tty down to the right place (which is important as from the user\nside it is not the case that tty \u003d\u003d port-\u003etty in all situations). For the irq\nand related paths use the krefs to stop the tty being freed under us.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4a90f09b20f4622dcbff1f0e1e6bae1704f8ad8c",
      "tree": "9b275f88f2705cb10121d5982741aef3a088a7c8",
      "parents": [
        "95f9bfc6b76e862265a2d70ae061eec18fe14140"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:39:46 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:41 2008 -0700"
      },
      "message": "tty: usb-serial krefs\n\nUse kref in the USB serial drivers so that we don\u0027t free tty structures\nfrom under the URB receive handlers as has historically been the case if\nyou were unlucky. This also gives us a framework for general tty drivers to\nuse tty_port objects and refcount.\n\nContains two err-\u003edev_err changes merged together to fix clashes in the\n-next tree.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95f9bfc6b76e862265a2d70ae061eec18fe14140",
      "tree": "88e72e0d31b9f368d5c9dcb3e0d92994effe5edc",
      "parents": [
        "452a00d2ee288f2cbc36f676edd06cb14d2878c1"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:39:23 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:41 2008 -0700"
      },
      "message": "tty: Move tty_write_message out of kernel/printk\n\nThis is pure tty code so put it in the tty layer where it can be with the\nlocking relevant material it uses\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": "f4d2a6c2096b764decb20070b1bf4356de9144a8",
      "tree": "ff1f86d51ea0a60c0a1d22df68e39dd78e625ab1",
      "parents": [
        "8f520021837d45c47d0ab57e7271f8d88bf7f3a4"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:39:01 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:41 2008 -0700"
      },
      "message": "tty: compare the tty winsize\n\nWe always use the real tty one for stuff so the pty one should not be\ncompared. As we propagate window changes to both it doesn\u0027t currently\nmatter but will when we tidy up the pty termios logic a bit more\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f520021837d45c47d0ab57e7271f8d88bf7f3a4",
      "tree": "4435f3141163480c23f7274c502d58e3cd9cb963",
      "parents": [
        "1d65b4a088de407e99714fdc27862449db04fb5c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:38:46 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:41 2008 -0700"
      },
      "message": "tty: Termios locking - sort out real_tty confusions and lock reads\n\nThis moves us towards sanity and should mean our termios locking is now\ncomplete and comprehensive.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d65b4a088de407e99714fdc27862449db04fb5c",
      "tree": "89f378767b9e0fe1a902d73bf43be382c6110f72",
      "parents": [
        "5aaa70a80f5bbfcc4d6a1f844bdd1c5d6b445b5f"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:38:18 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:40 2008 -0700"
      },
      "message": "tty: Add termiox\n\nWe need a way to describe the various additional modes and flow control\nfeatures that random weird hardware shows up and software such as wine\nwants to emulate as Windows supports them.\n\nTCGETX/TCSETX and the termiox ioctl are a SYS5 extension that we might as\nwell adopt. This patches adds the structures and the basic ioctl interfaces\nwhen the TCGETX etc defines are added for an architecture. Drivers wishing\nto use this stuff need to add new methods.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5aaa70a80f5bbfcc4d6a1f844bdd1c5d6b445b5f",
      "tree": "8826ff2e11d11ab0070d1ebf0ca8d0b91a9fa586",
      "parents": [
        "c26c56c0f40e200e61d1390629c806f6adaffbcc"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:38:07 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:40 2008 -0700"
      },
      "message": "tty: ipw need reworking\n\nThis came in via another tree and unfortunately is rather broken on\nthe tty side. Comment the apparent locking problems for someone who knows\nthe driver to look at.\n\nFix the termios and other ioctl handling. The driver was calling the wrong\nmethods for what it wanted to do but the right ones existed so its a simple\nfix up.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c26c56c0f40e200e61d1390629c806f6adaffbcc",
      "tree": "88de4fce80e1529c7d34a59601752808351eb0ea",
      "parents": [
        "6f967f7891076abc09e12ce952f85825e7ee8caf"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:37:48 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:40 2008 -0700"
      },
      "message": "tty: Cris has a nice RS485 ioctl so we should steal it\n\nJP Tosoni observed:\n\n\"About a RS485 ioctl: could you consider the attached files which are\n already in the Linux kernel (in include/asm-cris).  They define a\n TIOCSERSETRS485 (ioctl.h), and the data structure (rs485.h)\n with allows to specify timings. Sounds just like what we want ?\"\n\nand he\u0027s right: sort of. Rework the structure to use flag bits and make the\ntime delay a fixed sized field so we don\u0027t get 32/64bit problems. Add the ioctls\nto x86 so that people know what to add to their platform of choice.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f967f7891076abc09e12ce952f85825e7ee8caf",
      "tree": "1ebd77aae1dc887676915b3c469d84681db2d9ac",
      "parents": [
        "9c9f4ded90a59eee84e15f5fd38c03d60184e112"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:37:36 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:40 2008 -0700"
      },
      "message": "tty: use krefs to protect driver module counts\n\nThe tty layer keeps driver module counts that are used so the driver knows\nwhen it can be unloaded. For obvious reasons we want to tie that to the\nrefcounting properly.\n\nAt this point the driver side itself isn\u0027t refcounted nicely but we can do\nthat later and kref the drivers.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c9f4ded90a59eee84e15f5fd38c03d60184e112",
      "tree": "925a7f7c30136477b3f8551123fd86b355fd60fb",
      "parents": [
        "348eb12e5598be97400c749d3d93a71856ae0b2b"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:37:26 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:40 2008 -0700"
      },
      "message": "tty: Add a kref count\n\nIntroduce a kref to the tty structure and use it to protect the tty-\u003esignal\ntty references. For now we don\u0027t introduce it for anything else.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "348eb12e5598be97400c749d3d93a71856ae0b2b",
      "tree": "770864c077d4cce1e17f6e139a30a0ba9add5742",
      "parents": [
        "9e48565d217a8a96cc7577308ad41e9e4b806a62"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:37:17 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:40 2008 -0700"
      },
      "message": "pps: Reserve a line discipline number for PPS\n\nAdd a new line discipline for \"pulse per second\" devices connected to\na serial port.\n\nSigned-off-by: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e48565d217a8a96cc7577308ad41e9e4b806a62",
      "tree": "2ff5f745d72e0d33a93cdc51622f011f0031eb76",
      "parents": [
        "e04957365b21066285557e42ffe16d8330d46c02"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:37:07 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:40 2008 -0700"
      },
      "message": "tty: Split tty_port into its own file\n\nNot much in it yet but this will grow a lot\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e04957365b21066285557e42ffe16d8330d46c02",
      "tree": "c359a59a0ac283d051736534d835df2cc0f8e17b",
      "parents": [
        "c564b6fda961bd999aac0b709b79288dd8f426cd"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:36:58 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:40 2008 -0700"
      },
      "message": "tty: split the buffering from tty_io\n\nThe two are basically independent chunks of code so lets split them up for\nreadability and sanity. It also makes the API boundaries much clearer.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c564b6fda961bd999aac0b709b79288dd8f426cd",
      "tree": "017667b5df04c246191a614fadbb986ad04249a5",
      "parents": [
        "e6885107736a4dd23e7d3bc103fe6d043c63c4de"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:36:49 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:40 2008 -0700"
      },
      "message": "uml: small cleanups and note bugs to be dealt with by uml authors...\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6885107736a4dd23e7d3bc103fe6d043c63c4de",
      "tree": "77454a1a03bd0021945e3e6ef08b6f39ef8dbf14",
      "parents": [
        "b70ac7718579b5cbf3bdd74fd01132d1c91596f4"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 10:36:40 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:40 2008 -0700"
      },
      "message": "tty: move tioclinux from a special case\n\nRight now we have ifdefs and hooks in the core ioctl handler for TIOCLINUX\nand then test if its a console. This is brain dead. Instead call the\ntioclinux helper from the relevant driver ioctl methods.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b70ac7718579b5cbf3bdd74fd01132d1c91596f4",
      "tree": "a418dec814cbdea806c7767c0d77928bfe9091bc",
      "parents": [
        "b5d674abcffeacaf83038bbf7c0caf24edd497dd"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 13 10:36:31 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:40 2008 -0700"
      },
      "message": "serial: allow 8250 to be used on sparc\n\nThis requires three changes:\n\n1) Remove !SPARC restriction in Kconfig.\n\n2) Move Sparc specific serial drivers before 8250, so that serial\n   console devices don\u0027t change names on us, even if 8250 finds\n   devices.\n\n3) Since the Sparc specific serial drivers try to use the\n   same major/minor device namespace as 8250, some coordination\n   is necessary.  Use the sunserial_*() layer routines to allocate\n   minor number space within TTY_MAJOR when CONFIG_SPARC.\n\n   This has no effect on other platforms.\n\nThanks to Josip Rodin for bringing up this issue and testing\nplus debugging various revisions of this patch.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5d674abcffeacaf83038bbf7c0caf24edd497dd",
      "tree": "827763f15d1ad775dc0fa781228ede7f9dd91a55",
      "parents": [
        "40836c484c31301998a14be0439cc4e856399843"
      ],
      "author": {
        "name": "Will Newton",
        "email": "will.newton@gmail.com",
        "time": "Mon Oct 13 10:36:21 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:40 2008 -0700"
      },
      "message": "8250: remove a few inlines of dubious value\n\nRemove some inlines from various functions that are called once, are too\nbig to inline, or are called only from slow path code.  This saves around\n300 bytes of code for me.\n\nSigned-off-by: Will Newton \u003cwill.newton@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "40836c484c31301998a14be0439cc4e856399843"
}
