)]}'
{
  "log": [
    {
      "commit": "0e4a9b59282914fe057ab17027f55123964bc2e2",
      "tree": "8bf359a1937e809d767f73f7ccdb948420ae72fc",
      "parents": [
        "cfebe563bd0a3ff97e1bc167123120d59c7a84db"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Wed Feb 11 13:04:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:36 2009 -0800"
      },
      "message": "ext2/xip: refuse to change xip flag during remount with busy inodes\n\nFor a reason that I was unable to understand in three months of debugging,\nmount ext2 -o remount stopped working properly when remounting from\nregular operation to xip, or the other way around.  According to a git\nbisect search, the problem was introduced with the VM_MIXEDMAP/PTE_SPECIAL\nrework in the vm:\n\ncommit 70688e4dd1647f0ceb502bbd5964fa344c5eb411\nAuthor: Nick Piggin \u003cnpiggin@suse.de\u003e\nDate:   Mon Apr 28 02:13:02 2008 -0700\n\n    xip: support non-struct page backed memory\n\nIn the failing scenario, the filesystem is mounted read only via root\u003d\nkernel parameter on s390x.  During remount (in rc.sysinit), the inodes of\nthe bash binary and its libraries are busy and cannot be invalidated (the\nbash which is running rc.sysinit resides on subject filesystem).\nAfterwards, another bash process (running ifup-eth) recurses into a\nsubshell, runs dup_mm (via fork).  Some of the mappings in this bash\nprocess were created from inodes that could not be invalidated during\nremount.\n\nBoth parent and child process crash some time later due to inconsistencies\nin their address spaces.  The issue seems to be timing sensitive, various\nattempts to recreate it have failed.\n\nThis patch refuses to change the xip flag during remount in case some\ninodes cannot be invalidated.  This patch keeps users from running into\nthat issue.\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jared Hulbert \u003cjaredeh@gmail.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02ac597c9b86af49b2016aa98aee20ab59dbf0d2",
      "tree": "7ecf4acd955eabb023dba50c0b4ef67d585eb56e",
      "parents": [
        "8fe4cd0dc5ea43760c59eb256404188272cc95dd"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Feb 11 13:04:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:35 2009 -0800"
      },
      "message": "ext3: revert \"ext3: wait on all pending commits in ext3_sync_fs\"\n\nThis reverts commit c87591b719737b4e91eb1a9fa8fd55a4ff1886d6.\n\nSince journal_start_commit() is now fixed to return 1 when we started a\ntransaction commit, there\u0027s some transaction waiting to be committed or\nthere\u0027s a transaction already committing, we don\u0027t need to call\next3_force_commit() in ext3_sync_fs().  Furthermore ext3_force_commit()\ncan unnecessarily create sync transaction which is expensive so it\u0027s\nworthwhile to remove it when we can.\n\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8fe4cd0dc5ea43760c59eb256404188272cc95dd",
      "tree": "f02892b7393c60b98b51202d868fa12b0a2339e2",
      "parents": [
        "fc3501d411d34823fb9be248a95a0c44f945866f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Feb 11 13:04:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:35 2009 -0800"
      },
      "message": "jbd: fix return value of journal_start_commit()\n\njournal_start_commit() returns 1 if either a transaction is committing or\nthe function has queued a transaction commit.  But it returns 0 if we\nraced with somebody queueing the transaction commit as well.  This\nresulted in ext3_sync_fs() not functioning correctly (description from\nArthur Jones): In the case of a data\u003dordered umount with pending long\nsymlinks which are delayed due to a long list of other I/O on the backing\nblock device, this causes the buffer associated with the long symlinks to\nnot be moved to the inode dirty list in the second phase of fsync_super.\nThen, before they can be dirtied again, kjournald exits, seeing the UMOUNT\nflag and the dirty pages are never written to the backing block device,\ncausing long symlink corruption and exposing new or previously freed block\ndata to userspace.\n\nThis can be reproduced with a script created by Eric Sandeen\n\u003csandeen@redhat.com\u003e:\n\n        #!/bin/bash\n\n        umount /mnt/test2\n        mount /dev/sdb4 /mnt/test2\n        rm -f /mnt/test2/*\n        dd if\u003d/dev/zero of\u003d/mnt/test2/bigfile bs\u003d1M count\u003d512\n        touch /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n        ln -s /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n        /mnt/test2/link\n        umount /mnt/test2\n        mount /dev/sdb4 /mnt/test2\n        ls /mnt/test2/\n\nThis patch fixes journal_start_commit() to always return 1 when there\u0027s\na transaction committing or queued for commit.\n\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: Mike Snitzer \u003csnitzer@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a6fe125950676015f5108fb71b2a67441755003",
      "tree": "c985fac46de39392466c4917c497b50bdc9c0757",
      "parents": [
        "4c098bcd55fad34dcf224bf8343db6a9ac58fc68"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Feb 10 14:02:27 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 10 10:48:42 2009 -0800"
      },
      "message": "Do not account for the address space used by hugetlbfs using VM_ACCOUNT\n\nWhen overcommit is disabled, the core VM accounts for pages used by anonymous\nshared, private mappings and special mappings. It keeps track of VMAs that\nshould be accounted for with VM_ACCOUNT and VMAs that never had a reserve\nwith VM_NORESERVE.\n\nOvercommit for hugetlbfs is much riskier than overcommit for base pages\ndue to contiguity requirements. It avoids overcommiting on both shared and\nprivate mappings using reservation counters that are checked and updated\nduring mmap(). This ensures (within limits) that hugepages exist in the\nfuture when faults occurs or it is too easy to applications to be SIGKILLed.\n\nAs hugetlbfs makes its own reservations of a different unit to the base page\nsize, VM_ACCOUNT should never be set. Even if the units were correct, we would\ndouble account for the usage in the core VM and hugetlbfs. VM_NORESERVE may\nbe set because an application can request no reserves be made for hugetlbfs\nat the risk of getting killed later.\n\nWith commit fc8744adc870a8d4366908221508bb113d8b72ee, VM_NORESERVE and\nVM_ACCOUNT are getting unconditionally set for hugetlbfs-backed mappings. This\nbreaks the accounting for both the core VM and hugetlbfs, can trigger an\nOOM storm when hugepage pools are too small lockups and corrupted counters\notherwise are used. This patch brings hugetlbfs more in line with how the\ncore VM treats VM_NORESERVE but prevents VM_ACCOUNT being set.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c098bcd55fad34dcf224bf8343db6a9ac58fc68",
      "tree": "ba2070fbdb19bc6a2cb648ec5e95d14822ad085d",
      "parents": [
        "d006b2b620ebf87a1d5592fbd7ae75d4a6da8423",
        "284b066af41579f62649048fdec5c5e7091703e6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 09 14:00:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 09 14:00:16 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: don\u0027t use spin_is_contended\n"
    },
    {
      "commit": "284b066af41579f62649048fdec5c5e7091703e6",
      "tree": "e34185c911cb50b0ade04f804056ffbe2a6e04ae",
      "parents": [
        "42f15d77df8a7e8a2feb15041d5d30710ee7f951"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 09 16:22:03 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 09 16:22:03 2009 -0500"
      },
      "message": "Btrfs: don\u0027t use spin_is_contended\n\nBtrfs was using spin_is_contended to see if it should drop locks before\ndoing extent allocations during btrfs_search_slot.  The idea was to avoid\nexpensive searches in the tree unless the lock was actually contended.\n\nBut, spin_is_contended is specific to the ticket spinlocks on x86, so this\nis causing compile errors everywhere else.\n\nIn practice, the contention could easily appear some time after we started\ndoing the extent allocation, and it makes more sense to always drop the lock\ninstead.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "896abeb743579fc8be0d16d15d6768a158a3a109",
      "tree": "8b5f6ce348ea00e5f67de8f67001fdbfd248de32",
      "parents": [
        "f06da264cfb0f9444d41ca247213e419f90aa72a",
        "9d9b87c1218be78ddecbc85ec3bb91c79c1d56ab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 09 10:30:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 09 10:30:19 2009 -0800"
      },
      "message": "Merge branch \u0027for-2.6.29\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.29\u0027 of git://linux-nfs.org/~bfields/linux:\n  lockd: fix regression in lockd\u0027s handling of blocked locks\n"
    },
    {
      "commit": "9d9b87c1218be78ddecbc85ec3bb91c79c1d56ab",
      "tree": "e33e637f4fa8b4dd1946c6a29e290078d34a388c",
      "parents": [
        "eda58a85ec3fc05855a26654d97a2b53f0e715b9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Feb 04 17:35:38 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 09 13:19:46 2009 -0500"
      },
      "message": "lockd: fix regression in lockd\u0027s handling of blocked locks\n\nIf a client requests a blocking lock, is denied, then requests it again,\nthen here in nlmsvc_lock() we will call vfs_lock_file() without FL_SLEEP\nset, because we\u0027ve already queued a block and don\u0027t need the locks code\nto do it again.\n\nBut that means vfs_lock_file() will return -EAGAIN instead of\nFILE_LOCK_DENIED.  So we still need to translate that -EAGAIN return\ninto a nlm_lck_blocked error in this case, and put ourselves back on\nlockd\u0027s block list.\n\nThe bug was introduced by bde74e4bc64415b1 \"locks: add special return\nvalue for asynchronous locks\".\n\nThanks to Frank van Maarseveen for the report; his original test\ncase was essentially\n\n\tfor i in `seq 30`; do flock /nfsmount/foo sleep 10 \u0026 done\n\nTested-by: Frank van Maarseveen \u003cfrankvm@frankvm.com\u003e\nReported-by: Frank van Maarseveen \u003cfrankvm@frankvm.com\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "766ccb9ed406c230d13c145def08ebea1b932982",
      "tree": "952f74260d8baa66063fd8efa1b29d2dddb45c2b",
      "parents": [
        "f30d5b307c694e03368ab55f2f96b0ca4131e775"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue Jan 20 15:31:31 2009 +0100"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Feb 08 09:56:11 2009 -0800"
      },
      "message": "async: Rename _special -\u003e _domain for clarity.\n\nRename the async_*_special() functions to async_*_domain(), which\ndescribes the purpose of these functions much better.\n[Broke up long lines to silence checkpatch]\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "ccfef64621ef1e8c7726581b38eb8b98fd2a8afb",
      "tree": "74d99dcecbd7adad1dcd5d61fac408855b43a267",
      "parents": [
        "ae1a25da8448271a99745da03100d5299575a269",
        "0bf2f3aec5474da80a60e1baca629af87ecb67b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:52:55 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:52:55 2009 -0800"
      },
      "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:\n  CRED: Fix SUID exec regression\n"
    },
    {
      "commit": "ae1a25da8448271a99745da03100d5299575a269",
      "tree": "841c931e9eed1003d7d1c8157e9c6214939384c4",
      "parents": [
        "fd9fc842bbab0cb5560b0d52ce4598c898707863",
        "42f15d77df8a7e8a2feb15041d5d30710ee7f951"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:37:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:37:22 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (37 commits)\n  Btrfs: Make sure dir is non-null before doing S_ISGID checks\n  Btrfs: Fix memory leak in cache_drop_leaf_ref\n  Btrfs: don\u0027t return congestion in write_cache_pages as often\n  Btrfs: Only prep for btree deletion balances when nodes are mostly empty\n  Btrfs: fix btrfs_unlock_up_safe to walk the entire path\n  Btrfs: change btrfs_del_leaf to drop locks earlier\n  Btrfs: Change btrfs_truncate_inode_items to stop when it hits the inode\n  Btrfs: Don\u0027t try to compress pages past i_size\n  Btrfs: join the transaction in __btrfs_setxattr\n  Btrfs: Handle SGID bit when creating inodes\n  Btrfs: Make btrfs_drop_snapshot work in larger and more efficient chunks\n  Btrfs: Change btree locking to use explicit blocking points\n  Btrfs: hash_lock is no longer needed\n  Btrfs: disable leak debugging checks in extent_io.c\n  Btrfs: sort references by byte number during btrfs_inc_ref\n  Btrfs: async threads should try harder to find work\n  Btrfs: selinux support\n  Btrfs: make btrfs acls selectable\n  Btrfs: Catch missed bios in the async bio submission thread\n  Btrfs: fix readdir on 32 bit machines\n  ...\n"
    },
    {
      "commit": "fd9fc842bbab0cb5560b0d52ce4598c898707863",
      "tree": "ff8fc9b1c964debf18ba662558b26bf7bb7513cc",
      "parents": [
        "eeb94855beeb7fde5f9e2ed72fe6a8b24cd5a3c7"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Feb 06 18:06:51 2009 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:36:40 2009 -0800"
      },
      "message": "eCryptfs: Regression in unencrypted filename symlinks\n\nThe addition of filename encryption caused a regression in unencrypted\nfilename symlink support.  ecryptfs_copy_filename() is used when dealing\nwith unencrypted filenames and it reported that the new, copied filename\nwas a character longer than it should have been.\n\nThis caused the return value of readlink() to count the NULL byte of the\nsymlink target.  Most applications don\u0027t care about the extra NULL byte,\nbut a version control system (bzr) helped in discovering the bug.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d87b0d388c65feb890f1e0aa832338a33d0760f",
      "tree": "ca1980ce84f2fb1bc7952738e32f9657dc4d0154",
      "parents": [
        "d4cf109f05ff04c6f5065c3e14165ef01a57dd53",
        "92dc07b1f988e8c237a38e23be660b9b8533e6fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:10:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:10:04 2009 -0800"
      },
      "message": "Merge branch \u0027to-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-roland\n\n* \u0027to-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-roland:\n  elf core dump: fix get_user use\n"
    },
    {
      "commit": "92dc07b1f988e8c237a38e23be660b9b8533e6fd",
      "tree": "4a689fbb465d7302b105678152170d8665f56ae7",
      "parents": [
        "6cec50838ed04a9833fb5549f698d3756bbe7e72"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Feb 06 17:34:07 2009 -0800"
      },
      "committer": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Feb 06 17:34:07 2009 -0800"
      },
      "message": "elf core dump: fix get_user use\n\nThe elf_core_dump() code does its work with set_fs(KERNEL_DS) in force,\nso vma_dump_size() needs to switch back with set_fs(USER_DS) to safely\nuse get_user() for a normal user-space address.\n\nChecking for VM_READ optimizes out the case where get_user() would fail\nanyway.  The vm_file check here was already superfluous given the control\nflow earlier in the function, so that is a cleanup/optimization unrelated\nto other changes but an obvious and trivial one.\n\nReported-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\n"
    },
    {
      "commit": "0bf2f3aec5474da80a60e1baca629af87ecb67b6",
      "tree": "5c1a7733e24aaacbcf46e0434a11f033cfde43ca",
      "parents": [
        "6cec50838ed04a9833fb5549f698d3756bbe7e72"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 06 11:45:46 2009 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Feb 07 08:46:18 2009 +1100"
      },
      "message": "CRED: Fix SUID exec regression\n\nThe patch:\n\n\tcommit a6f76f23d297f70e2a6b3ec607f7aeeea9e37e8d\n\tCRED: Make execve() take advantage of copy-on-write credentials\n\nmoved the place in which the \u0027safeness\u0027 of a SUID/SGID exec was performed to\nbefore de_thread() was called.  This means that LSM_UNSAFE_SHARE is now\ncalculated incorrectly.  This flag is set if any of the usage counts for\nfs_struct, files_struct and sighand_struct are greater than 1 at the time the\ndetermination is made.  All of which are true for threads created by the\npthread library.\n\nHowever, since we wish to make the security calculation before irrevocably\ndamaging the process so that we can return it an error code in the case where\nwe decide we want to reject the exec request on this basis, we have to make the\ndetermination before calling de_thread().\n\nSo, instead, we count up the number of threads (CLONE_THREAD) that are sharing\nour fs_struct (CLONE_FS), files_struct (CLONE_FILES) and sighand_structs\n(CLONE_SIGHAND/CLONE_THREAD) with us.  These will be killed by de_thread() and\nso can be discounted by check_unsafe_exec().\n\nWe do have to be careful because CLONE_THREAD does not imply FS or FILES.\n\nWe _assume_ that there will be no extra references to these structs held by the\nthreads we\u0027re going to kill.\n\nThis can be tested with the attached pair of programs.  Build the two programs\nusing the Makefile supplied, and run ./test1 as a non-root user.  If\nsuccessful, you should see something like:\n\n\t[dhowells@andromeda tmp]$ ./test1\n\t--TEST1--\n\tuid\u003d4043, euid\u003d4043 suid\u003d4043\n\texec ./test2\n\t--TEST2--\n\tuid\u003d4043, euid\u003d0 suid\u003d0\n\tSUCCESS - Correct effective user ID\n\nand if unsuccessful, something like:\n\n\t[dhowells@andromeda tmp]$ ./test1\n\t--TEST1--\n\tuid\u003d4043, euid\u003d4043 suid\u003d4043\n\texec ./test2\n\t--TEST2--\n\tuid\u003d4043, euid\u003d4043 suid\u003d4043\n\tERROR - Incorrect effective user ID!\n\nThe non-root user ID you see will depend on the user you run as.\n\n[test1.c]\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cpthread.h\u003e\n\nstatic void *thread_func(void *arg)\n{\n\twhile (1) {}\n}\n\nint main(int argc, char **argv)\n{\n\tpthread_t tid;\n\tuid_t uid, euid, suid;\n\n\tprintf(\"--TEST1--\\n\");\n\tgetresuid(\u0026uid, \u0026euid, \u0026suid);\n\tprintf(\"uid\u003d%d, euid\u003d%d suid\u003d%d\\n\", uid, euid, suid);\n\n\tif (pthread_create(\u0026tid, NULL, thread_func, NULL) \u003c 0) {\n\t\tperror(\"pthread_create\");\n\t\texit(1);\n\t}\n\n\tprintf(\"exec ./test2\\n\");\n\texeclp(\"./test2\", \"test2\", NULL);\n\tperror(\"./test2\");\n\t_exit(1);\n}\n\n[test2.c]\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cunistd.h\u003e\n\nint main(int argc, char **argv)\n{\n\tuid_t uid, euid, suid;\n\n\tgetresuid(\u0026uid, \u0026euid, \u0026suid);\n\tprintf(\"--TEST2--\\n\");\n\tprintf(\"uid\u003d%d, euid\u003d%d suid\u003d%d\\n\", uid, euid, suid);\n\n\tif (euid !\u003d 0) {\n\t\tfprintf(stderr, \"ERROR - Incorrect effective user ID!\\n\");\n\t\texit(1);\n\t}\n\tprintf(\"SUCCESS - Correct effective user ID\\n\");\n\texit(0);\n}\n\n[Makefile]\nCFLAGS \u003d -D_GNU_SOURCE -Wall -Werror -Wunused\nall: test1 test2\n\ntest1: test1.c\n\tgcc $(CFLAGS) -o test1 test1.c -lpthread\n\ntest2: test2.c\n\tgcc $(CFLAGS) -o test2 test2.c\n\tsudo chown root.root test2\n\tsudo chmod +s test2\n\nReported-by: David Smith \u003cdsmith@redhat.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: David Smith \u003cdsmith@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "d4cf109f05ff04c6f5065c3e14165ef01a57dd53",
      "tree": "898a0d6b4d8934ec4939a8572e1b78dbb9689d93",
      "parents": [
        "6cec50838ed04a9833fb5549f698d3756bbe7e72"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@linux.vnet.ibm.com",
        "time": "Fri Feb 06 14:59:26 2009 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 13:34:22 2009 -0800"
      },
      "message": "vfs: Don\u0027t call attach_nobh_buffers() with an empty list\n\nThis is a modification of a patch by Bill Pemberton \u003cwfp5p@virginia.edu\u003e\n\nnobh_write_end() could call attach_nobh_buffers() with head \u003d\u003d NULL.\nThis would result in a trap when attach_nobh_buffers() attempted to\naccess bh-\u003eb_this_page.\n\nThis can be illustrated by running the writev01 testcase from LTP on jfs.\n\nThis error was introduced by commit 5b41e74a \"vfs: fix data leak in\nnobh_write_end()\".  That patch did not take into account that if\nPageMappedToDisk() is true upon entry to nobh_write_begin(), then no\nbuffers will be allocated for the page.  In that case, we won\u0027t have to\nworry about a failed write leaving unitialized data in the page.\n\nOf course, head !\u003d NULL implies !page_has_buffers(page), so no need to\ntest both.\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Bill Pemberton \u003cwfp5p@virginia.edu\u003e\nCc: Dmitri Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42f15d77df8a7e8a2feb15041d5d30710ee7f951",
      "tree": "5b6a3cdaab135c41848952874a6fab086b8b9f72",
      "parents": [
        "806638bce99f51deccbfedbe86ab3c5cf55a1d35"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 06 11:35:57 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 06 11:35:57 2009 -0500"
      },
      "message": "Btrfs: Make sure dir is non-null before doing S_ISGID checks\n\nThe S_ISGID check in btrfs_new_inode caused an oops during subvol creation\nbecause sometimes the dir is null.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "767b5828ad9a1b435488b5d39b5a66aeef4d25e4",
      "tree": "40dc54bb63899ff8fd2de31dfeb83230bddad935",
      "parents": [
        "082256333f4e879bc4b56e294921aaff6d035da0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Feb 06 00:32:27 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 16:35:52 2009 -0800"
      },
      "message": "braino in sg_ioctl_trans()\n\n... and yes, gcc is insane enough to eat that without complaint.\nWe probably want sparse to scream on those...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "082256333f4e879bc4b56e294921aaff6d035da0",
      "tree": "ddc5ea679909d19b1c7279907c6ff762bc8ac598",
      "parents": [
        "09cd5b8f9dbdc161aec404eea572fbca7d162920",
        "436443f0f77f730f9f700095799c485356695c08"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 16:12:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 16:12:38 2009 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2:\n  Revert \"configfs: Silence lockdep on mkdir(), rmdir() and configfs_depend_item()\"\n"
    },
    {
      "commit": "f01d1d546abb2f4028b5299092f529eefb01253a",
      "tree": "625a9f9923ae53cc9bf75cf46fcebbbeb8ac84a8",
      "parents": [
        "33da8892a2f9e7d4b2d9a35fc80833ba2d2b1aa6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Feb 06 00:30:05 2009 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 14:18:14 2009 -0800"
      },
      "message": "seq_file: fix big-enough lseek() + read()\n\nlseek() further than length of the file will leave stale -\u003eindex\n(second-to-last during iteration). Next seq_read() will not notice\nthat -\u003ef_pos is big enough to return 0, but will print last item\nas if -\u003ef_pos is pointing to it.\n\nIntroduced in commit cb510b8172602a66467f3551b4be1911f5a7c8c2\naka \"seq_file: more atomicity in traverse()\".\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33da8892a2f9e7d4b2d9a35fc80833ba2d2b1aa6",
      "tree": "4261b553653438775461fd408669f1942a383d2e",
      "parents": [
        "361916a943cd9dbda1c0b00879d0225cc919d868"
      ],
      "author": {
        "name": "Eric Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Feb 04 15:12:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:49 2009 -0800"
      },
      "message": "seq_file: move traverse so it can be used from seq_read\n\nIn 2.6.25 some /proc files were converted to use the seq_file\ninfrastructure.  But seq_files do not correctly support pread(), which\nbroke some usersapce applications.\n\nTo handle pread correctly we can\u0027t assume that f_pos is where we left it\nin seq_read.  So move traverse() so that we can eventually use it in\nseq_read and do thus some day support pread().\n\nSigned-off-by: Eric Biederman \u003cebiederm@xmission.com\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "806638bce99f51deccbfedbe86ab3c5cf55a1d35",
      "tree": "86e53bb492274a9e20f515220b737e71b6397b86",
      "parents": [
        "9b0d3ace33ef225690a86d7130feadb22367f496"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 05 09:08:14 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 05 09:08:14 2009 -0500"
      },
      "message": "Btrfs: Fix memory leak in cache_drop_leaf_ref\n\nThe code wasn\u0027t doing a kfree on the sorted array\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "436443f0f77f730f9f700095799c485356695c08",
      "tree": "d699084a975af202efd62590f20b0b9579e5a4aa",
      "parents": [
        "dcf6a79dda5cc2a2bec183e50d829030c0972aaa"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Feb 03 23:12:34 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Feb 04 09:46:25 2009 -0800"
      },
      "message": "Revert \"configfs: Silence lockdep on mkdir(), rmdir() and configfs_depend_item()\"\n\nThis reverts commit 0e0333429a6280e6eb3c98845e4eed90d5f8078a.\n\nI committed this by accident - Joel and Louis are working with the lockdep\nmaintainer to provide a better solution than just turning lockdep off.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: \u003cJoel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "9b0d3ace33ef225690a86d7130feadb22367f496",
      "tree": "eae45955a38b4d4c2515549112ec749590b56aa9",
      "parents": [
        "7b78c170dc4f538cc7ee66f47b3aac3f3974a36c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:33:00 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:33:00 2009 -0500"
      },
      "message": "Btrfs: don\u0027t return congestion in write_cache_pages as often\n\nOn fast devices that go from congested to uncongested very quickly, pdflush\nis waiting too often in congestion_wait, and the FS is backing off to\neasily in write_cache_pages.\n\nFor now, fix this on the btrfs side by only checking congestion after\nsome bios have already gone down.  Longer term a real fix is needed\nfor pdflush, but that is a larger project.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7b78c170dc4f538cc7ee66f47b3aac3f3974a36c",
      "tree": "e2301fba4de0f3a04cf4b691f63e2bdf1e8c64d2",
      "parents": [
        "12f4daccfc3732280debba8f9ba49720372de831"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:12:46 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:12:46 2009 -0500"
      },
      "message": "Btrfs: Only prep for btree deletion balances when nodes are mostly empty\n\nWhenever an item deletion is done, we need to balance all the nodes\nin the tree to make sure we don\u0027t end up with an empty node if a pointer\nis deleted.  This balance prep happens from the root of the tree down\nso we can drop our locks as we go.\n\nreada_for_balance was triggering read-ahead on neighboring nodes even\nwhen no balancing was required.  This adds an extra check to avoid\ncalling balance_level() and avoid reada_for_balance() when a balance\nwon\u0027t be required.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "12f4daccfc3732280debba8f9ba49720372de831",
      "tree": "922d52b907ea8495ab9362a789d607ed7f61b637",
      "parents": [
        "4d081c41a4f98aecb5e86ef7d3e644cc7b52131f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:31:42 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:31:42 2009 -0500"
      },
      "message": "Btrfs: fix btrfs_unlock_up_safe to walk the entire path\n\nbtrfs_unlock_up_safe would break out at the first NULL node entry or\nunlocked node it found in the path.\n\nSome of the callers have missing nodes at the lower levels of the path, so this\ncommit fixes things to check all the nodes in the path before returning.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4d081c41a4f98aecb5e86ef7d3e644cc7b52131f",
      "tree": "441e557a52e85a71e60da81d578bcb22fd4760d7",
      "parents": [
        "06d9a8d7c24fe22836bf0b0f82db59d6f98e271e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:31:28 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:31:28 2009 -0500"
      },
      "message": "Btrfs: change btrfs_del_leaf to drop locks earlier\n\nbtrfs_del_leaf does two things.  First it removes the pointer in the\nparent, and then it frees the block that has the leaf.  It has the\nparent node locked for both operations.\n\nBut, it only needs the parent locked while it is deleting the pointer.\nAfter that it can safely free the block without the parent locked.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "06d9a8d7c24fe22836bf0b0f82db59d6f98e271e",
      "tree": "b6cc453c21c2cb38f8a4b10401bec8652c75a83f",
      "parents": [
        "f03d9301f15fb69cdf1eb59d53c9fb72f68ecccc"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:30:58 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:30:58 2009 -0500"
      },
      "message": "Btrfs: Change btrfs_truncate_inode_items to stop when it hits the inode\n\nbtrfs_truncate_inode_items is setup to stop doing btree searches when\nit has finished removing the items for the inode.  It used to detect the\nend of the inode by looking for an objectid that didn\u0027t match the\none we were searching for.\n\nBut, this would result in an extra search through the btree, which\nadds extra balancing and cow costs to the operation.\n\nThis commit adds a check to see if we found the inode item, which means\nwe can stop searching early.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f03d9301f15fb69cdf1eb59d53c9fb72f68ecccc",
      "tree": "2299a89d213e9fa5f616a5bb0b2125a3c632da97",
      "parents": [
        "811449496b3e3caa9a8cf43feacbade0153324f2"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:31:06 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:31:06 2009 -0500"
      },
      "message": "Btrfs: Don\u0027t try to compress pages past i_size\n\nThe compression code had some checks to make sure we were only\ncompressing bytes inside of i_size, but it wasn\u0027t catching every\ncase.  To make things worse, some incorrect math about the number\nof bytes remaining would make it try to compress more pages than the\nfile really had.\n\nThe fix used here is to fall back to the non-compression code in this\ncase, which does all the proper cleanup of delalloc and other accounting.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "811449496b3e3caa9a8cf43feacbade0153324f2",
      "tree": "b5d5afe2d629b3cf19f27d19445ad9998c6c3b1a",
      "parents": [
        "8c087b5183adab186a298f2d6ed39aefdcae413c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Wed Feb 04 09:18:33 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:18:33 2009 -0500"
      },
      "message": "Btrfs: join the transaction in __btrfs_setxattr\n\nWith selinux on we end up calling __btrfs_setxattr when we create an inode,\nwhich calls btrfs_start_transaction().  The problem is we\u0027ve already called\nthat in btrfs_new_inode, and in btrfs_start_transaction we end up doing a\nwait_current_trans().  If btrfs-transaction has started committing it will wait\nfor all handles to finish, while the other process is waiting for the\ntransaction to commit.  This is fixed by using btrfs_join_transaction, which\nwon\u0027t wait for the transaction to commit.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\n\n\n"
    },
    {
      "commit": "8c087b5183adab186a298f2d6ed39aefdcae413c",
      "tree": "ee0ee85c27516f24d4456efed5f8561ee34b82f0",
      "parents": [
        "bd56b30205bc09da0beb80d4ba3d4c7309792da5"
      ],
      "author": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Feb 04 09:29:54 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:29:54 2009 -0500"
      },
      "message": "Btrfs: Handle SGID bit when creating inodes\nBefore this patch, new files/dirs would ignore the SGID bit on their\nparent directory and always be owned by the creating user\u0027s uid/gid.\n\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n\n"
    },
    {
      "commit": "bd56b30205bc09da0beb80d4ba3d4c7309792da5",
      "tree": "a5cb3104687b27e923b73b2840f053abc1229a92",
      "parents": [
        "b4ce94de9b4d64e8ab3cf155d13653c666e22b9b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:27:02 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:27:02 2009 -0500"
      },
      "message": "Btrfs: Make btrfs_drop_snapshot work in larger and more efficient chunks\n\nEvery transaction in btrfs creates a new snapshot, and then schedules the\nsnapshot from the last transaction for deletion.  Snapshot deletion\nworks by walking down the btree and dropping the reference counts\non each btree block during the walk.\n\nIf if a given leaf or node has a reference count greater than one,\nthe reference count is decremented and the subtree pointed to by that\nnode is ignored.\n\nIf the reference count is one, walking continues down into that node\nor leaf, and the references of everything it points to are decremented.\n\nThe old code would try to work in small pieces, walking down the tree\nuntil it found the lowest leaf or node to free and then returning.  This\nwas very friendly to the rest of the FS because it didn\u0027t have a huge\nimpact on other operations.\n\nBut it wouldn\u0027t always keep up with the rate that new commits added new\nsnapshots for deletion, and it wasn\u0027t very optimal for the extent\nallocation tree because it wasn\u0027t finding leaves that were close together\non disk and processing them at the same time.\n\nThis changes things to walk down to a level 1 node and then process it\nin bulk.  All the leaf pointers are sorted and the leaves are dropped\nin order based on their extent number.\n\nThe extent allocation tree and commit code are now fast enough for\nthis kind of bulk processing to work without slowing the rest of the FS\ndown.  Overall it does less IO and is better able to keep up with\nsnapshot deletions under high load.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b4ce94de9b4d64e8ab3cf155d13653c666e22b9b",
      "tree": "ebc44a9554a50b495b091cb0979d79fd29e50fe7",
      "parents": [
        "c487685d7c18a8481900755aa5c56a7a74193101"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:25:08 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:25:08 2009 -0500"
      },
      "message": "Btrfs: Change btree locking to use explicit blocking points\n\nMost of the btrfs metadata operations can be protected by a spinlock,\nbut some operations still need to schedule.\n\nSo far, btrfs has been using a mutex along with a trylock loop,\nmost of the time it is able to avoid going for the full mutex, so\nthe trylock loop is a big performance gain.\n\nThis commit is step one for getting rid of the blocking locks entirely.\nbtrfs_tree_lock takes a spinlock, and the code explicitly switches\nto a blocking lock when it starts an operation that can schedule.\n\nWe\u0027ll be able get rid of the blocking locks in smaller pieces over time.\nTracing allows us to find the most common cause of blocking, so we\ncan start with the hot spots first.\n\nThe basic idea is:\n\nbtrfs_tree_lock() returns with the spin lock held\n\nbtrfs_set_lock_blocking() sets the EXTENT_BUFFER_BLOCKING bit in\nthe extent buffer flags, and then drops the spin lock.  The buffer is\nstill considered locked by all of the btrfs code.\n\nIf btrfs_tree_lock gets the spinlock but finds the blocking bit set, it drops\nthe spin lock and waits on a wait queue for the blocking bit to go away.\n\nMuch of the code that needs to set the blocking bit finishes without actually\nblocking a good percentage of the time.  So, an adaptive spin is still\nused against the blocking bit to avoid very high context switch rates.\n\nbtrfs_clear_lock_blocking() clears the blocking bit and returns\nwith the spinlock held again.\n\nbtrfs_tree_unlock() can be called on either blocking or spinning locks,\nit does the right thing based on the blocking bit.\n\nctree.c has a helper function to set/clear all the locked buffers in a\npath as blocking.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c487685d7c18a8481900755aa5c56a7a74193101",
      "tree": "f2ff6c059e24d7fdf2e1fff498bbef0bb90bfbfc",
      "parents": [
        "3935127c50c84106d654ef14962cff28c660bc62"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:24:25 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:24:25 2009 -0500"
      },
      "message": "Btrfs: hash_lock is no longer needed\n\nBefore metadata is written to disk, it is updated to reflect that writeout\nhas begun.  Once this update is done, the block must be cow\u0027d before it\ncan be modified again.\n\nThis update was originally synchronized by using a per-fs spinlock.  Today\nthe buffers for the metadata blocks are locked before writeout begins,\nand everyone that tests the flag has the buffer locked as well.\n\nSo, the per-fs spinlock (called hash_lock for no good reason) is no\nlonger required.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3935127c50c84106d654ef14962cff28c660bc62",
      "tree": "1d277f316eb0134a4a76fa2b237a048a0d925911",
      "parents": [
        "b7a9f29fcf4e53e9ca7982331649fa2013e69c99"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:24:05 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:24:05 2009 -0500"
      },
      "message": "Btrfs: disable leak debugging checks in extent_io.c\n\nextent_io.c has debugging code to report and free leaked extent_state\nand extent_buffer objects at rmmod time.  This helps track down\nleaks and it saves you from rebooting just to properly remove the\nkmem_cache object.\n\nBut, the code runs under a fairly expensive spinlock and the checks to\nsee if it is currently enabled are not entirely consistent.  Some use\n#ifdef and some #if.\n\nThis changes everything to #if and disables the leak checking.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b7a9f29fcf4e53e9ca7982331649fa2013e69c99",
      "tree": "544a1f9ca00af73fd22380610fd2d6961e066218",
      "parents": [
        "b51912c91fcf7581cc7b4550f1bb96422809d9ed"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:23:45 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:23:45 2009 -0500"
      },
      "message": "Btrfs: sort references by byte number during btrfs_inc_ref\n\nWhen a block goes through cow, we update the reference counts of\neverything that block points to.  The internal pointers of the block\ncan be in just about any order, and it is likely to have clusters of\nthings that are close together and clusters of things that are not.\n\nTo help reduce the seeks that come with updating all of these reference\ncounts, sort them by byte number before actual updates are done.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b51912c91fcf7581cc7b4550f1bb96422809d9ed",
      "tree": "3738e358e75088d300b289e013beccffe0af8e05",
      "parents": [
        "0279b4cd86685b5eea467c1b74ce94f0add2c0a3"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:23:24 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:23:24 2009 -0500"
      },
      "message": "Btrfs: async threads should try harder to find work\n\nTracing shows the delay between when an async thread goes to sleep\nand when more work is added is often very short.  This commit adds\na little bit of delay and extra checking to the code right before\nwe schedule out.\n\nIt allows more work to be added to the worker\nwithout requiring notifications from other procs.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0279b4cd86685b5eea467c1b74ce94f0add2c0a3",
      "tree": "54caafd4c6b31e2bc9861217627297c00af89066",
      "parents": [
        "bef62ef339c15d7721da88958b03f7b544464722"
      ],
      "author": {
        "name": "Jim Owens",
        "email": "jowens@hp.com",
        "time": "Wed Feb 04 09:29:13 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:29:13 2009 -0500"
      },
      "message": "Btrfs: selinux support\nAdd call to LSM security initialization and save\nresulting security xattr for new inodes.\n\nAdd xattr support to symlink inode ops.\n\nSet inode-\u003ei_op for existing special files.\n\nSigned-off-by: jim owens \u003cjowens@hp.com\u003e\n"
    },
    {
      "commit": "bef62ef339c15d7721da88958b03f7b544464722",
      "tree": "fb25ed6462febc1a336feba4dcef83d8145e25ad",
      "parents": [
        "a68370515356a3eddbfaf7f56418b3cf85d76c2c"
      ],
      "author": {
        "name": "Christian Hesse",
        "email": "mail@earthworm.de",
        "time": "Wed Feb 04 09:28:28 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:28:28 2009 -0500"
      },
      "message": "Btrfs: make btrfs acls selectable\nThis patch adds a menu entry to kconfig to enable acls for btrfs.\nThis allows you to enable FS_POSIX_ACL at kernel compile time.\n\n(updated by Jeff Mahoney to make the changes in fs/btrfs/Kconfig instead)\n\nSigned-off-by: Christian Hesse \u003cmail@earthworm.de\u003e\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\n"
    },
    {
      "commit": "a68370515356a3eddbfaf7f56418b3cf85d76c2c",
      "tree": "362cfc618cc2eee50f43d91600b9e829539976c5",
      "parents": [
        "89f135d8b53bcccafd91a075366d2704ba257cf3"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:19:41 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 04 09:19:41 2009 -0500"
      },
      "message": "Btrfs: Catch missed bios in the async bio submission thread\n\nThe async bio submission thread was missing some bios that were\nadded after it had decided there was no work left to do.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f96c08e8c5935d80bb9fd48c61b5bfa00878519e",
      "tree": "f0e34c84ce69a9e076c23299c94f0fd583a568e0",
      "parents": [
        "7420b73dc05ae1faa36b49774210a13d29349c53",
        "27ad27993313312a4ad0047d0a944c425cd511a5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 03 16:52:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 03 16:52:44 2009 -0800"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: remove fast unmounting\n  UBIFS: return sensible error codes\n  UBIFS: remount ro fixes\n  UBIFS: spelling fix \u0027date\u0027 -\u003e \u0027data\u0027\n  UBIFS: sync wbufs after syncing inodes and pages\n  UBIFS: fix LPT out-of-space bug (again)\n  UBIFS: fix no_chk_data_crc\n  UBIFS: fix assertions\n  UBIFS: ensure orphan area head is initialized\n  UBIFS: always clean up GC LEB space\n  UBIFS: add re-mount debugging checks\n  UBIFS: fix LEB list freeing\n  UBIFS: simplify locking\n  UBIFS: document dark_wm and dead_wm better\n  UBIFS: do not treat all data as short term\n  UBIFS: constify operations\n  UBIFS: do not commit twice\n"
    },
    {
      "commit": "3e1c4005134e3a090c64c1bc35f965043bb451f4",
      "tree": "aae42aa4706ac44091eb119776183f2c61f0aed0",
      "parents": [
        "b987e8e5a986e77069c99fda5da6878751808fe9",
        "fd4ef231962ab44fd1004e87f9d7c6809f00cd64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 03 16:50:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 03 16:50:20 2009 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2:\n  ocfs2: add quota call to ocfs2_remove_btree_range()\n  ocfs2: Wakeup the downconvert thread after a successful cancel convert\n  ocfs2: Access the xattr bucket only before modifying it.\n  configfs: Silence lockdep on mkdir(), rmdir() and configfs_depend_item()\n  ocfs2: Fix possible deadlock in ocfs2_write_dquot()\n  ocfs2: Push out dropping of dentry lock to ocfs2_wq\n"
    },
    {
      "commit": "43f3f057c56d030546145696627f13f95735be95",
      "tree": "80124e5096315934cf90af96d5b6d71428ed1b89",
      "parents": [
        "6139a2360987f55e4490a7813cf69df74ec8b93a"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Jan 22 21:34:05 2009 -0600"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Feb 03 11:04:54 2009 -0600"
      },
      "message": "[XFS] Warn on transaction in flight on read-only remount\n\nTill VFS can correctly support read-only remount without racing,\nuse WARN_ON instead of BUG_ON on detecting transaction in flight\nafter quiescing filesystem.\n\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6139a2360987f55e4490a7813cf69df74ec8b93a",
      "tree": "650a4ac7ef9181b0e98cae627728eae2b260c33d",
      "parents": [
        "6d2160bfe7826aca1c94b4bca77093908a452ae7"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jan 22 15:37:47 2009 +1100"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Feb 03 11:01:32 2009 -0600"
      },
      "message": "xfs: Check buffer lengths in log recovery\n\nBefore trying to obtain, read or write a buffer,\ncheck that the buffer length is actually valid. If\nit is not valid, then something read in the recovery\nprocess has been corrupted and we should abort\nrecovery.\n\nReported-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nTested-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nReviewed-by: Christoph Hellwig \u003chch@infradead.org\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "6d2160bfe7826aca1c94b4bca77093908a452ae7",
      "tree": "8153fcd8a7c467e5de136f312e8ef5b27bea9d6b",
      "parents": [
        "f0e0059b9c18426cffdcc04161062251a8f9741e",
        "b1792e367053968f2ddb48bc911d314143ce6242"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Feb 03 10:38:41 2009 -0600"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Feb 03 10:38:41 2009 -0600"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-linus\n"
    },
    {
      "commit": "fd4ef231962ab44fd1004e87f9d7c6809f00cd64",
      "tree": "7a79939e1a5c84a41e1a7063fbe2eb68848c9a25",
      "parents": [
        "a4b91965d39d5d53b470d6aa62cba155a6f3ffe1"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Jan 29 15:06:21 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Feb 02 14:20:20 2009 -0800"
      },
      "message": "ocfs2: add quota call to ocfs2_remove_btree_range()\n\nWe weren\u0027t reclaiming the clusters which get free\u0027d from this function,\nso any user punching holes in a file would still have those bytes accounted\nagainst him/her. Add the call to vfs_dq_free_space_nodirty() to fix this.\nInterestingly enough, the journal credits calculation already took this into\naccount.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "a4b91965d39d5d53b470d6aa62cba155a6f3ffe1",
      "tree": "823d8730f730e41204c62f645953fac5de9315a3",
      "parents": [
        "554e7f9e043e29da79c044f7a55efe4fad40701e"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Jan 29 17:12:31 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Feb 02 14:20:19 2009 -0800"
      },
      "message": "ocfs2: Wakeup the downconvert thread after a successful cancel convert\n\nWhen two nodes holding PR locks on a resource concurrently attempt to\nupconvert the locks to EX, the master sends a BAST to one of the nodes. This\nmessage tells that node to first cancel convert the upconvert request,\nfollowed by downconvert to a NL. Only when this lock is downconverted to NL,\ncan the master upconvert the first node\u0027s lock to EX.\n\nWhile the fs was doing the cancel convert, it was forgetting to wake up the\ndc thread after a successful cancel, leading to a deadlock.\n\nReported-and-Tested-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "554e7f9e043e29da79c044f7a55efe4fad40701e",
      "tree": "769a30452132cedc68cd6171c17c407bf3c39464",
      "parents": [
        "0e0333429a6280e6eb3c98845e4eed90d5f8078a"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Jan 08 08:21:43 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Feb 02 14:20:18 2009 -0800"
      },
      "message": "ocfs2: Access the xattr bucket only before modifying it.\n\nIn ocfs2_xattr_value_truncate, we may call b-tree codes which will\nextend the journal transaction. It has a potential problem that it\nmay let the already-accessed-but-not-dirtied buffers gone. So we\u0027d\nbetter access the bucket after we call ocfs2_xattr_value_truncate.\nAnd as for the root buffer for the xattr value, b-tree code will\nacess and dirty it, so we don\u0027t need to worry about it.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0e0333429a6280e6eb3c98845e4eed90d5f8078a",
      "tree": "5c04f9892c52faedfaa5b879a23f96bf77d02953",
      "parents": [
        "f8afead7169f0f28a4b421bcbdb510e52a2d094d"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "Joel.Becker@oracle.com",
        "time": "Wed Dec 17 14:23:52 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Feb 02 14:20:18 2009 -0800"
      },
      "message": "configfs: Silence lockdep on mkdir(), rmdir() and configfs_depend_item()\n\nWhen attaching default groups (subdirs) of a new group (in mkdir() or\nin configfs_register()), configfs recursively takes inode\u0027s mutexes\nalong the path from the parent of the new group to the default\nsubdirs. This is needed to ensure that the VFS will not race with\noperations on these sub-dirs. This is safe for the following reasons:\n\n- the VFS allows one to lock first an inode and second one of its\n  children (The lock subclasses for this pattern are respectively\n  I_MUTEX_PARENT and I_MUTEX_CHILD);\n- from this rule any inode path can be recursively locked in\n  descending order as long as it stays under a single mountpoint and\n  does not follow symlinks.\n\nUnfortunately lockdep does not know (yet?) how to handle such\nrecursion.\n\nI\u0027ve tried to use Peter Zijlstra\u0027s lock_set_subclass() helper to\nupgrade i_mutexes from I_MUTEX_CHILD to I_MUTEX_PARENT when we know\nthat we might recursively lock some of their descendant, but this\nusage does not seem to fit the purpose of lock_set_subclass() because\nit leads to several i_mutex locked with subclass I_MUTEX_PARENT by\nthe same task.\n\n\u003eFrom inside configfs it is not possible to serialize those recursive\nlocking with a top-level one, because mkdir() and rmdir() are already\ncalled with inodes locked by the VFS. So using some\nmutex_lock_nest_lock() is not an option.\n\nI am proposing two solutions:\n1) one that wraps recursive mutex_lock()s with\n   lockdep_off()/lockdep_on().\n2) (as suggested earlier by Peter Zijlstra) one that puts the\n   i_mutexes recursively locked in different classes based on their\n   depth from the top-level config_group created. This\n   induces an arbitrary limit (MAX_LOCK_DEPTH - 2 \u003d\u003d 46) on the\n   nesting of configfs default groups whenever lockdep is activated\n   but this limit looks reasonably high. Unfortunately, this alos\n   isolates VFS operations on configfs default groups from the others\n   and thus lowers the chances to detect locking issues.\n\nThis patch implements solution 1).\n\nSolution 2) looks better from lockdep\u0027s point of view, but fails with\nconfigfs_depend_item(). This needs to rework the locking\nscheme of configfs_depend_item() by removing the variable lock recursion\ndepth, and I think that it\u0027s doable thanks to the configfs_dirent_lock.\nFor now, let\u0027s stick to solution 1).\n\nSigned-off-by: Louis Rilling \u003clouis.rilling@kerlabs.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "f8afead7169f0f28a4b421bcbdb510e52a2d094d",
      "tree": "83245132376808a9a03868b6beb28d66e1f2a8fa",
      "parents": [
        "ea455f8ab68338ba69f5d3362b342c115bea8e13"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 12 23:20:32 2009 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Feb 02 14:20:17 2009 -0800"
      },
      "message": "ocfs2: Fix possible deadlock in ocfs2_write_dquot()\n\nIt could happen that some limit has been set via quotactl() and in parallel\n-\u003emark_dirty() is called from another thread doing e.g. dquot_alloc_space(). In\nsuch case ocfs2_write_dquot() must not try to sync the dquot because that needs\nglobal quota lock but that ranks above transaction start.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ea455f8ab68338ba69f5d3362b342c115bea8e13",
      "tree": "17c052011f821ff5897028a27a1f8cba96046b67",
      "parents": [
        "27421e211a39784694b597dbf35848b88363c248"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 12 23:20:31 2009 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Feb 02 14:20:16 2009 -0800"
      },
      "message": "ocfs2: Push out dropping of dentry lock to ocfs2_wq\n\nDropping of last reference to dentry lock is a complicated operation involving\ndropping of reference to inode. This can get complicated and quota code in\nparticular needs to obtain some quota locks which leads to potential deadlock.\nThus we defer dropping of inode reference to ocfs2_wq.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c01a25e7cf6dcb0fa69c155706d5dd1e76e53796",
      "tree": "3db1252892b9ec594b813b5996b2041df8e47dd3",
      "parents": [
        "ae704e9f92f87b12c5938b07245792857c7c9c14",
        "b9ec63f78b425c0e16cc95605b5d4ff2dc228b97"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 30 08:54:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 30 08:54:29 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: Remove bogus BUG() check in ext4_bmap()\n  ext4: Fix building with EXT4FS_DEBUG\n  ext4: Initialize the new group descriptor when resizing the filesystem\n  ext4: Fix ext4_free_blocks() w/o a journal when files have indirect blocks\n  jbd2: On a __journal_expect() assertion failure printk \"JBD2\", not \"EXT3-fs\"\n  ext3: Add sanity check to make_indexed_dir\n  ext4: Add sanity check to make_indexed_dir\n  ext4: only use i_size_high for regular files\n  ext4: fix wrong use of do_div\n"
    },
    {
      "commit": "ae704e9f92f87b12c5938b07245792857c7c9c14",
      "tree": "b30f065b6bc815a0c0ce7ccb7d1c8a74b7e14b08",
      "parents": [
        "dbeb17016e4d0affccfa07f4e8f61feac75c5a18",
        "3a9a3f6cc55418dd1525e636dccbbe13c394f652"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 30 08:46:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 30 08:46:42 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  cfq-iosched: Allow RT requests to pre-empt ongoing BE timeslice\n  block: add sysfs file for controlling io stats accounting\n  Mark mandatory elevator functions in the biodoc.txt\n  include/linux: Add bsg.h to the Kernel exported headers\n  block: silently error an unsupported barrier bio\n  block: Fix documentation for blkdev_issue_flush()\n  block: add bio_rw_flagged() for testing bio-\u003ebi_rw\n  block: seperate bio/request unplug and sync bits\n  block: export SSD/non-rotational queue flag through sysfs\n  Fix small typo in bio.h\u0027s documentation\n  block: get rid of the manual directory counting in blktrace\n  block: Allow empty integrity profile\n  block: Remove obsolete BUG_ON\n  block: Don\u0027t verify integrity metadata on read error\n"
    },
    {
      "commit": "dbeb17016e4d0affccfa07f4e8f61feac75c5a18",
      "tree": "0cbda9fb039cb96d7c76cce19e1f792d46cd2a3c",
      "parents": [
        "0461ec5bc7745b89a8ab67ba0ea497abd58a6301",
        "f99ec0649accb581cf3e8fcfeea796e82d05f4ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 30 08:41:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 30 08:41:36 2009 -0800"
      },
      "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: (29 commits)\n  tulip: fix 21142 with 10Mbps without negotiation\n  drivers/net/skfp: if !capable(CAP_NET_ADMIN): inverted logic\n  gianfar: Fix Wake-on-LAN support\n  smsc911x: timeout reaches -1\n  smsc9420: fix interrupt signalling test failures\n  ucc_geth: Change uec phy id to the same format as gianfar\u0027s\n  wimax: fix build issue when debugfs is disabled\n  netxen: fix memory leak in drivers/net/netxen_nic_init.c\n  tun: Add some missing TUN compat ioctl translations.\n  ipv4: fix infinite retry loop in IP-Config\n  net: update documentation ip aliases\n  net: Fix OOPS in skb_seq_read().\n  net: Fix frag_list handling in skb_seq_read\n  netxen: revert jumbo ringsize\n  ath5k: fix locking in ath5k_config\n  cfg80211: print correct intersected regulatory domain\n  cfg80211: Fix sanity check on 5 GHz when processing country IE\n  iwlwifi: fix kernel oops when ucode DMA memory allocation failure\n  rtl8187: Fix error in setting OFDM power settings for RTL8187L\n  mac80211: remove Michael Wu as maintainer\n  ...\n"
    },
    {
      "commit": "8ae372e3bb4acaca37ffa2ce54f4cf8dd60a94fa",
      "tree": "6faac5ca9739806c1d4d88f95b2e6eb4e3993e25",
      "parents": [
        "7b24fc4d7eb611da367dea3aad45473050aacd6c"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Sun Jan 04 02:43:39 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jan 30 12:34:36 2009 +0100"
      },
      "message": "block: Remove obsolete BUG_ON\n\nNow that bio_vecs are no longer cleared in bvec_alloc_bs() the following\nBUG_ON must go.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7b24fc4d7eb611da367dea3aad45473050aacd6c",
      "tree": "42c42a317c2236c45edf523ea0fc527189a5203d",
      "parents": [
        "f2257b70b0f9b2fe8f2afd83fc6798dca75930b8"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Sun Jan 04 02:43:38 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jan 30 12:34:36 2009 +0100"
      },
      "message": "block: Don\u0027t verify integrity metadata on read error\n\nIf we get an I/O error on a read request there is no point in doing a\nverify pass on the integrity buffer.  Adjust the completion path\naccordingly.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b9ec63f78b425c0e16cc95605b5d4ff2dc228b97",
      "tree": "702f3b10c7462a94fb130133257a063a289d495f",
      "parents": [
        "9fd9784c91db79e953ea3fe3741f885bdc390a72"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 30 00:00:24 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 30 00:00:24 2009 -0500"
      },
      "message": "ext4: Remove bogus BUG() check in ext4_bmap()\n\nThe code to support journal-less ext4 operation added a BUG to\next4_bmap() which fired if there was no journal and the\nEXT4_STATE_JDATA bit was set in the i_state field.  This caused\nrunning the filefrag program (which uses the FIMBAP ioctl) to trigger\na BUG().\n\nThe EXT4_STATE_JDATA bit is only used for ext4_bmap(), and it\u0027s\nharmless for the bit to be set.  We could add a check in\n__ext4_journalled_writepage() and ext4_journalled_write_end() to only\nset the EXT4_STATE_JDATA bit if the journal is present, but that adds\nan extra test and jump instruction.  It\u0027s easier to simply remove the\nBUG check.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12568\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n\n"
    },
    {
      "commit": "f2257b70b0f9b2fe8f2afd83fc6798dca75930b8",
      "tree": "eb4eee66ed54915fab3e75781affbefb402d6a11",
      "parents": [
        "1737ef7598d3515fdc11cb9ba7e054f334404e04",
        "a9ac49d303f967be0dabd97cb722c4a13109c6c2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 18:21:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 18:21:14 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: make sure we allocate enough storage for socket address\n  [CIFS] Make socket retry timeouts consistent between blocking and nonblocking cases\n  [CIFS] some cleanup to dir.c prior to addition of posix_open\n  [CIFS] revalidate parent inode when rmdir done within that directory\n  [CIFS] Rename md5 functions to avoid collision with new rt modules\n  cifs: turn smb_send into a wrapper around smb_sendv\n"
    },
    {
      "commit": "9df04e1f25effde823a600e755b51475d438f56b",
      "tree": "57a207adf5e4bfb010000724dc1482e421933be4",
      "parents": [
        "3095eb87bb36ae880608fe3fc46cfd59ced1f319"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Thu Jan 29 14:25:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 18:04:45 2009 -0800"
      },
      "message": "epoll: drop max_user_instances and rely only on max_user_watches\n\nLinus suggested to put limits where the money is, and max_user_watches\nalready does that w/out the need of max_user_instances.  That has the\nadvantage to mitigate the potential DoS while allowing pretty generous\ndefault behavior.\n\nAllowing top 4% of low memory (per user) to be allocated in epoll watches,\nwe have:\n\nLOMEM    MAX_WATCHES (per user)\n512MB    ~178000\n1GB      ~356000\n2GB      ~712000\n\nA box with 512MB of lomem, will meet some challenge in hitting 180K\nwatches, socket buffers math teaches us.  No more max_user_instances\nlimits then.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Willy Tarreau \u003cw@1wt.eu\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: Bron Gondwana \u003cbrong@fastmail.fm\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df1c46b2b6876d0a1b1b4740f009fa69d95ebbc9",
      "tree": "f2e8677be9cdb9df0455b34ce7553e3c74aa0138",
      "parents": [
        "9d8dba6c979fa99c96938c869611b9a23b73efa9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 29 16:53:35 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 29 16:53:35 2009 -0800"
      },
      "message": "tun: Add some missing TUN compat ioctl translations.\n\nBased upon a report from Michael Tokarev \u003cmjt@tls.msk.ru\u003e:\n\n\tJust saw in dmesg:\n\n\tioctl32(kvm:4408): Unknown cmd fd(9) cmd(800454cf){t:\u0027T\u0027;sz:4} arg(ffc668e4) on /dev/net/tun\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27ad27993313312a4ad0047d0a944c425cd511a5",
      "tree": "e80043a796d012e60ba7ed17c38cc13e5a56f888",
      "parents": [
        "a2b9df3ff691db8e5e521dccd231a8098bbf7416"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:34:30 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:34:30 2009 +0200"
      },
      "message": "UBIFS: remove fast unmounting\n\nThis UBIFS feature has never worked properly, and it was a mistake\nto add it because we simply have no use-cases. So, lets still accept\nthe fast_unmount mount option, but ignore it. This does not change\nmuch, because UBIFS commit in sync_fs anyway, and sync_fs is called\nwhile unmounting.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "a2b9df3ff691db8e5e521dccd231a8098bbf7416",
      "tree": "50a12bd4d40a27d7a605aa55e3d770b4af3c8576",
      "parents": [
        "b466f17d780c5b72427f36aef22ecdec9f1d0689"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:22:54 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:22:54 2009 +0200"
      },
      "message": "UBIFS: return sensible error codes\n\nWhen mounting/re-mounting, UBIFS returns EINVAL even if the ENOSPC\nor EROFS codes are are much better, just because we have not found\nreferences to ENOSPC/EROFS in mount (2) man pages. This patch\nchanges this behaviour and makes UBIFS return real error code,\nbecause:\n\n1. It is just less confusing and more logical\n2. mount is not described in SuSv3, so it seems to be not really\n   well-standartized\n3. we do not cover all cases, and any random undocumented in man\n   pages error code may be returned anyway\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "b466f17d780c5b72427f36aef22ecdec9f1d0689",
      "tree": "09346513db7a7563f9a79ec0e6ec56b8536fabe9",
      "parents": [
        "227c75c91dbfa037d109ab7ef45b7f5ba9cab6d0"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Thu Jan 29 12:59:33 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:19:36 2009 +0200"
      },
      "message": "UBIFS: remount ro fixes\n\n- preserve the idx_gc list - it will be needed in the same\nstate, should UBIFS be remounted rw again\n- prevent remounting ro if we have switched to read only\nmode (due to a fatal error)\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "227c75c91dbfa037d109ab7ef45b7f5ba9cab6d0",
      "tree": "605bf9ec3f49a5209d9efac23ef6ba47baf44072",
      "parents": [
        "3eb14297c4b85af0c5e6605e18d93b6031330d71"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Thu Jan 29 11:53:51 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:15:51 2009 +0200"
      },
      "message": "UBIFS: spelling fix \u0027date\u0027 -\u003e \u0027data\u0027\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "3eb14297c4b85af0c5e6605e18d93b6031330d71",
      "tree": "a029c57515d69fafeddbe60f43b6eb1f6f29c7f0",
      "parents": [
        "4a29d2005b0f28d018d36d209c47f3973a725df5"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Thu Jan 29 11:17:24 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:15:39 2009 +0200"
      },
      "message": "UBIFS: sync wbufs after syncing inodes and pages\n\nAll writes go through wbufs so they must be sync\u0027d\nafter syncing inodes and pages.\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "a9ac49d303f967be0dabd97cb722c4a13109c6c2",
      "tree": "cf170dfaff4b5559eb814806e5cfb573f3e4be93",
      "parents": [
        "da505c386c9f993e43861791dae339b2219cf8dd"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Jan 22 14:43:21 2009 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 29 03:32:13 2009 +0000"
      },
      "message": "cifs: make sure we allocate enough storage for socket address\n\nThe sockaddr declared on the stack in cifs_get_tcp_session is too small\nfor IPv6 addresses. Change it from \"struct sockaddr\" to \"struct\nsockaddr_storage\" to prevent stack corruption when IPv6 is used.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "da505c386c9f993e43861791dae339b2219cf8dd",
      "tree": "177baffca259f9c9a68cb08892df9c011afd407c",
      "parents": [
        "f818dd55c4a8b3519e203900bde0bb780d36e799"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 19 03:49:35 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 29 03:32:13 2009 +0000"
      },
      "message": "[CIFS] Make socket retry timeouts consistent between blocking and nonblocking cases\n\nWe have used approximately 15 second timeouts on nonblocking sends in the past, and\nalso 15 second SMB timeout (waiting for server responses, for most request types).\nNow that we can do blocking tcp sends,\nmake blocking send timeout approximately the same (15 seconds).\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "f818dd55c4a8b3519e203900bde0bb780d36e799",
      "tree": "0c4a6845f534377478cd6046b4ebb0275eda0f5f",
      "parents": [
        "42c245447c8c3f998dfe880aba18b6e5129d2976"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 19 02:38:35 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 29 03:32:13 2009 +0000"
      },
      "message": "[CIFS] some cleanup to dir.c prior to addition of posix_open\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "42c245447c8c3f998dfe880aba18b6e5129d2976",
      "tree": "430af06da69c1d518d9e6af0d577742ec27ed63d",
      "parents": [
        "6a7f8d36c00ab7adef5fb633f7805c91e8c1e139"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Jan 13 22:03:55 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 29 03:32:12 2009 +0000"
      },
      "message": "[CIFS] revalidate parent inode when rmdir done within that directory\n\nWhen a search is pending of a parent directory, and a child directory\nwithin it is removed, we need to reset the parent directory\u0027s time\nso that we don\u0027t reuse the (now stale) search results.\n\nThanks to Gunter Kukkukk for reporting this:\n\n\u003e got the following failure notification on irc #samba:\n\u003e\n\u003e A user was updating from subversion 1.4 to 1.5, where the\n\u003e repository is located on a samba share (independent of\n\u003e unix extensions \u003d Yes or No).\n\u003e svn 1.4 did work, 1.5 does not.\n\u003e\n\u003e The user did a lot of stracing of subversion - and wrote a\n\u003e testapplet to simulate the failing behaviour.\n\u003e I\u0027ve converted the C++ source to C and added some error cases.\n\u003e\n\u003e When using \"./testdir\" on a local file system, \"result2\"\n\u003e is always (nil) as expected - cifs vfs behaves different here!\n\u003e\n\u003e   ./testdir /mnt/cifs/mounted/share\n\u003e\n\u003e returns a (failing) valid pointer.\n\nAcked-by: Dave Kleikamp \u003cshaggy@us.ibm.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "6a7f8d36c00ab7adef5fb633f7805c91e8c1e139",
      "tree": "9580a3e4fa4ec4f70a5f2a68b2a3d7ab52592ae8",
      "parents": [
        "0496e02d8791e7f06673a19a181be30dad6eff70"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 12 21:03:25 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 29 03:32:12 2009 +0000"
      },
      "message": "[CIFS] Rename md5 functions to avoid collision with new rt modules\n\nWhen rt modules were added they (each) included their own md5\nwith names which collided with the existing names of cifs\u0027s md5 functions.\n\nRenaming cifs\u0027s md5 modules so we don\u0027t collide with them.\n\n\u003e Stephen Rothwell wrote:\n\u003e When CIFS is built-in (\u003dy) and staging/rt28[67]0 \u003dy, there are multiple\n\u003e definitions of:\n\u003e\n\u003e build-r8250.out:(.text+0x1d8ad0): multiple definition of `MD5Init\u0027\n\u003e build-r8250.out:(.text+0x1dbb30): multiple definition of `MD5Update\u0027\n\u003e build-r8250.out:(.text+0x1db9b0): multiple definition of `MD5Final\u0027\n\u003e\n\u003e all of which need to have more unique identifiers for their global\n\u003e symbols (e.g., rt28_md5_init, cifs_md5_init, foo, blah, bar).\n\u003e\n\nCC: Greg K-H \u003cgregkh@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "0496e02d8791e7f06673a19a181be30dad6eff70",
      "tree": "2dc2f91e27ff0aba5b2b25314a01e858d5360748",
      "parents": [
        "18e352e4a73465349711a9324767e1b2453383e2"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 30 12:39:16 2008 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 29 03:32:12 2009 +0000"
      },
      "message": "cifs: turn smb_send into a wrapper around smb_sendv\n\ncifs: turn smb_send into a wrapper around smb_sendv\n\nRename smb_send2 to smb_sendv to make it consistent with kernel naming\nconventions for functions that take a vector.\n\nThere\u0027s no need to have 2 functions to handle sending SMB calls. Turn\nsmb_send into a wrapper around smb_sendv. This also allows us to\nproperly mark the socket as needing to be reconnected when there\u0027s a\npartial send from smb_send.\n\nAlso, in practice we always use the address and noblocksnd flag\nthat\u0027s attached to the TCP_Server_Info. There\u0027s no need to pass\nthem in as separate args to smb_sendv.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "89f135d8b53bcccafd91a075366d2704ba257cf3",
      "tree": "8355edb91b7f0345ab7698dee0f0478f571aa090",
      "parents": [
        "e4f722fa42537bcb0ff14322a57dc3870d093cab"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 28 15:34:27 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 28 15:34:27 2009 -0500"
      },
      "message": "Btrfs: fix readdir on 32 bit machines\n\nAfter btrfs_readdir has gone through all the directory items, it\nsets the directory f_pos to the largest possible int.  This way\napplications that mix readdir with creating new files don\u0027t\nend up in an endless loop finding the new directory items as they go.\n\nIt was a workaround for a bug in git, but the assumption was that if git\ncould make this looping mistake than it would be a common problem.\n\nThe largest possible int chosen was INT_LIMIT(typeof(file-\u003ef_pos),\nand it is possible for that to be a larger number than 32 bit glibc\nexpects to come out of readdir.\n\nThis patches switches that to INT_LIMIT(off_t), which should keep\napplications happy on 32 and 64 bit machines.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "e4f722fa42537bcb0ff14322a57dc3870d093cab",
      "tree": "315920ade3b68bf20c4080bcd1bf2bc34a5d5ab7",
      "parents": [
        "18e352e4a73465349711a9324767e1b2453383e2",
        "a717531942f488209dded30f6bc648167bcefa72"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 28 20:29:43 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 28 20:29:43 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\nFix fs/btrfs/super.c conflict around #includes\n"
    },
    {
      "commit": "4a29d2005b0f28d018d36d209c47f3973a725df5",
      "tree": "4247a356d08e79fb72367f9b13f861da466315f4",
      "parents": [
        "6f7ab6d458bbfc2f55d295fa3e6b9e69cdb1d517"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Tue Jan 27 15:22:54 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jan 28 16:02:07 2009 +0200"
      },
      "message": "UBIFS: fix LPT out-of-space bug (again)\n\nThe function to traverse and dirty the LPT was still not\ndirtying all nodes, with the result that the LPT could\nrun out of space.\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "fa82a491275a613b15489aab4b99acecb00958d3",
      "tree": "1c5d1f5fb9d6c1870891bf088493541564b93bc9",
      "parents": [
        "b914152a6fbd2cd0441bc293ae8b3f3f1a9407b6"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Jan 22 14:16:04 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@pig.fieldses.org",
        "time": "Tue Jan 27 17:26:59 2009 -0500"
      },
      "message": "nfsd: only set file_lock.fl_lmops in nfsd4_lockt if a stateowner is found\n\nnfsd4_lockt does a search for a lockstateowner when building the lock\nstruct to test. If one is found, it\u0027ll set fl_owner to it. Regardless of\nwhether that happens, it\u0027ll also set fl_lmops. Given that this lock is\nbasically a \"lightweight\" lock that\u0027s just used for checking conflicts,\nsetting fl_lmops is probably not appropriate for it.\n\nThis behavior exposed a bug in DLM\u0027s GETLK implementation where it\nwasn\u0027t clearing out the fields in the file_lock before filling in\nconflicting lock info. While we were able to fix this in DLM, it\nstill seems pointless and dangerous to set the fl_lmops this way\nwhen we may have a NULL lockstateowner.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@pig.fieldses.org\u003e\n"
    },
    {
      "commit": "b914152a6fbd2cd0441bc293ae8b3f3f1a9407b6",
      "tree": "52267a4af3d34ebf190d89b279758d7726383412",
      "parents": [
        "bf935a78814cc9b96d09f612912178adc964ce9c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 20 19:34:22 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@pig.fieldses.org",
        "time": "Tue Jan 27 17:26:59 2009 -0500"
      },
      "message": "nfsd: fix cred leak on every rpc\n\nSince override_creds() took its own reference on new, we need to release\nour own reference.\n\n(Note the put_cred on the return value puts the *old* value of\ncurrent-\u003ecreds, not the new passed-in value).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bf935a78814cc9b96d09f612912178adc964ce9c",
      "tree": "2c23a05d1c4433e309f3434ce8bdd6a5a0ed8838",
      "parents": [
        "ce0cf6622c9a6f18c2723ea4bef7616799a1ca39"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 20 19:32:59 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@pig.fieldses.org",
        "time": "Tue Jan 27 17:26:58 2009 -0500"
      },
      "message": "nfsd: fix null dereference on error path\n\nWe\u0027re forgetting to check the return value from groups_alloc().\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f0e0059b9c18426cffdcc04161062251a8f9741e",
      "tree": "961ac9a97f77e55cd76d56f1f931caf8ac6f4114",
      "parents": [
        "74e2d06521913443c7e2697037909f5efc200ec5"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Sun Jan 25 20:53:00 2009 -0600"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Jan 27 14:51:39 2009 -0600"
      },
      "message": "don\u0027t reallocate sxp variable passed into xfs_swapext\n\nfixes kernel.org bugzilla 12538, xfs_fsr fails on 2.6.29-rc kernels\n\nRegression caused by 743bb4650da9e2595d6cedd01c680b5b9398c74a\n\nThis was an embarrasing mistake, reallocating the sxp pointer passed\nin from the main ioctl switch.\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\nReported-by: Paul Martin \u003cpm@debian.org\u003e\nTested-by: Paul Martin \u003cpm@debian.org\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "6f7ab6d458bbfc2f55d295fa3e6b9e69cdb1d517",
      "tree": "7d07f5ff88d205a652998c2fd281e7123ba9a112",
      "parents": [
        "6ba87c9b920bea8c2703308d31eb7de925242c30"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jan 27 16:12:31 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jan 27 16:25:10 2009 +0200"
      },
      "message": "UBIFS: fix no_chk_data_crc\n\nWhen data CRC checking is disabled, UBIFS returns incorrect return\ncode from the \u0027try_read_node()\u0027 function (0 instead of 1, which means\nCRC error), which make the caller re-read the data node again, but using\na different code patch, so the second read is fine. Thus, we read the\nsame node twice. And the result of this is that UBIFS is slower\nwith no_chk_data_crc option than it is with chk_data_crc option.\nThis patches fixes the problem.\n\nReported-by: Reuben Dowle \u003cReuben.Dowle@navico.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "9fd9784c91db79e953ea3fe3741f885bdc390a72",
      "tree": "b92c9be3218c6559aed0ff9dc4d61c33a1130093",
      "parents": [
        "fdff73f094e7220602cc3f8959c7230517976412"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Mon Jan 26 19:26:26 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 26 19:26:26 2009 -0500"
      },
      "message": "ext4: Fix building with EXT4FS_DEBUG\n\nWhen bg_free_blocks_count was renamed to bg_free_blocks_count_lo in\n560671a0, its uses under EXT4FS_DEBUG were not changed to the helper\next4_free_blks_count.\n\nAnother commit, 498e5f24, also did not change everything needed under\nEXT4FS_DEBUG, thus making it spill some warnings related to printing\nformat.\n\nThis commit fixes both issues and makes ext4 build again when\nEXT4FS_DEBUG is enabled.\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fdff73f094e7220602cc3f8959c7230517976412",
      "tree": "b58a1b26cdca223d588e6decee8198b6c3fe954e",
      "parents": [
        "e7f07968c16bdd9480001c0a9de013ba56889cf9"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 26 19:06:41 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 26 19:06:41 2009 -0500"
      },
      "message": "ext4: Initialize the new group descriptor when resizing the filesystem\n\nMake sure all of the fields of the group descriptor are properly\ninitialized.  Previously, we allowed bg_flags field to be contain\nrandom garbage, which could trigger non-deterministic behavior,\nincluding a kernel OOPS.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12433\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "a90e8a75fbf9e7fe2d88da6a5cf38be07fd81c35",
      "tree": "0c5388fdefd00f2f7e381e4f8bd7707e6baeb374",
      "parents": [
        "cc597bc3d31468596af6b8ad2b1d1b593e308957",
        "20d5a39929232a715f29e6cb7e3f0d0c790f41eb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:42:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:42:05 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: initialize file_lock struct in GETLK before copying conflicting lock\n  dlm: fix plock notify callback to lockd\n"
    },
    {
      "commit": "cc597bc3d31468596af6b8ad2b1d1b593e308957",
      "tree": "303754908b583ff1da423bd37b56b01bd4585106",
      "parents": [
        "ed803862954528e6fcf7bd0f2b2e5a772a7c3281",
        "c475146d8f3b97e79f9ef88521e28ad40ac07de6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:41:00 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:41:00 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6:\n  ocfs2: Remove ocfs2_dquot_initialize() and ocfs2_dquot_drop()\n  quota: Improve locking\n"
    },
    {
      "commit": "ed803862954528e6fcf7bd0f2b2e5a772a7c3281",
      "tree": "fce02fe5ebc10a5a8da5e034e2bb25d79d07a808",
      "parents": [
        "6aeea60aee945449c93d9aa70638deeb5c4c5439",
        "c0e69a5bbc6fc74184aa043aadb9a53bc58f953b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:40:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:40:28 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:\n  klist.c: bit 0 in pointer can\u0027t be used as flag\n  debugfs: introduce stub for debugfs_create_size_t() when DEBUG_FS\u003dn\n  sysfs: fix problems with binary files\n  PNP: fix broken pnp lowercasing for acpi module aliases\n  driver core: Convert \u0027/\u0027 to \u0027!\u0027 in dev_set_name()\n"
    },
    {
      "commit": "a1c70a756f8d756668acdbfd61dfc14de12fbaea",
      "tree": "5e52ff5fae536b8096f73b792112bcfd812d3edd",
      "parents": [
        "3632dee2f8b8a9720329f29eeaa4ec4669a3aff8",
        "0fcb44088970b18eaf2df4579d64840be6e3bf39"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:08:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:08:50 2009 -0800"
      },
      "message": "Merge branch \u0027Kconfig\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/misc\n\n* \u0027Kconfig\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/misc: (36 commits)\n  fs/Kconfig: move 9p out\n  fs/Kconfig: move afs out\n  fs/Kconfig: move coda out\n  fs/Kconfig: move the rest of ncpfs out\n  fs/Kconfig: move smbfs out\n  fs/Kconfig: move sunrpc out\n  fs/Kconfig: move nfsd out\n  fs/Kconfig: move nfs out\n  fs/Kconfig: move ufs out\n  fs/Kconfig: move sysv out\n  fs/Kconfig: move romfs out\n  fs/Kconfig: move qnx4 out\n  fs/Kconfig: move hpfs out\n  fs/Kconfig: move omfs out\n  fs/Kconfig: move minix out\n  fs/Kconfig: move vxfs out\n  fs/Kconfig: move squashfs out\n  fs/Kconfig: move cramfs out\n  fs/Kconfig: move efs out\n  fs/Kconfig: move bfs out\n  ...\n"
    },
    {
      "commit": "3632dee2f8b8a9720329f29eeaa4ec4669a3aff8",
      "tree": "602fc5cc96145472210a4254680d539c81cb02e7",
      "parents": [
        "aeb565dfc3ac4c8b47c5049085b4c7bfb2c7d5d7"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Thu Jan 22 15:29:45 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:08:05 2009 -0800"
      },
      "message": "inotify: clean up inotify_read and fix locking problems\n\nIf userspace supplies an invalid pointer to a read() of an inotify\ninstance, the inotify device\u0027s event list mutex is unlocked twice.\nThis causes an unbalance which effectively leaves the data structure\nunprotected, and we can trigger oopses by accessing the inotify\ninstance from different tasks concurrently.\n\nThe best fix (contributed largely by Linus) is a total rewrite\nof the function in question:\n\nOn Thu, Jan 22, 2009 at 7:05 AM, Linus Torvalds wrote:\n\u003e The thing to notice is that:\n\u003e\n\u003e  - locking is done in just one place, and there is no question about it\n\u003e   not having an unlock.\n\u003e\n\u003e  - that whole double-while(1)-loop thing is gone.\n\u003e\n\u003e  - use multiple functions to make nesting and error handling sane\n\u003e\n\u003e  - do error testing after doing the things you always need to do, ie do\n\u003e   this:\n\u003e\n\u003e        mutex_lock(..)\n\u003e        ret \u003d function_call();\n\u003e        mutex_unlock(..)\n\u003e\n\u003e        .. test ret here ..\n\u003e\n\u003e   instead of doing conditional exits with unlocking or freeing.\n\u003e\n\u003e So if the code is written in this way, it may still be buggy, but at least\n\u003e it\u0027s not buggy because of subtle \"forgot to unlock\" or \"forgot to free\"\n\u003e issues.\n\u003e\n\u003e This _always_ unlocks if it locked, and it always frees if it got a\n\u003e non-error kevent.\n\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Robert Love \u003crlove@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d07d4d1bba3b141941682fa36cacbe12bbb143b",
      "tree": "7f64f9870c60382e3df33ba795098b5142c9d7d1",
      "parents": [
        "3386c05bdbd3e60ca7158253442f0a00133db28e",
        "f6d47a1761896dcd89e3184399a8962dff17267d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 09:49:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 09:49:22 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: fix poll notify\n  fuse: destroy bdi on umount\n  fuse: fuse_fill_super error handling cleanup\n  fuse: fix missing fput on error\n  fuse: fix NULL deref in fuse_file_alloc()\n"
    },
    {
      "commit": "6ba87c9b920bea8c2703308d31eb7de925242c30",
      "tree": "a83b51da6884e483f78ff85c81f37e9e4e66f064",
      "parents": [
        "49d128aa60751a010640f4763d11577e2f508853"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 16:12:20 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 18:22:47 2009 +0200"
      },
      "message": "UBIFS: fix assertions\n\nI introduce wrong assertions in one of the previous commits, this\npatch fixes them.\n\nAlso, initialize debugfs after the debugging check. This is a little\nnicer because we want the FS data to be accessible to external users\nafter everything has been initialized.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "f6d47a1761896dcd89e3184399a8962dff17267d",
      "tree": "60a7f1eee203f07db6f2a9d890b8ec78f190ea57",
      "parents": [
        "26c3679101dbccc054dcf370143941844ba70531"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jan 26 15:00:59 2009 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.de",
        "time": "Mon Jan 26 15:00:59 2009 +0100"
      },
      "message": "fuse: fix poll notify\n\nMove fuse_copy_finish() to before calling fuse_notify_poll_wakeup().\nThis is not a big issue because fuse_notify_poll_wakeup() should be\natomic, but it\u0027s cleaner this way, and later uses of notification will\nneed to be able to finish the copying before performing some actions.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "26c3679101dbccc054dcf370143941844ba70531",
      "tree": "983066c18cacdd2d96534040d076dd66310acfe5",
      "parents": [
        "c2b8f006909b9bf9e165dfdf3c378527938c4497"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jan 26 15:00:59 2009 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.de",
        "time": "Mon Jan 26 15:00:59 2009 +0100"
      },
      "message": "fuse: destroy bdi on umount\n\nIf a fuse filesystem is unmounted but the device file descriptor\nremains open and a new mount reuses the old device number, then the\nmount fails with EEXIST and the following warning is printed in the\nkernel log:\n\n  WARNING: at fs/sysfs/dir.c:462 sysfs_add_one+0x35/0x3d()\n  sysfs: duplicate filename \u00270:15\u0027 can not be created\n\nThe cause is that the bdi belonging to the fuse filesystem was\ndestoryed only after the device file was released.  Fix this by\ncalling bdi_destroy() from fuse_put_super() instead.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\n"
    },
    {
      "commit": "c2b8f006909b9bf9e165dfdf3c378527938c4497",
      "tree": "6e9549ba41936078a5d9e46fbc150bf3aa6f57be",
      "parents": [
        "3ddf1e7f57237ac7c5d5bfb7058f1ea4f970b661"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jan 26 15:00:58 2009 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.de",
        "time": "Mon Jan 26 15:00:58 2009 +0100"
      },
      "message": "fuse: fuse_fill_super error handling cleanup\n\nClean up error handling for the whole of fuse_fill_super() function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "3ddf1e7f57237ac7c5d5bfb7058f1ea4f970b661",
      "tree": "2a1761f7bcd44a2474f34ff6590f7fe95f396732",
      "parents": [
        "bb875b38dc5e343bdb696b2eab8233e4d195e208"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jan 26 15:00:58 2009 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.de",
        "time": "Mon Jan 26 15:00:58 2009 +0100"
      },
      "message": "fuse: fix missing fput on error\n\nFix the leaking file reference if allocation or initialization of\nfuse_conn failed.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\n"
    },
    {
      "commit": "bb875b38dc5e343bdb696b2eab8233e4d195e208",
      "tree": "45ee0918e29eeb39e72ca0cdc9321ef8960370b6",
      "parents": [
        "f3b8436ad9a8ad36b3c9fa1fe030c7f38e5d3d0b"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon Jan 26 15:00:58 2009 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.de",
        "time": "Mon Jan 26 15:00:58 2009 +0100"
      },
      "message": "fuse: fix NULL deref in fuse_file_alloc()\n\nff is set to NULL and then dereferenced on line 65.  Compile tested only.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\n"
    },
    {
      "commit": "49d128aa60751a010640f4763d11577e2f508853",
      "tree": "e74af898443112bf1e323e019b6c1a74f7e5d415",
      "parents": [
        "b4978e949104844224ecf786170c9263efa601f3"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Mon Jan 26 10:55:40 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 12:54:11 2009 +0200"
      },
      "message": "UBIFS: ensure orphan area head is initialized\n\nWhen mounting read-only the orphan area head is\nnot initialized.  It must be initialized when\nremounting read/write, but it was not.  This patch\nfixes that.\n\n[Artem: sorry, added comment tweaking noise]\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "b4978e949104844224ecf786170c9263efa601f3",
      "tree": "a8002df0e1f8feace090a6dcd5ea294ab55f2060",
      "parents": [
        "84abf972ccff5c13d10b672972949eba431a6e0e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jan 23 18:23:03 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 12:54:11 2009 +0200"
      },
      "message": "UBIFS: always clean up GC LEB space\n\nWhen we mount UBIFS, GC LEB may contain out-of-date information,\nand UBIFS should update lprops and set free space for thei LEB.\nCurrently UBIFS does this only if mounted R/W. But for R/O mount\nwe have to do the same, because otherwise we will have incorrect\nFS free space reported to user-space.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "84abf972ccff5c13d10b672972949eba431a6e0e",
      "tree": "378ebf8a77fbc1f906fa8eee2472f8bd6d935772",
      "parents": [
        "e4d9b6cbfc98d696a28d2c24a3d49768695811ee"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jan 23 14:54:59 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 12:54:11 2009 +0200"
      },
      "message": "UBIFS: add re-mount debugging checks\n\nWe observe space corrupted accounting when re-mounting. So add some\ndebbugging checks to catch problems like this.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e4d9b6cbfc98d696a28d2c24a3d49768695811ee",
      "tree": "5d76848d68add2830efa29b16425e2f07b4f1967",
      "parents": [
        "82c1593cad3dfc97661764c8bc62aa1a416e9ea8"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jan 23 14:17:36 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 12:54:11 2009 +0200"
      },
      "message": "UBIFS: fix LEB list freeing\n\nWhen freeing the c-\u003eidx_lebs list, we have to release the LEBs as well,\nbecause we might be called from mount to read-only mode code. Otherwise\nthe LEBs stay taken forever, which may cause problems when we re-mount\nback ro RW mode.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "82c1593cad3dfc97661764c8bc62aa1a416e9ea8",
      "tree": "7c4b6e31f620f289d6cdb74ec316f2fc76fdd137",
      "parents": [
        "7078202e55b565582fcbd831a8dd3069bdc72610"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jan 20 16:46:02 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 12:54:11 2009 +0200"
      },
      "message": "UBIFS: simplify locking\n\nThis patch simplifies lock_[23]_inodes functions. We do not have\nto care about locking order, because UBIFS does this for @i_mutex\nand this is enough. Thanks to Al Viro for suggesting this.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "a717531942f488209dded30f6bc648167bcefa72",
      "tree": "f4e0c852d4462574ade5e965585647e7a253abe3",
      "parents": [
        "1506fcc8189cdd4b95e06df7845a09f18b4526a6"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 22 09:23:10 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 22 09:23:10 2009 -0500"
      },
      "message": "Btrfs: do less aggressive btree readahead\n\nJust before reading a leaf, btrfs scans the node for blocks that are\nclose by and reads them too.  It tries to build up a large window\nof IO looking for blocks that are within a max distance from the top\nand bottom of the IO window.\n\nThis patch changes things to just look for blocks within 64k of the\ntarget block.  It will trigger less IO and make for lower latencies on\nthe read size.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "0fcb44088970b18eaf2df4579d64840be6e3bf39",
      "tree": "8522673b99164c705238edc22dcdcf8197eac89b",
      "parents": [
        "b2480c7fbfed172e6ec3ba1c8e80f05a3721b24a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jan 22 11:16:42 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jan 22 13:16:01 2009 +0300"
      },
      "message": "fs/Kconfig: move 9p out\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    }
  ],
  "next": "b2480c7fbfed172e6ec3ba1c8e80f05a3721b24a"
}
