)]}'
{
  "log": [
    {
      "commit": "ca99c1da080345e227cfb083c330a184d42e27f3",
      "tree": "e417b4c456ae31dc1dde8027b6be44a1a9f19395",
      "parents": [
        "fb30d64568fd8f6a21afef987f11852a109723da"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Tue Apr 18 22:21:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:51 2006 -0700"
      },
      "message": "[PATCH] Fix file lookup without ref\n\nThere are places in the kernel where we look up files in fd tables and\naccess the file structure without holding refereces to the file.  So, we\nneed special care to avoid the race between looking up files in the fd\ntable and tearing down of the file in another CPU.  Otherwise, one might\nsee a NULL f_dentry or such torn down version of the file.  This patch\nfixes those special places where such a race may happen.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "993dfa8776308dcfd311cf77a3bbed4aa11e9868",
      "tree": "2e90eabd31d3e8db1f2f3c95494109ff29a78237",
      "parents": [
        "7a2bd3f7efa86e8b56482a8f8948c8b222064a67"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 31 02:30:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:56 2006 -0800"
      },
      "message": "[PATCH] fs/locks.c: Fix sys_flock() race\n\nsys_flock() currently has a race which can result in a double free in the\nmulti-thread case.\n\nThread 1\t\t\tThread 2\n\nsys_flock(file, LOCK_EX)\n\t\t\t\tsys_flock(file, LOCK_UN)\n\nIf Thread 2 removes the lock from inode-\u003ei_lock before Thread 1 tests for\nlist_empty(\u0026lock-\u003efl_link) at the end of sys_flock, then both threads will\nend up calling locks_free_lock for the same lock.\n\nFix is to make flock_lock_file() do the same as posix_lock_file(), namely\nto make a copy of the request, so that the caller can always free the lock.\n\nThis also has the side-effect of fixing up a reference problem in the\nlockd handling of flock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5ce29646ebe352587e3b3160d599010c5da1b9dd",
      "tree": "a4b080ded00de2264a4c94245da79488ea4d8a56",
      "parents": [
        "da2e9e1ff40c863a12803c32209baaded3512433"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Mar 31 02:30:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:52 2006 -0800"
      },
      "message": "[PATCH] locks: don\u0027t panic\n\nDon\u0027t panic!  Just BUG_ON().\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5842add2f3b519111b6401f3a35862bd00a3aa7e",
      "tree": "299e5653ec2b7dfc9fa565920d7320bbf1c9c07e",
      "parents": [
        "6dc0fe8f8b40854982929e4f24d8c65115769b60"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Sun Mar 26 01:37:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:56 2006 -0800"
      },
      "message": "[PATCH] VFS,fs/locks.c,NFSD4: add race_free posix_lock_file_conf() interface\n\nLockd and the NFSv4 server both exercise a race condition where\nposix_test_lock() is called either before or after posix_lock_file() to\ndeal with a denied lock request due to a conflicting lock.\n\nRemove the race condition for the NFSv4 server by adding a new conflicting\nlock parameter to __posix_lock_file() , changing the name to\n__posix_lock_file_conf().\n\nKeep posix_lock_file() interface, add posix_lock_conf() interface, both\ncall __posix_lock_file_conf().\n\n[akpm@osdl.org: Put the EXPORT_SYMBOL() where it belongs]\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6dc0fe8f8b40854982929e4f24d8c65115769b60",
      "tree": "a3489bf4765799778238e1fee3de71ec6a0e1d73",
      "parents": [
        "fa3536cc144c1298f2ed9416c33f3b77fa2cd37a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Sun Mar 26 01:37:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:56 2006 -0800"
      },
      "message": "[PATCH] VFS,fs/locks.c: cleanup locks_insert_block\n\nBUG instead of handling a case that should never happen.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fa3536cc144c1298f2ed9416c33f3b77fa2cd37a",
      "tree": "5484541319b86ae7dac0def4db7925f7cc7008e7",
      "parents": [
        "878a9f30d7b13015f3aa4534d7877d985f150183"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Mar 26 01:37:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:56 2006 -0800"
      },
      "message": "[PATCH] Use __read_mostly on some hot fs variables\n\nI discovered on oprofile hunting on a SMP platform that dentry lookups were\nslowed down because d_hash_mask, d_hash_shift and dentry_hashtable were in\na cache line that contained inodes_stat.  So each time inodes_stats is\nchanged by a cpu, other cpus have to refill their cache line.\n\nThis patch moves some variables to the __read_mostly section, in order to\navoid false sharing.  RCU dentry lookups can go full speed.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "26bcbf965f857c710adafd16cf424f043006b5dd",
      "tree": "fa3c1e4ba07ab3d1e4e61b27c7579c57fd2d5c65",
      "parents": [
        "04266473ecf5cdca242201d9f1ed890afe070fb6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 20 13:44:40 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:40 2006 -0500"
      },
      "message": "lockd: stop abusing file_lock_list\n\nCurrently lockd directly access the file_lock_list from fs/locks.c.\nIt does so to mark locks granted or reclaimable.  This is very\nsuboptimal, because a) lockd needs to poke into locks.c internals, and\nb) it needs to iterate over all locks in the system for marking locks\ngranted or reclaimable.\n\nThis patch adds lists for granted and reclaimable locks to the nlm_host\nstructure instead, and adds locks to those.\n\nnlmclnt_lock:\n\tnow adds the lock to h_granted instead of setting the\n\tNFS_LCK_GRANTED, still O(1)\n\nnlmclnt_mark_reclaim:\n\tgoes away completely, replaced by a list_splice_init.\n\tComplexity reduced from O(locks in the system) to O(1)\n\nreclaimer:\n\titerates over h_reclaim now, complexity reduced from\n\tO(locks in the system) to O(locks per nlm_host)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0996905f9301c2ff4c021982c42a15b35e74bf1c",
      "tree": "29bffccbd76c2fc0659f6d94a95f95b2d940f7a5",
      "parents": [
        "3feb2d49394b7874348a6e43c076b780c1d222c5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:38 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:38 2006 -0500"
      },
      "message": "lockd: posix_test_lock() should not call locks_copy_lock()\n\nThe caller of posix_test_lock() should never need to look at the lock\nprivate data, so do not copy that information. This also means that there\nis no need to call the fl_release_private methods.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8dc7c3115b611c00006eac3ee5b108296432aab7",
      "tree": "be44c59907cbdcb6fdf46d0ad9cc140af757acfc",
      "parents": [
        "2e0af86f618c697b44e2d67dff151256c58201c4"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "message": "locks,lockd: fix race in nlmsvc_testlock\n\nposix_test_lock() returns a pointer to a struct file_lock which is unprotected\nand can be removed while in use by the caller.  Move the conflicting lock from\nthe return to a parameter, and copy the conflicting lock.\n\nIn most cases the caller ends up putting the copy of the conflicting lock on\nthe stack.  On i386, sizeof(struct file_lock) appears to be about 100 bytes.\nWe\u0027re assuming that\u0027s reasonable.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2e0af86f618c697b44e2d67dff151256c58201c4",
      "tree": "967c708244ca190cc00d1c943704002467546151",
      "parents": [
        "a85f193e2fb7d53e48ae6a9d9ea990bfb4cea555"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "message": "locks: remove unused posix_block_lock\n\nposix_lock_file() is used to add a blocked lock to Lockd\u0027s block, so\nposix_block_lock() is no longer needed.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "47831f35b83e43c804215712dd0c834c92e8a441",
      "tree": "3345007cf56b73495386a59deb6e3d7caf01f875",
      "parents": [
        "1dd594b21b2d98e56f2b1fe92bb222276b28de41"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:05 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:05 2006 -0500"
      },
      "message": "VFS: Fix __posix_lock_file() copy of private lock area\n\nThe struct file_lock-\u003efl_u area must be copied using the fl_copy_lock()\noperation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "33443c42f4ffa5ca23b3323234bcb1a78e85d9db",
      "tree": "b524ba077d49afb7633088c66a2ef77fede0ccd7",
      "parents": [
        "5d2bea4582d20cb24085152acaa29b95c05cdcf8"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Jan 08 01:05:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:10 2006 -0800"
      },
      "message": "[PATCH] tiny: Uninline some fslocks.c functions\n\nuninline some file locking functions\n\nadd/remove: 3/0 grow/shrink: 0/15 up/down: 256/-1525 (-1269)\nfunction                                     old     new   delta\nlocks_free_lock                                -     134    +134\nposix_same_owner                               -      69     +69\n__locks_delete_block                           -      53     +53\nposix_locks_conflict                         126     108     -18\nlocks_remove_posix                           266     237     -29\nlocks_wake_up_blocks                         121      87     -34\nlocks_block_on_timeout                        83      47     -36\nlocks_insert_block                           157     120     -37\nlocks_delete_block                            62      23     -39\nposix_unblock_lock                           104      59     -45\nposix_locks_deadlock                         162     100     -62\nlocks_delete_lock                            228     119    -109\nsys_flock                                    338     217    -121\n__break_lease                                600     474    -126\nlease_init                                   252     122    -130\nfcntl_setlk64                                793     649    -144\nfcntl_setlk                                  793     649    -144\n__posix_lock_file                           1477    1026    -451\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64a318ee2af9000df482d7a125c3b3e1f1007404",
      "tree": "7b39e558cccce484635dc847a016bbcb5e83abdb",
      "parents": [
        "2c5acd2e1a73cad59203a1bace21e6b03f2920a9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 03 09:55:46 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:54 2006 -0500"
      },
      "message": "NLM: Further cancel fixes\n\n If the server receives an NLM cancel call and finds no waiting lock to\n cancel, then chances are the lock has already been applied, and the client\n just hadn\u0027t yet processed the NLM granted callback before it sent the\n cancel.\n\n The Open Group text, for example, perimts a server to return either success\n (LCK_GRANTED) or failure (LCK_DENIED) in this case.  But returning an error\n seems more helpful; the client may be able to use it to recognize that a\n race has occurred and to recover from the race.\n\n So, modify the relevant functions to return an error in this case.\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5996a298da43a03081e9ba2116983d173001c862",
      "tree": "533a3289102051cc3e033eff5730301776e64d31",
      "parents": [
        "f232142cc21127c829559923eb405d1bcb2e2278"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 03 09:55:44 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:53 2006 -0500"
      },
      "message": "NLM: don\u0027t unlock on cancel requests\n\n Currently when lockd gets an NLM_CANCEL request, it also does an unlock for\n the same range.  This is incorrect.\n\n The Open Group documentation says that \"This procedure cancels an\n *outstanding* blocked lock request.\"  (Emphasis mine.)\n\n Also, consider a client that holds a lock on the first byte of a file, and\n requests a lock on the entire file.  If the client cancels that request\n (perhaps because the requesting process is signalled), the server shouldn\u0027t\n apply perform an unlock on the entire file, since that will also remove the\n previous lock that the client was already granted.\n\n Or consider a lock request that actually *downgraded* an exclusive lock to\n a shared lock.\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f3a9388e4ebea57583272007311fffa26ebbb305",
      "tree": "c37a25e923505c9a62855b1e0ef822f7231e1a5a",
      "parents": [
        "dc15ae14e97ee9d5ed740cbb0b94996076d8b37e"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@osdl.org",
        "time": "Fri Nov 11 17:20:14 2005 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Nov 13 12:29:58 2005 -0500"
      },
      "message": "[PATCH] VFS: local denial-of-service with file leases\n\n Remove time_out_leases() printk that\u0027s easily triggered by users.\n\n Signed-off-by: Chris Wright \u003cchrisw@osdl.org\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dc15ae14e97ee9d5ed740cbb0b94996076d8b37e",
      "tree": "a159edc76dedf81d73f17d844fbf965d5ded9f39",
      "parents": [
        "9e6c67fd2716720d9029d38ea25884efcfdedeb6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Thu Nov 10 19:08:00 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Nov 13 12:29:54 2005 -0500"
      },
      "message": "[PATCH] VFS: Fix memory leak with file leases\n\n The patch\n http://linux.bkbits.net:8080/linux-2.6/diffs/fs/locks.c@1.70??nav\u003dindex.html\n introduced a pretty nasty memory leak in the lease code. When freeing\n the lease, the code in locks_delete_lock() will correctly clean up\n the fasync queue, but when we return to fcntl_setlease(), the freed\n fasync entry will be reinstated.\n\n This patch ensures that we skip the call to fasync_helper() when we\u0027re\n freeing up the lease.\n\n Signed-off-by: J. Bruce Fields \u003cbfields@fieldses.org\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4c780a4688b421baa896b59778c05d7e068e479f",
      "tree": "5d7727971fc92e037857d6c560a6af8f4196df8b",
      "parents": [
        "550f57470c6506f5ef3c708335dea6bd48bf3dc4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:21 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:21 2005 -0700"
      },
      "message": "Fix Connectathon locking test failure\n\n We currently fail Connectathon test 6.10 in the case of 32-bit locks due\n to incorrect error checking.\n Also add support for l-\u003el_len \u003c 0 to 64-bit locks.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "449231d6ddf50ca46b7fb2f76ecf790135222913",
      "tree": "0c493d7f4fb68f1f639c56258bcd025d5b904fb0",
      "parents": [
        "20509f1bc553ed7fafa88fa8d01c6212d1876d9f"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Thu Aug 25 16:25:35 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:37:59 2005 -0400"
      },
      "message": "From: Olaf Kirch \u003cokir@suse.de\u003e\n[PATCH] Fix miscompare in __posix_lock_file\n\n If an application requests the same lock twice, the\n kernel should just leave the existing lock in place.\n Currently, it will install a second lock of the same type.\n\n Signed-off-by: Olaf Kirch \u003cokir@suse.de\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4fb3a53860cee2aaaf81186c451b7da0b95b45c1",
      "tree": "db66ba7d3886644729707586aed781c445e12c16",
      "parents": [
        "af4e5a218e18ad588d60a4f9d6f8fb5db1a32587"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 16 19:28:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 17 11:50:02 2005 -0700"
      },
      "message": "[PATCH] files: fix preemption issues\n\nWith the new fdtable locking rules, you have to protect fdtable with either\n-\u003efile_lock or rcu_read_lock/unlock().  There are some places where we\naren\u0027t doing either.  This patch fixes those places.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "badf16621c1f9d1ac753be056fce11b43d6e0be5",
      "tree": "3fdf833fdf2e3d3a439090743539680449ec3428",
      "parents": [
        "c0dfb2905126e9e94edebbce8d3e05001301f52d"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: break up files struct\n\nIn order for the RCU to work, the file table array, sets and their sizes must\nbe updated atomically.  Instead of ensuring this through too many memory\nbarriers, we put the arrays and their sizes in a separate structure.  This\npatch takes the first step of putting the file table elements in a separate\nstructure fdtable that is embedded withing files_struct.  It also changes all\nthe users to refer to the file table using files_fdtable() macro.  Subsequent\napplciation of RCU becomes easier after this.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c293621bbf678a3d85e3ed721c3921c8a670610d",
      "tree": "c72fc522cf3fd2d12f7fd716b7eb4db8d7fcaf52",
      "parents": [
        "3e5ea098446e19175fdee4c2c4ec9366b0217db4"
      ],
      "author": {
        "name": "Peter Staubach",
        "email": "staubach@redhat.com",
        "time": "Wed Jul 27 11:45:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 27 16:26:06 2005 -0700"
      },
      "message": "[PATCH] stale POSIX lock handling\n\nI believe that there is a problem with the handling of POSIX locks, which\nthe attached patch should address.\n\nThe problem appears to be a race between fcntl(2) and close(2).  A\nmultithreaded application could close a file descriptor at the same time as\nit is trying to acquire a lock using the same file descriptor.  I would\nsuggest that that multithreaded application is not providing the proper\nsynchronization for itself, but the OS should still behave correctly.\n\nSUS3 (Single UNIX Specification Version 3, read: POSIX) indicates that when\na file descriptor is closed, that all POSIX locks on the file, owned by the\nprocess which closed the file descriptor, should be released.\n\nThe trick here is when those locks are released.  The current code releases\nall locks which exist when close is processing, but any locks in progress\nare handled when the last reference to the open file is released.\n\nThere are three cases to consider.\n\nOne is the simple case, a multithreaded (mt) process has a file open and\nraces to close it and acquire a lock on it.  In this case, the close will\nrelease one reference to the open file and when the fcntl is done, it will\nrelease the other reference.  For this situation, no locks should exist on\nthe file when both the close and fcntl operations are done.  The current\nsystem will handle this case because the last reference to the open file is\nbeing released.\n\nThe second case is when the mt process has dup(2)\u0027d the file descriptor.\nThe close will release one reference to the file and the fcntl, when done,\nwill release another, but there will still be at least one more reference\nto the open file.  One could argue that the existence of a lock on the file\nafter the close has completed is okay, because it was acquired after the\nclose operation and there is still a way for the application to release the\nlock on the file, using an existing file descriptor.\n\nThe third case is when the mt process has forked, after opening the file\nand either before or after becoming an mt process.  In this case, each\nprocess would hold a reference to the open file.  For each process, this\ndegenerates to first case above.  However, the lock continues to exist\nuntil both processes have released their references to the open file.  This\nlock could block other lock requests.\n\nThe changes to release the lock when the last reference to the open file\naren\u0027t quite right because they would allow the lock to exist as long as\nthere was a reference to the open file.  This is too long.\n\nThe new proposed solution is to add support in the fcntl code path to\ndetect a race with close and then to release the lock which was just\nacquired when such as race is detected.  This causes locks to be released\nin a timely fashion and for the system to conform to the POSIX semantic\nspecification.\n\nThis was tested by instrumenting a kernel to detect the handling locks and\nthen running a program which generates case #3 above.  A dangling lock\ncould be reliably generated.  When the changes to detect the close/fcntl\nrace were added, a dangling lock could no longer be generated.\n\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7eaae2828dadae3abde7f77734c874d4b74b313a",
      "tree": "7cee35b529ebb2e88c808b52909821a05d324035",
      "parents": [
        "8f96c95680bfe66ff00c91859d4c73edf539b854"
      ],
      "author": {
        "name": "KAMBAROV, ZAUR",
        "email": "kambarov@berkeley.edu",
        "time": "Thu Jul 07 17:57:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:47 2005 -0700"
      },
      "message": "[PATCH] coverity: fs/locks.c flp null check\n\nWe\u0027re dereferencing `flp\u0027 and then we\u0027re testing it for NULLness.\n\nEither the compiler accidentally saved us or the existing null-pointer checdk\nis redundant.\n\nThis defect was found automatically by Coverity Prevent, a static analysis tool.\n\nSigned-off-by: Zaur Kambarov \u003czkambarov@coverity.com\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "80fec4c62e2cf544ac26e53f3e0d2f73df6820b9",
      "tree": "00baef91b0025dba29b26fc83aa243ed7c52ed1c",
      "parents": [
        "3da28eb1c6545fe73263a24eba0996217490e1eb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:31 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:40 2005 -0400"
      },
      "message": "[PATCH] VFS: Ensure that all the on-stack struct file_lock call fl_release_private\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "75c96f85845a6707b0f9916cb263cb3584f7d48f",
      "tree": "45a64d1c9bb71d7093db3a11e0f21465c2e3dec6",
      "parents": [
        "5e198d94dd0c3ec7f6138229e2e412c2c6268c38"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu May 05 16:16:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:47 2005 -0700"
      },
      "message": "[PATCH] make some things static\n\nThis patch makes some needlessly global identifiers static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
