)]}'
{
  "log": [
    {
      "commit": "a32744d4abae24572eff7269bc17895c41bd0085",
      "tree": "b384f580af75b17ede3fd830b7ad5276d0036ac0",
      "parents": [
        "b52b80023f262ce8a0ffdcb490acb23e8678377a"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Feb 22 20:45:44 2012 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 25 12:10:27 2012 -0800"
      },
      "message": "autofs: work around unhappy compat problem on x86-64\n\nWhen the autofs protocol version 5 packet type was added in commit\n5c0a32fc2cd0 (\"autofs4: add new packet type for v5 communications\"), it\nobvously tried quite hard to be word-size agnostic, and uses explicitly\nsized fields that are all correctly aligned.\n\nHowever, with the final \"char name[NAME_MAX+1]\" array at the end, the\nactual size of the structure ends up being not very well defined:\nbecause the struct isn\u0027t marked \u0027packed\u0027, doing a \"sizeof()\" on it will\nalign the size of the struct up to the biggest alignment of the members\nit has.\n\nAnd despite all the members being the same, the alignment of them is\ndifferent: a \"__u64\" has 4-byte alignment on x86-32, but native 8-byte\nalignment on x86-64.  And while \u0027NAME_MAX+1\u0027 ends up being a nice round\nnumber (256), the name[] array starts out a 4-byte aligned.\n\nEnd result: the \"packed\" size of the structure is 300 bytes: 4-byte, but\nnot 8-byte aligned.\n\nAs a result, despite all the fields being in the same place on all\narchitectures, sizeof() will round up that size to 304 bytes on\narchitectures that have 8-byte alignment for u64.\n\nNote that this is *not* a problem for 32-bit compat mode on POWER, since\nthere __u64 is 8-byte aligned even in 32-bit mode.  But on x86, 32-bit\nand 64-bit alignment is different for 64-bit entities, and as a result\nthe structure that has exactly the same layout has different sizes.\n\nSo on x86-64, but no other architecture, we will just subtract 4 from\nthe size of the structure when running in a compat task.  That way we\nwill write the properly sized packet that user mode expects.\n\nNot pretty.  Sadly, this very subtle, and unnecessary, size difference\nhas been encoded in user space that wants to read packets of *exactly*\nthe right size, and will refuse to touch anything else.\n\nReported-and-tested-by: Thomas Meyer \u003cthomas@m3y3r.de\u003e\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "971316f0503a5c50633d07b83b6db2f15a3a5b00",
      "tree": "d833e48aed1b20d8677e9391250d8948966d6f4d",
      "parents": [
        "d80e731ecab420ddcb79ee9d0ac427acbc187b4b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 24 20:07:29 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 24 11:42:50 2012 -0800"
      },
      "message": "epoll: ep_unregister_pollwait() can use the freed pwq-\u003ewhead\n\nsignalfd_cleanup() ensures that -\u003esignalfd_wqh is not used, but\nthis is not enough. eppoll_entry-\u003ewhead still points to the memory\nwe are going to free, ep_unregister_pollwait()-\u003eremove_wait_queue()\nis obviously unsafe.\n\nChange ep_poll_callback(POLLFREE) to set eppoll_entry-\u003ewhead \u003d NULL,\nchange ep_unregister_pollwait() to check pwq-\u003ewhead !\u003d NULL under\nrcu_read_lock() before remove_wait_queue(). We add the new helper,\nep_remove_wait_queue(), for this.\n\nThis works because sighand_cachep is SLAB_DESTROY_BY_RCU and because\n-\u003esignalfd_wqh is initialized in sighand_ctor(), not in copy_sighand.\nep_unregister_pollwait()-\u003eremove_wait_queue() can play with already\nfreed and potentially reused -\u003esighand, but this is fine. This memory\nmust have the valid -\u003esignalfd_wqh until rcu_read_unlock().\n\nReported-by: Maxime Bizon \u003cmbizon@freebox.fr\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d80e731ecab420ddcb79ee9d0ac427acbc187b4b",
      "tree": "e96a660b75b5bee8ae2c315878ec917b9c0da446",
      "parents": [
        "855a85f704026d5fe7de94fb1b765fe03404507f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 24 20:07:11 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 24 11:42:50 2012 -0800"
      },
      "message": "epoll: introduce POLLFREE to flush -\u003esignalfd_wqh before kfree()\n\nThis patch is intentionally incomplete to simplify the review.\nIt ignores ep_unregister_pollwait() which plays with the same wqh.\nSee the next change.\n\nepoll assumes that the EPOLL_CTL_ADD\u0027ed file controls everything\nf_op-\u003epoll() needs. In particular it assumes that the wait queue\ncan\u0027t go away until eventpoll_release(). This is not true in case\nof signalfd, the task which does EPOLL_CTL_ADD uses its -\u003esighand\nwhich is not connected to the file.\n\nThis patch adds the special event, POLLFREE, currently only for\nepoll. It expects that init_poll_funcptr()\u0027ed hook should do the\nnecessary cleanup. Perhaps it should be defined as EPOLLFREE in\neventpoll.\n\n__cleanup_sighand() is changed to do wake_up_poll(POLLFREE) if\n-\u003esignalfd_wqh is not empty, we add the new signalfd_cleanup()\nhelper.\n\nep_poll_callback(POLLFREE) simply does list_del_init(task_list).\nThis make this poll entry inconsistent, but we don\u0027t care. If you\nshare epoll fd which contains our sigfd with another process you\nshould blame yourself. signalfd is \"really special\". I simply do\nnot know how we can define the \"right\" semantics if it used with\nepoll.\n\nThe main problem is, epoll calls signalfd_poll() once to establish\nthe connection with the wait queue, after that signalfd_poll(NULL)\nreturns the different/inconsistent results depending on who does\nEPOLL_CTL_MOD/signalfd_read/etc. IOW: apart from sigmask, signalfd\nhas nothing to do with the file, it works with the current thread.\n\nIn short: this patch is the hack which tries to fix the symptoms.\nIt also assumes that nobody can take tasklist_lock under epoll\nlocks, this seems to be true.\n\nNote:\n\n\t- we do not have wake_up_all_poll() but wake_up_poll()\n\t  is fine, poll/epoll doesn\u0027t use WQ_FLAG_EXCLUSIVE.\n\n\t- signalfd_cleanup() uses POLLHUP along with POLLFREE,\n\t  we need a couple of simple changes in eventpoll.c to\n\t  make sure it can\u0027t be \"lost\".\n\nReported-by: Maxime Bizon \u003cmbizon@freebox.fr\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "855a85f704026d5fe7de94fb1b765fe03404507f",
      "tree": "553817c0f7230e104623dc7e8a900bbbcc881d3e",
      "parents": [
        "ee3253241a928f6c5c40960629d7071eb6a4b23c",
        "e77266e4c4be6f9dc91bf688bce015a8babd5fe0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 24 09:02:53 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 24 09:02:53 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nQuoth Chris:\n \"This is later than I wanted because I got backed up running through\n  btrfs bugs from the Oracle QA teams.  But they are all bug fixes that\n  we\u0027ve queued and tested since rc1.\n\n  Nothing in particular stands out, this just reflects bug fixing and QA\n  done in parallel by all the btrfs developers.  The most user visible\n  of these is:\n\n    Btrfs: clear the extent uptodate bits during parent transid failures\n\n  Because that helps deal with out of date drives (say an iscsi disk\n  that has gone away and come back).  The old code wasn\u0027t always\n  properly retrying the other mirror for this type of failure.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (24 commits)\n  Btrfs: fix compiler warnings on 32 bit systems\n  Btrfs: increase the global block reserve estimates\n  Btrfs: clear the extent uptodate bits during parent transid failures\n  Btrfs: add extra sanity checks on the path names in btrfs_mksubvol\n  Btrfs: make sure we update latest_bdev\n  Btrfs: improve error handling for btrfs_insert_dir_item callers\n  Btrfs: be less strict on finding next node in clear_extent_bit\n  Btrfs: fix a bug on overcommit stuff\n  Btrfs: kick out redundant stuff in convert_extent_bit\n  Btrfs: skip states when they does not contain bits to clear\n  Btrfs: check return value of lookup_extent_mapping() correctly\n  Btrfs: fix deadlock on page lock when doing auto-defragment\n  Btrfs: fix return value check of extent_io_ops\n  btrfs: honor umask when creating subvol root\n  btrfs: silence warning in raid array setup\n  btrfs: fix structs where bitfields and spinlock/atomic share 8B word\n  btrfs: delalloc for page dirtied out-of-band in fixup worker\n  Btrfs: fix memory leak in load_free_space_cache()\n  btrfs: don\u0027t check DUP chunks twice\n  Btrfs: fix trim 0 bytes after a device delete\n  ...\n"
    },
    {
      "commit": "e77266e4c4be6f9dc91bf688bce015a8babd5fe0",
      "tree": "9ad1f7fa246188ac2f12088a8a1e354ffea63799",
      "parents": [
        "5500cdbe14d7435e04f66ff3cfb8ecd8b8e44ebf"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 24 10:39:05 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 24 10:39:05 2012 -0500"
      },
      "message": "Btrfs: fix compiler warnings on 32 bit systems\n\nThe enospc tracing code added some interesting uses of\nu64 pointer casts.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "37fbf4bfb826372c3ca6c09d8a015d1fe9f5e186",
      "tree": "16916e8992768f4bf91152a16cd7b66c0d282314",
      "parents": [
        "bb4c7e9a9908548b458f34afb2fee74dc0d49f90"
      ],
      "author": {
        "name": "Anton Altaparmakov",
        "email": "aia21@cam.ac.uk",
        "time": "Thu Feb 23 23:40:05 2012 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 23 15:56:21 2012 -0800"
      },
      "message": "Restore direct_io / truncate locking API\n\nWith kernel 3.1, Christoph removed i_alloc_sem and replaced it with\ncalls (namely inode_dio_wait() and inode_dio_done()) which are\nEXPORT_SYMBOL_GPL() thus they cannot be used by non-GPL file systems and\nfurther inode_dio_wait() was pushed from notify_change() into the file\nsystem -\u003esetattr() method but no non-GPL file system can make this call.\n\nThat means non-GPL file systems cannot exist any more unless they do not\nuse any VFS functionality related to reading/writing as far as I can\ntell or at least as long as they want to implement direct i/o.\n\nBoth Linus and Al (and others) have said on LKML that this breakage of\nthe VFS API should not have happened and that the change was simply\nmissed as it was not documented in the change logs of the patches that\ndid those changes.\n\nThis patch changes the two function exports in question to be\nEXPORT_SYMBOL() thus restoring the VFS API as it used to be - accessible\nfor all modules.\n\nChristoph, who introduced the two functions and exported them GPL-only\nis CC-ed on this patch to give him the opportunity to object to the\nsymbols being changed in this manner if he did indeed intend them to be\nGPL-only and does not want them to become available to all modules.\n\nSigned-off-by: Anton Altaparmakov \u003canton@tuxera.com\u003e\nCC: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb4c7e9a9908548b458f34afb2fee74dc0d49f90",
      "tree": "5f9c05a3d74215826ba0d43881269bd3f7339090",
      "parents": [
        "73c8e679aa8d123c1b05fa837daacd0aa0c4cb85",
        "c922bbc819324558e61402a7a76c10c550ca61bc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 23 15:38:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 23 15:38:57 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\nA fix from Jesper Juhl removes an assignment in an ASSERT when a compare\nis intended.  Two fixes from Mitsuo Hayasaka address off-by-ones in XFS\nquota enforcement.\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: make inode quota check more general\n  xfs: change available ranges of softlimit and hardlimit in quota check\n  XFS: xfs_trans_add_item() - don\u0027t assign in ASSERT() when compare is intended\n"
    },
    {
      "commit": "5500cdbe14d7435e04f66ff3cfb8ecd8b8e44ebf",
      "tree": "e09399d4a56fcbad38765fd24c7c6e8782f438de",
      "parents": [
        "506531905296d6aee84480c879b25ea98c3f9db6"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Feb 23 10:49:04 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 23 10:49:04 2012 -0500"
      },
      "message": "Btrfs: increase the global block reserve estimates\n\nWhen doing IO with large amounts of data fragmentation, the global block\nreserve calulations are too low.  This increases them to avoid\nENOSPC crashes.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "506531905296d6aee84480c879b25ea98c3f9db6",
      "tree": "18549bd9c5724e1517b5497881adc000f21349fc",
      "parents": [
        "16780cabb877dbd0c8c5e9ff9bdebd6c5bdd1a7b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 22 12:36:24 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 23 10:43:45 2012 -0500"
      },
      "message": "Btrfs: clear the extent uptodate bits during parent transid failures\n\nIf btrfs reads a block and finds a parent transid mismatch, it clears\nthe uptodate flags on the extent buffer, and the pages inside it.  But\nwe only clear the uptodate bits in the state tree if the block straddles\nmore than one page.\n\nThis is from an old optimization from to reduce contention on the extent\nstate tree.  But it is buggy because the code that retries a read from\na different copy of the block is going to find the uptodate state bits\nset and skip the IO.\n\nThe end result of the bug is that we\u0027ll never actually read the good\ncopy (if there is one).\n\nThe fix here is to always clear the uptodate state bits, which is safe\nbecause this code is only called when the parent transid fails.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "16780cabb877dbd0c8c5e9ff9bdebd6c5bdd1a7b",
      "tree": "d244896098a1e8dfd23403a335315a4b822c95d3",
      "parents": [
        "a6b0d5c8dbfd428717fc4db4c36757783f391c7b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 20 22:14:55 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 23 10:43:45 2012 -0500"
      },
      "message": "Btrfs: add extra sanity checks on the path names in btrfs_mksubvol\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a6b0d5c8dbfd428717fc4db4c36757783f391c7b",
      "tree": "fc3faaed8b1cf93c7dbe60af4c950be5edd9c8ad",
      "parents": [
        "fe66a05a06795bd3b788404d69ea7709f46a1609"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 20 20:53:43 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 23 10:43:45 2012 -0500"
      },
      "message": "Btrfs: make sure we update latest_bdev\n\nWhen we are setting up the mount, we close all the\ndevices that were not actually part of the metadata we found.\n\nBut, we don\u0027t make sure that one of those devices wasn\u0027t\nfs_devices-\u003elatest_bdev, which means we can do a use after free\non the one we closed.\n\nThis updates latest_bdev as it goes.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fe66a05a06795bd3b788404d69ea7709f46a1609",
      "tree": "8d576c0c69ef44a253370bbec135efe2477d18d2",
      "parents": [
        "692e5759a43b916f0b66bcb39b2957499992381e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 20 08:40:56 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 23 10:43:45 2012 -0500"
      },
      "message": "Btrfs: improve error handling for btrfs_insert_dir_item callers\n\nThis allows us to gracefully continue if we aren\u0027t able to insert\ndirectory items, both for normal files/dirs and snapshots.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "437cf4c7b7feeca29f74e1e6f8d458ea2623d5e2",
      "tree": "71ef02369cbbef4523a0cb426809e724b85b723a",
      "parents": [
        "719741d9986572d64b47c35c09f5e7bb8d389400",
        "abe9a6d57b4544ac208401f9c0a4262814db2be4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 22 08:43:35 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 22 08:43:35 2012 -0800"
      },
      "message": "Merge tag \u0027nfs-for-3.3-4\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nBugfixes for the NFS client.\n\nFix a nasty Oops in the NFSv4 getacl code, another source of infinite\nloops in the NFSv4 state recovery code, and a regression in NFSv4.1\nsession initialisation.\n\nAlso deal with an NFSv4.1 memory leak.\n\n* tag \u0027nfs-for-3.3-4\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFSv4: fix server_scope memory leak\n  NFSv4.1: Fix a NFSv4.1 session initialisation regression\n  NFSv4: Ensure we throw out bad delegation stateids on NFS4ERR_BAD_STATEID\n  NFSv4: Fix an Oops in the NFSv4 getacl code\n"
    },
    {
      "commit": "faf309009e2e18d30c032b7d9479f29b91677c37",
      "tree": "09a22833eaf02886cc1de6ac513aad1143dcf822",
      "parents": [
        "797a796a13df6b84a4791e57306737059b5b2384"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 21 17:24:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 21 17:24:20 2012 -0800"
      },
      "message": "sys_poll: fix incorrect type for \u0027timeout\u0027 parameter\n\nThe \u0027poll()\u0027 system call timeout parameter is supposed to be \u0027int\u0027, not\n\u0027long\u0027.\n\nNow, the reason this matters is that right now 32-bit compat mode is\nbroken on at least x86-64, because the 32-bit code just calls\n\u0027sys_poll()\u0027 directly on x86-64, and the 32-bit argument will have been\nzero-extended, turning a signed \u0027int\u0027 into a large unsigned \u0027long\u0027\nvalue.\n\nWe could just introduce a \u0027compat_sys_poll()\u0027 function for this, and\nthat may eventually be what we have to do, but since the actual standard\npoll() semantics is *supposed* to be \u0027int\u0027, and since at least on x86-64\nglibc sign-extends the argument before invocing the system call (so\nnobody can actually use a 64-bit timeout value in user space _anyway_,\neven in 64-bit binaries), the simpler solution would seem to be to just\nfix the definition of the system call to match what it should have been\nfrom the very start.\n\nIf it turns out that somebody somehow circumvents the user-level libc\n64-bit sign extension and actually uses a large unsigned 64-bit timeout\ndespite that not being how poll() is supposed to work, we will need to\ndo the compat_sys_poll() approach.\n\nReported-by: Thomas Meyer \u003cthomas@m3y3r.de\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c922bbc819324558e61402a7a76c10c550ca61bc",
      "tree": "814a1581f08d46b5494d514973e24e057af3ded5",
      "parents": [
        "20f12d8ac01917d96860f352f67eddd912df0afb"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Mon Feb 06 12:50:30 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Feb 21 10:12:43 2012 -0600"
      },
      "message": "xfs: make inode quota check more general\n\nThe xfs checks quota when reserving disk blocks and inodes. In the block\nreservation, it checks if the total number of blocks including current\nusage and new reservation exceed quota. In the inode reservation,\nit checks using the total number of inodes including only current usage\nwithout new reservation. However, this inode quota check works well\nsince the caller of xfs_trans_dquot() always sets the argument of the\nnumber of new inode reservation to 1 or 0 and inode is reserved one by\none in current xfs.\n\nTo make it more general, this patch changes it to the same way as the\nblock quota check.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "20f12d8ac01917d96860f352f67eddd912df0afb",
      "tree": "4923e5efeaa4a00121cb7f7617de000484e300e8",
      "parents": [
        "05293485a0b6b1f803e8a3c0ff188c38f6969985"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Mon Feb 06 12:50:07 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Feb 21 10:12:43 2012 -0600"
      },
      "message": "xfs: change available ranges of softlimit and hardlimit in quota check\n\nIn general, quota allows us to use disk blocks and inodes up to each\nlimit, that is, they are available if they don\u0027t exceed their limitations.\nCurrent xfs sets their available ranges to lower than them except disk\ninode quota check. So, this patch changes the ranges to not beyond them.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "692e5759a43b916f0b66bcb39b2957499992381e",
      "tree": "b3e1ea148b1702c63ccca95712d7cad2bb35a1ea",
      "parents": [
        "d9b0218f6cb682aa6a4ada2bfc5a25fdf3018563"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Feb 16 18:34:36 2012 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Tue Feb 21 16:02:10 2012 +0100"
      },
      "message": "Btrfs: be less strict on finding next node in clear_extent_bit\n\nIn clear_extent_bit, it is enough that next node is adjacent in tree level.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "8ebbfb49574818f07a25bc119b1bbdf1c2853a39",
      "tree": "e7b1ea6c6a3ea522654c685f2f0c9f41466fdcf9",
      "parents": [
        "39e255dab5a993cbebb35598015da1d4a0eb3727",
        "847c9db5cb50841589b8ebd3da0769b1b02fb3b2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 20 16:13:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 20 16:13:58 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nAssorted fixes, sat in -next for a week or so...\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  ocfs2: deal with wraparounds of i_nlink in ocfs2_rename()\n  vfs: fix compat_sys_stat() handling of overflows in st_nlink\n  quota: Fix deadlock with suspend and quotas\n  vfs: Provide function to get superblock and wait for it to thaw\n  vfs: fix panic in __d_lookup() with high dentry hashtable counts\n  autofs4 - fix lockdep splat in autofs\n  vfs: fix d_inode_lookup() dentry ref leak\n"
    },
    {
      "commit": "abe9a6d57b4544ac208401f9c0a4262814db2be4",
      "tree": "7fb4e9f48bcc6f9269ff59be77c7d9ad9c15ed2d",
      "parents": [
        "f86f36a6ae625eda87a13e1ea102a908e08f491b"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu Feb 16 11:17:05 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 17 17:34:03 2012 -0500"
      },
      "message": "NFSv4: fix server_scope memory leak\n\nserver_scope would never be freed if nfs4_check_cl_exchange_flags() returned\nnon-zero\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f86f36a6ae625eda87a13e1ea102a908e08f491b",
      "tree": "4facbd3378390f4a571bbc169e197a3373f39159",
      "parents": [
        "b9f9a03150969e4bd9967c20bce67c4de769058f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 14 20:33:19 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 17 17:33:39 2012 -0500"
      },
      "message": "NFSv4.1: Fix a NFSv4.1 session initialisation regression\n\nCommit aacd553 (NFSv4.1: cleanup init and reset of session slot tables)\nintroduces a regression in the session initialisation code. New tables\nnow find their sequence ids initialised to 0, rather than the mandated\nvalue of 1 (see RFC5661).\n\nFix the problem by merging nfs4_reset_slot_table() and nfs4_init_slot_table().\nSince the tbl-\u003emax_slots is initialised to 0, the test in\nnfs4_reset_slot_table for max_reqs !\u003d tbl-\u003emax_slots will automatically\npass for an empty table.\n\nReported-by: Vitaliy Gusev \u003cgusev.vitaliy@nexenta.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "465c9343c5b746ec2325a220fa3e50cc647d2db7",
      "tree": "fbff1765ebac62a5910ba34c15deeb8729fce1be",
      "parents": [
        "545d680938be1e86a6c5250701ce9abaf360c495"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Feb 10 13:39:50 2012 +0800"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Thu Feb 16 16:06:27 2012 -0600"
      },
      "message": "ecryptfs: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\n"
    },
    {
      "commit": "545d680938be1e86a6c5250701ce9abaf360c495",
      "tree": "c2cb3c9cfbee7c041d137296b72f311179a41f0c",
      "parents": [
        "4a26620df451ad46151ad21d711ed43e963c004e"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Tue Feb 07 17:55:40 2012 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Thu Feb 16 16:06:27 2012 -0600"
      },
      "message": "eCryptfs: Copy up lower inode attrs after setting lower xattr\n\nAfter passing through a -\u003esetxattr() call, eCryptfs needs to copy the\ninode attributes from the lower inode to the eCryptfs inode, as they\nmay have changed in the lower filesystem\u0027s -\u003esetxattr() path.\n\nOne example is if an extended attribute containing a POSIX Access\nControl List is being set. The new ACL may cause the lower filesystem to\nmodify the mode of the lower inode and the eCryptfs inode would need to\nbe updated to reflect the new mode.\n\nhttps://launchpad.net/bugs/926292\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReported-by: Sebastien Bacher \u003cseb128@ubuntu.com\u003e\nCc: John Johansen \u003cjohn.johansen@canonical.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\n"
    },
    {
      "commit": "4a26620df451ad46151ad21d711ed43e963c004e",
      "tree": "bf035ea6a656b3e19fe93bf37991632cad96d971",
      "parents": [
        "c38e23456278e967f094b08247ffc3711b1029b2"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Sat Nov 05 13:45:08 2011 -0400"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Thu Feb 16 16:06:21 2012 -0600"
      },
      "message": "eCryptfs: Improve statfs reporting\n\nstatfs() calls on eCryptfs files returned the wrong filesystem type and,\nwhen using filename encryption, the wrong maximum filename length.\n\nIf mount-wide filename encryption is enabled, the cipher block size and\nthe lower filesystem\u0027s max filename length will determine the max\neCryptfs filename length. Pre-tested, known good lengths are used when\nthe lower filesystem\u0027s namelen is 255 and a cipher with 8 or 16 byte\nblock sizes is used. In other, less common cases, we fall back to a safe\nrounded-down estimate when determining the eCryptfs namelen.\n\nhttps://launchpad.net/bugs/885744\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReported-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReviewed-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReviewed-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\n"
    },
    {
      "commit": "d9b0218f6cb682aa6a4ada2bfc5a25fdf3018563",
      "tree": "ea325470025698b1f9bfd8ff034d0d54ee89bb59",
      "parents": [
        "9d47c7671dc555e198c7347a173ed37316e0c4c1"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Feb 16 18:34:39 2012 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Feb 16 17:23:18 2012 +0100"
      },
      "message": "Btrfs: fix a bug on overcommit stuff\n\nWhen overcommitting, we should check the sum of pinned space and\nbytes for delayed item.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "9d47c7671dc555e198c7347a173ed37316e0c4c1",
      "tree": "4a24af02762bf4eb05f936dd8f210430fefc9d17",
      "parents": [
        "0449314a9cc5a7fb0bd42e2175a3c46f68f3a2b0"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Feb 16 18:34:38 2012 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Feb 16 17:23:17 2012 +0100"
      },
      "message": "Btrfs: kick out redundant stuff in convert_extent_bit\n\nclear_state_bit will do merge_state for us, so kick out the redundant one.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "0449314a9cc5a7fb0bd42e2175a3c46f68f3a2b0",
      "tree": "8c651bb7aad7c0529098c46b2dca9a7f02a282f9",
      "parents": [
        "285190d99fef696ec8b0041787387f013cb71d67"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Feb 16 18:34:37 2012 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Feb 16 17:23:17 2012 +0100"
      },
      "message": "Btrfs: skip states when they does not contain bits to clear\n\nClearing a range\u0027s bits is different with setting them, since we don\u0027t\nneed to touch them when states do not contain bits we want.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "285190d99fef696ec8b0041787387f013cb71d67",
      "tree": "d55c5e3f71718cb21f9349280fb160d0403d082d",
      "parents": [
        "600a45e1d5e376f679ff9ecc4ce9452710a6d27c"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu Feb 16 16:23:58 2012 +0900"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Feb 16 17:23:17 2012 +0100"
      },
      "message": "Btrfs: check return value of lookup_extent_mapping() correctly\n\nThis patch corrects error checking of lookup_extent_mapping().\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "600a45e1d5e376f679ff9ecc4ce9452710a6d27c",
      "tree": "c4bf84eee1db132b5ff18700b95da8426a909f2f",
      "parents": [
        "013bd4c336ad0d30e9e41f9cff0dbc1858934e75"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Feb 16 15:01:24 2012 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Feb 16 17:23:16 2012 +0100"
      },
      "message": "Btrfs: fix deadlock on page lock when doing auto-defragment\n\nWhen I ran xfstests circularly on a auto-defragment btrfs, the deadlock\nhappened.\n\nSteps to reproduce:\n[tty0]\n # export MOUNT_OPTIONS\u003d\"-o autodefrag\"\n # export TEST_DEV\u003d\u003cpartition1\u003e\n # export TEST_DIR\u003d\u003cmountpoint1\u003e\n # export SCRATCH_DEV\u003d\u003cpartition2\u003e\n # export SCRATCH_MNT\u003d\u003cmountpoint2\u003e\n # while [ 1 ]\n \u003e do\n \u003e ./check 091 127 263\n \u003e sleep 1\n \u003e done\n[tty1]\n # while [ 1 ]\n \u003e do\n \u003e echo 3 \u003e /proc/sys/vm/drop_caches\n \u003e done\n\nSeveral hours later, the test processes will hang on, and the deadlock will\nhappen on page lock.\n\nThe reason is that:\n  Auto defrag task\t\tFlush thread\t\t\tTest task\n\t\t\t\tbtrfs_writepages()\n\t\t\t\t  add ordered extent\n\t\t\t\t  (including page 1, 2)\n\t\t\t\t  set page 1 writeback\n\t\t\t\t  set page 2 writeback\n\t\t\t\tendio_fn()\n\t\t\t\t  end page 2 writeback\n\t\t\t\t\t\t\t\trelease page 2\nlock page 1\nalloc and lock page 2\npage 2 is not uptodate\n  btrfs_readpage()\n    start ordered extent()\n    btrfs_writepages()\n      try  to lock page 1\n\nso deadlock happens.\n\nFix this bug by unlocking the page which is in writeback, and re-locking it\nafter the writeback end.\n\nSigned-off-by: Miao Xie \u003cmiax@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "013bd4c336ad0d30e9e41f9cff0dbc1858934e75",
      "tree": "f605d1160c95e3e82016ca8a81e6e1c3af2b7cba",
      "parents": [
        "12fc9d0923ca70ae8960bccebac09d5c12f8c4d4"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu Feb 16 10:11:40 2012 +0900"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Feb 16 17:23:16 2012 +0100"
      },
      "message": "Btrfs: fix return value check of extent_io_ops\n\nThis patch adds the check on the return value of extent_io_ops.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "12fc9d0923ca70ae8960bccebac09d5c12f8c4d4",
      "tree": "996a0e13d8e15e374144fa4f3d15680e0eada5b1",
      "parents": [
        "8a3344269465b26761b74493cfbeeaa75d821614"
      ],
      "author": {
        "name": "Florian Albrechtskirchinger",
        "email": "falbrechtskirchinger@gmail.com",
        "time": "Fri Feb 10 22:15:54 2012 +0100"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Feb 16 16:35:41 2012 +0100"
      },
      "message": "btrfs: honor umask when creating subvol root\n\nSet the subvol root inode permissions based on the current umask.\n"
    },
    {
      "commit": "8a3344269465b26761b74493cfbeeaa75d821614",
      "tree": "31dbc7d96441b95825c70073c769fc7b3f674a75",
      "parents": [
        "c08782dacd7a098f2b8bca7f4a57a5b402e9e1e5"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Fri Oct 07 18:06:13 2011 +0200"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:25 2012 +0100"
      },
      "message": "btrfs: silence warning in raid array setup\n\nRaid array setup code creates an extent buffer in an usual way. When the\nPAGE_CACHE_SIZE is \u003e super block size, the extent pages are not marked\nup-to-date, which triggers a WARN_ON in the following\nwrite_extent_buffer call. Add an explicit up-to-date call to silence the\nwarning.\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\n"
    },
    {
      "commit": "c08782dacd7a098f2b8bca7f4a57a5b402e9e1e5",
      "tree": "f86a4875ac874cd3ddd0cc2eae85701e87105a72",
      "parents": [
        "87826df0ec36fc28884b4ddbb3f3af41c4c2008f"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:25 2012 +0100"
      },
      "message": "btrfs: fix structs where bitfields and spinlock/atomic share 8B word\n\nOn ia64, powerpc64 and sparc64 the bitfield is modified through a RMW cycle and current\ngcc rewrites the adjacent 4B word, which in case of a spinlock or atomic has\ndisaterous effect.\n\nhttps://lkml.org/lkml/2012/2/1/220\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\n"
    },
    {
      "commit": "87826df0ec36fc28884b4ddbb3f3af41c4c2008f",
      "tree": "7d95bf1ff03c82805903330a279a67642be68699",
      "parents": [
        "a7e221e9002306a753d6f78b4060edabce402033"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Wed Feb 15 16:23:57 2012 +0100"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:25 2012 +0100"
      },
      "message": "btrfs: delalloc for page dirtied out-of-band in fixup worker\n\n We encountered an issue that was easily observable on s/390 systems but\n could really happen anywhere. The timing just seemed to hit reliably\n on s/390 with limited memory.\n\n The gist is that when an unexpected set_page_dirty() happened, we\u0027d\n run into the BUG() in btrfs_writepage_fixup_worker since it wasn\u0027t\n properly set up for delalloc.\n\n This patch does the following:\n - Performs the missing delalloc in the fixup worker\n - Allow the start hook to return -EBUSY which informs __extent_writepage\n   that it should mark the page skipped and not to redirty it. This is\n   required since the fixup worker can fail with -ENOSPC and the page\n   will have already been redirtied. That causes an Oops in\n   drop_outstanding_extents later. Retrying the fixup worker could\n   lead to an infinite loop. Deferring the page redirty also saves us\n   some cycles since the page would be stuck in a resubmit-redirty loop\n   until the fixup worker completes. It\u0027s not harmful, just wasteful.\n - If the fixup worker fails, we mark the page and mapping as errored,\n   and end the writeback, similar to what we would do had the page\n   actually been submitted to writeback.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\n"
    },
    {
      "commit": "a7e221e9002306a753d6f78b4060edabce402033",
      "tree": "0b69be576f3cbbb5fe24a4f9e57dcbda57f2ccb1",
      "parents": [
        "859acaf1a29bbacf6256f1159210c8d6df992b33"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Tue Feb 14 17:12:23 2012 +0900"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:24 2012 +0100"
      },
      "message": "Btrfs: fix memory leak in load_free_space_cache()\n\nload_free_space_cache() has forgotten to free path.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "859acaf1a29bbacf6256f1159210c8d6df992b33",
      "tree": "0e08eca0d031161762623049076a5bf3bf1186c0",
      "parents": [
        "2cac13e41bf5b99ffc426bd28dfd2248df1dfa67"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Thu Feb 09 15:09:02 2012 +0100"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:24 2012 +0100"
      },
      "message": "btrfs: don\u0027t check DUP chunks twice\n\nBecause scrub enumerates the dev extent tree to find the chunks to scrub,\nit currently finds each DUP chunk twice and also scrubs it twice. This\npatch makes sure that scrub_chunk only checks that part of the chunk the\ndev extent has been found for. This only changes the behaviour for DUP\nchunks.\n\nReported-and-tested-by: Stefan Behrens \u003csbehrens@giantdisaster.de\u003e\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\n"
    },
    {
      "commit": "2cac13e41bf5b99ffc426bd28dfd2248df1dfa67",
      "tree": "b74e7e863b7d7c2e116dc6754d8faf701c0aa3c9",
      "parents": [
        "6af021d8fc3bcce790e7fbb391e39c5920fa3f71"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Feb 09 18:17:41 2012 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:23 2012 +0100"
      },
      "message": "Btrfs: fix trim 0 bytes after a device delete\n\nA user reported a bug of btrfs\u0027s trim, that is we will trim 0 bytes\nafter a device delete.\n\nThe reproducer:\n\n$ mkfs.btrfs disk1\n$ mkfs.btrfs disk2\n$ mount disk1 /mnt\n$ fstrim -v /mnt\n$ btrfs device add disk2 /mnt\n$ btrfs device del disk1 /mnt\n$ fstrim -v /mnt\n\nThis is because after we delete the device, the block group may start from\na non-zero place, which will confuse trim to discard nothing.\n\nReported-by: Lutz Euler \u003clutz.euler@freenet.de\u003e\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "6af021d8fc3bcce790e7fbb391e39c5920fa3f71",
      "tree": "9b3e3f49627aed11fa3105c469b1719c71a39636",
      "parents": [
        "8f24b49688281a77e8331894ed407f0cfe732303"
      ],
      "author": {
        "name": "Jeff Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Thu Feb 09 14:25:50 2012 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:23 2012 +0100"
      },
      "message": "Btrfs: return the internal error unchanged if btrfs_get_extent_fiemap() call failed for SEEK_DATA/SEEK_HOLE inquiry\n\nGiven that ENXIO only means \"offset beyond EOF\" for either SEEK_DATA or SEEK_HOLE inquiry\nin a desired file range, so we should return the internal error unchanged if btrfs_get_extent_fiemap()\ncall failed, rather than ENXIO.\n\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\n"
    },
    {
      "commit": "8f24b49688281a77e8331894ed407f0cfe732303",
      "tree": "22d5c69f57713ee25a4a3e38404d675c488a91cf",
      "parents": [
        "941b2ddf71987ef369389517a7e215dd505fe01e"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Feb 08 16:01:01 2012 +0100"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:23 2012 +0100"
      },
      "message": "Btrfs: avoid positive number with ERR_PTR\n\ninode_ref_info() returns 1 when the element wasn\u0027t found and \u003c 0 on error,\njust like btrfs_search_slot(). In iref_to_path() it\u0027s an error when the\ninode ref can\u0027t be found, thus we return ERR_PTR(ret) in that case. In order\nto avoid ERR_PTR(1), we now set ret to -ENOENT in that case.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "941b2ddf71987ef369389517a7e215dd505fe01e",
      "tree": "c41936dbc4201d118cc145265d0343e3b93d46f6",
      "parents": [
        "d98456fcafa6f3fd1985f9b7429aaa3531c6bfa0"
      ],
      "author": {
        "name": "Keith Mannthey",
        "email": "kmannth@us.ibm.com",
        "time": "Tue Nov 29 17:44:12 2011 -0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:22 2012 +0100"
      },
      "message": "btrfs: Sector Size check during Mount\n\nGracefully fail when trying to mount a BTRFS file system that has a\nsectorsize smaller than PAGE_SIZE.\n\nOn PPC it is possible to build a FS while using a 4k PAGE_SIZE kernel\nthen boot into a 64K PAGE_SIZE kernel.  Presently open_ctree fails in an\nendless loop and hangs the machine in this situation.\n\nMy debugging has show this Sector size \u003c Page size to be a non trivial\nsituation and a graceful exit from the situation would be nice for the\ntime being.\n\nSigned-off-by: Keith Mannthey \u003ckmannth@us.ibm.com\u003e\n"
    },
    {
      "commit": "ce5afed937f0a823d3b00c9459409c3f5f2fbd5d",
      "tree": "e2c488ad8a634812459fd733f87b673ccf1977d6",
      "parents": [
        "ca81a62198e39ad9155f12725c269fcc2a9f1f8b",
        "ff4fa4a25a33f92b5653bb43add0c63bea98d464"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 13 20:34:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 13 20:34:44 2012 -0800"
      },
      "message": "Merge git://git.samba.org/sfrench/cifs-2.6\n\n* git://git.samba.org/sfrench/cifs-2.6:\n  cifs: don\u0027t return error from standard_receive3 after marking response malformed\n  cifs: request oplock when doing open on lookup\n  cifs: fix error handling when cifscreds key payload is an error\n"
    },
    {
      "commit": "847c9db5cb50841589b8ebd3da0769b1b02fb3b2",
      "tree": "58d303a0306ed61114032b6d40085b17e13aaa0c",
      "parents": [
        "fcf83067bf6eb101a35620d752bd559d473cfbaa"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 12 21:00:05 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 13 20:45:39 2012 -0500"
      },
      "message": "ocfs2: deal with wraparounds of i_nlink in ocfs2_rename()\n\nunfortunately, nlink_t may be smaller than 32 bits and -\u003ei_nlink\non ocfs2 can grow up to 0xffffffff; storing it in nlink_t variable\nwill lose upper bits on such architectures.  Needs to be made u32,\nuntil we get kernel-side nlink_t uniformly 32bit...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fcf83067bf6eb101a35620d752bd559d473cfbaa",
      "tree": "a34e89f84bea5bd9193ed12bc49361950bba03a8",
      "parents": [
        "dcdbed853d9fbb0547b781ba676049b87f54129a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 12 20:56:29 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 13 20:45:39 2012 -0500"
      },
      "message": "vfs: fix compat_sys_stat() handling of overflows in st_nlink\n\nMassaged cp_compat_stat() into form closer to cp_new_stat(); the only\nreal issue had been in handling of st_nlink overflows - native 32bit\nstat(2) returns -EOVERFLOW in such situations, compat one silently\nloses upper bits.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "dcdbed853d9fbb0547b781ba676049b87f54129a",
      "tree": "6f8f2382e7aef99ec21ae9c4dfbfe18e47d4626c",
      "parents": [
        "6b6dc836a195e077e76977b6c020a73de411b46d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Feb 10 11:03:01 2012 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 13 20:45:39 2012 -0500"
      },
      "message": "quota: Fix deadlock with suspend and quotas\n\nThis script causes a kernel deadlock:\nset -e\nDEVICE\u003d/dev/vg1/linear\nlvchange -ay $DEVICE\nmkfs.ext3 $DEVICE\nmount -t ext3 -o usrquota,grpquota $DEVICE /mnt/test\nquotacheck -gu /mnt/test\numount /mnt/test\nmount -t ext3 -o usrquota,grpquota $DEVICE /mnt/test\nquotaon /mnt/test\ndmsetup suspend $DEVICE\nsetquota -u root 1 2 3 4 /mnt/test \u0026\nsleep 1\ndmsetup resume $DEVICE\n\nsetquota acquired semaphore s_umount for read and then tried to perform a\ntransaction (and waits because the device is suspended).  dmsetup resume tries\nto acquire s_umount for write before resuming the device (and waits for\nsetquota).\n\nFix the deadlock by grabbing a thawed superblock for quota commands which need\nit.\n\nReported-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b6dc836a195e077e76977b6c020a73de411b46d",
      "tree": "59920a3aab6db4997f6b7a95c753219bdc12bd64",
      "parents": [
        "074b85175a43a23fdbde60f55feea636e0bf0f85"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Feb 10 11:03:00 2012 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 13 20:45:38 2012 -0500"
      },
      "message": "vfs: Provide function to get superblock and wait for it to thaw\n\nIn quota code we need to find a superblock corresponding to a device and wait\nfor superblock to be unfrozen. However this waiting has to happen without\ns_umount semaphore because that is required for superblock to thaw. So provide\na function in VFS for this to keep dances with s_umount where they belong.\n\n[AV: implementation switched to saner variant]\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "074b85175a43a23fdbde60f55feea636e0bf0f85",
      "tree": "e6f6fdd82854b2bf25ea5b404cee010806a8fced",
      "parents": [
        "1d6f2097865e64963e90cce04980dce2f9fc023f"
      ],
      "author": {
        "name": "Dimitri Sivanich",
        "email": "sivanich@sgi.com",
        "time": "Wed Feb 08 12:39:07 2012 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 13 20:45:38 2012 -0500"
      },
      "message": "vfs: fix panic in __d_lookup() with high dentry hashtable counts\n\nWhen the number of dentry cache hash table entries gets too high\n(2147483648 entries), as happens by default on a 16TB system, use of a\nsigned integer in the dcache_init() initialization loop prevents the\ndentry_hashtable from getting initialized, causing a panic in\n__d_lookup().  Fix this in dcache_init() and similar areas.\n\nSigned-off-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1d6f2097865e64963e90cce04980dce2f9fc023f",
      "tree": "5173ccf565587797c62b290331ce53dfcb2fc305",
      "parents": [
        "e188dc02d3a9c911be56eca5aa114fe7e9822d53"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Aug 22 11:52:28 2011 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 13 20:45:37 2012 -0500"
      },
      "message": "autofs4 - fix lockdep splat in autofs\n\nWhen recursing down the locks when traversing a tree/list in\nget_next_positive_dentry() or get_next_positive_subdir() a lock can\nchange from being nested to being a parent which breaks lockdep. This\npatch tells lockdep about what we did.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e188dc02d3a9c911be56eca5aa114fe7e9822d53",
      "tree": "8b2ad2bff8dd125b5d809b943620ade2842abb4a",
      "parents": [
        "3b582f393150c72b18339bc00d7ed4fb22445ed1"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Feb 03 14:25:18 2012 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 13 20:45:37 2012 -0500"
      },
      "message": "vfs: fix d_inode_lookup() dentry ref leak\n\nd_inode_lookup() leaks a dentry reference on IS_DEADDIR().\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@vger.kernel.org\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "05293485a0b6b1f803e8a3c0ff188c38f6969985",
      "tree": "c7e62a4dc1a423ae2e7e591f50cd71fcb681919f",
      "parents": [
        "04da0c8196ac0b12fb6b84f4b7a51ad2fa56d869"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Feb 13 20:51:05 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Feb 13 17:06:39 2012 -0600"
      },
      "message": "XFS: xfs_trans_add_item() - don\u0027t assign in ASSERT() when compare is intended\n\nIt looks to me like the two ASSERT()s in xfs_trans_add_item() really\nwant to do a compare (\u003d\u003d) rather than assignment (\u003d).\nThis patch changes it from the latter to the former.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "19be13cfe37006bf90a61f6cb65ab8cb936099f3",
      "tree": "17b622ee141cb9fd6eda5417ec30f9ea21a29c14",
      "parents": [
        "b14a29982ad90853cd71370af41adfd0009d7aa0",
        "04da0c8196ac0b12fb6b84f4b7a51ad2fa56d869"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 13 14:19:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 13 14:19:45 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\nTwo bugfixes in XFS for 3.3: one fix passes KMEM_SLEEP to kmem_realloc\ninstead of 0, and the other resolves a possible deadlock in xfs quotas.\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: use a normal shrinker for the dquot freelist\n  xfs: pass KM_SLEEP flag to kmem_realloc() in xlog_recover_add_to_cnt_trans()\n"
    },
    {
      "commit": "3ec1e88b33a3bdd852ce8e014052acec7a9da8b5",
      "tree": "4270f8f0de4e28f090cba6d6e4047aae939d6463",
      "parents": [
        "8df54d622a120058ee8bec38743c9b8f091c8e58",
        "d8c66c5d59247e25a69428aced0b79d33b9c66d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 11 10:07:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 11 10:07:11 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-block\n\nSays Jens:\n\n \"Time to push off some of the pending items.  I really wanted to wait\n  until we had the regression nailed, but alas it\u0027s not quite there yet.\n  But I\u0027m very confident that it\u0027s \"just\" a missing expire on exit, so\n  fix from Tejun should be fairly trivial.  I\u0027m headed out for a week on\n  the slopes.\n\n  - Killing the barrier part of mtip32xx.  It doesn\u0027t really support\n    barriers, and it doesn\u0027t need them (writes are fully ordered).\n\n  - A few fixes from Dan Carpenter, preventing overflows of integer\n    multiplication.\n\n  - A fixup for loop, fixing a previous commit that didn\u0027t quite solve\n    the partial read problem from Dave Young.\n\n  - A bio integer overflow fix from Kent Overstreet.\n\n  - Improvement/fix of the door \"keep locked\" part of the cdrom shared\n    code from Paolo Benzini.\n\n  - A few cfq fixes from Shaohua Li.\n\n  - A fix for bsg sysfs warning when removing a file it did not create\n    from Stanislaw Gruszka.\n\n  - Two fixes for floppy from Vivek, preventing a crash.\n\n  - A few block core fixes from Tejun.  One killing the over-optimized\n    ioc exit path, cleaning that up nicely.  Two others fixing an oops\n    on elevator switch, due to calling into the scheduler merge check\n    code without holding the queue lock.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-block:\n  block: fix lockdep warning on io_context release put_io_context()\n  relay: prevent integer overflow in relay_open()\n  loop: zero fill bio instead of return -EIO for partial read\n  bio: don\u0027t overflow in bio_get_nr_vecs()\n  floppy: Fix a crash during rmmod\n  floppy: Cleanup disk-\u003equeue before caling put_disk() if add_disk() was never called\n  cdrom: move shared static to cdrom_device_info\n  bsg: fix sysfs link remove warning\n  block: don\u0027t call elevator callbacks for plug merges\n  block: separate out blk_rq_merge_ok() and blk_try_merge() from elevator functions\n  mtip32xx: removed the irrelevant argument of mtip_hw_submit_io() and the unused member of struct driver_data\n  block: strip out locking optimization in put_io_context()\n  cdrom: use copy_to_user() without the underscores\n  block: fix ioc locking warning\n  block: fix NULL icq_cache reference\n  block,cfq: change code order\n"
    },
    {
      "commit": "04da0c8196ac0b12fb6b84f4b7a51ad2fa56d869",
      "tree": "1348207af6e7824a9baa268236768b857db00712",
      "parents": [
        "4505360376637832f79f84f352588b0a045ad113"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Feb 01 13:57:20 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Feb 10 12:02:05 2012 -0600"
      },
      "message": "xfs: use a normal shrinker for the dquot freelist\n\nStop reusing dquots from the freelist when allocating new ones directly, and\nimplement a shrinker that actually follows the specifications for the\ninterface.  The shrinker implementation is still highly suboptimal at this\npoint, but we can gradually work on it.\n\nThis also fixes an bug in the previous lock ordering, where we would take\nthe hash and dqlist locks inside of the freelist lock against the normal\nlock ordering.  This is only solvable by introducing the dispose list,\nand thus not when using direct reclaim of unused dquots for new allocations.\n\nAs a side-effect the quota upper bound and used to free ratio values in\n/proc/fs/xfs/xqm are set to 0 as these values don\u0027t make any sense in the\nnew world order.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "af5feae3d7e821d8c4d38103a7f53146f2590892",
      "tree": "9017bb0661fb617177534f0617c3771d89e31afc",
      "parents": [
        "ce2814f227d3adae8456f7cbd0bd5f922fd284f0",
        "977b7e3a52a7421ad33a393a38ece59f3d41c2fa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 10 09:05:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 10 09:05:52 2012 -0800"
      },
      "message": "Merge tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nfix 1 mysterious divide error\nfix 3 NULL dereference bugs in writeback tracing, on SD card removal w/o umount\n\n* tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: fix dereferencing NULL bdi-\u003edev on trace_writeback_queue\n  lib: proportion: lower PROP_MAX_SHIFT to 32 on 64-bit kernel\n  writeback: fix NULL bdi-\u003edev in trace writeback_single_inode\n  backing-dev: fix wakeup timer races with bdi_unregister()\n"
    },
    {
      "commit": "b9f9a03150969e4bd9967c20bce67c4de769058f",
      "tree": "0621ee547ab628d3bed40f32ccbfb60af5779d4b",
      "parents": [
        "331818f1c468a24e581aedcbe52af799366a9dfe"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 09 15:31:36 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 09 15:59:21 2012 -0500"
      },
      "message": "NFSv4: Ensure we throw out bad delegation stateids on NFS4ERR_BAD_STATEID\n\nTo ensure that we don\u0027t just reuse the bad delegation when we attempt to\nrecover the nfs4_state that received the bad stateid error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "1ecd3c7ea76488c63b4b0a2561fd7eaf96cc8028",
      "tree": "3bc88fd0b4fd61c86141c66e86cf5492753bcd22",
      "parents": [
        "98e96852480566333f6dacd3223f0be15df34d60"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Wed Feb 08 17:13:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 08 19:03:51 2012 -0800"
      },
      "message": "nilfs2: avoid overflowing segment numbers in nilfs_ioctl_clean_segments()\n\nnsegs is read from userspace.  Limit its value and avoid overflowing nsegs\n* sizeof(__u64) in the subsequent call to memdup_user().\n\nThis patch complements 481fe17e973fb9 (\"nilfs2: potential integer overflow\nin nilfs_ioctl_clean_segments()\").\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nCc: Haogang Chen \u003chaogangchen@gmail.com\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5abebfdd02450fa1349daacf242e70b3736581e3",
      "tree": "6dc62283b65c71fc22c643635c773fef42d9a978",
      "parents": [
        "4609dff6b5d11e1ed5ff935e15f9f6022acb312b"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "kent.overstreet@gmail.com",
        "time": "Wed Feb 08 22:07:18 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Feb 08 22:07:18 2012 +0100"
      },
      "message": "bio: don\u0027t overflow in bio_get_nr_vecs()\n\nThere were two places bio_get_nr_vecs() could overflow:\n\nFirst, it did a left shift to convert from sectors to bytes immediately\nbefore dividing by PAGE_SIZE.  If PAGE_SIZE ever was less than 512 a great\nmany things would break, so dividing by PAGE_SIZE \u003e\u003e 9 is safe and will\ngenerate smaller code too.\n\nThe nastier overflow was in the DIV_ROUND_UP() (that\u0027s what the code was\neffectively doing, anyways).  If n + d overflowed, the whole thing would\nreturn 0 which breaks things rather effectively.\n\nbio_get_nr_vecs() doesn\u0027t claim to give an exact value anyways, so the\nDIV_ROUND_UP() is silly; we could do a straight divide except if a\ndevice\u0027s queue_max_sectors was less than PAGE_SIZE we\u0027d return 0.  So we\njust add 1; this should always be safe - things will break badly if\nbio_get_nr_vecs() returns \u003e BIO_MAX_PAGES (bio_alloc() will suddenly start\nfailing) but it\u0027s queue_max_segments that must guard against this, if\nqueue_max_sectors is preventing this from happen things are going to\nexplode on architectures with different PAGE_SIZE.\n\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Valdis Kletnieks \u003cValdis.Kletnieks@vt.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "ff4fa4a25a33f92b5653bb43add0c63bea98d464",
      "tree": "cdd46e53bc579250fc0722b2d2f11ff183b47715",
      "parents": [
        "8b0192a5f478da1c1ae906bf3ffff53f26204f56"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Feb 07 06:31:05 2012 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Feb 07 22:25:31 2012 -0600"
      },
      "message": "cifs: don\u0027t return error from standard_receive3 after marking response malformed\n\nstandard_receive3 will check the validity of the response from the\nserver (via checkSMB). It\u0027ll pass the result of that check to handle_mid\nwhich will dequeue it and mark it with a status of\nMID_RESPONSE_MALFORMED if checkSMB returned an error. At that point,\nstandard_receive3 will also return an error, which will make the\ndemultiplex thread skip doing the callback for the mid.\n\nThis is wrong -- if we were able to identify the request and the\nresponse is marked malformed, then we want the demultiplex thread to do\nthe callback. Fix this by making standard_receive3 return 0 in this\nsituation.\n\nCc: stable@vger.kernel.org\nReported-and-Tested-by: Mark Moseley \u003cmoseleymark@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "8b0192a5f478da1c1ae906bf3ffff53f26204f56",
      "tree": "ce60f059f2d1ad6d53bf1546de1869349daeddeb",
      "parents": [
        "4edc53c1f8cdd99d349165d6c61c45aa4e8e2564"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Feb 07 06:30:52 2012 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Feb 07 22:25:29 2012 -0600"
      },
      "message": "cifs: request oplock when doing open on lookup\n\nCurrently, it\u0027s always set to 0 (no oplock requested).\n\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "4edc53c1f8cdd99d349165d6c61c45aa4e8e2564",
      "tree": "3df7be26aa431ff8cc884930b848e36f2d1b26b5",
      "parents": [
        "98e96852480566333f6dacd3223f0be15df34d60"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Feb 07 06:30:51 2012 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Feb 07 22:25:26 2012 -0600"
      },
      "message": "cifs: fix error handling when cifscreds key payload is an error\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "84f8bf38b9368add916e7c335b6b94a7ae927cb1",
      "tree": "e6360985eb4866d22104c63045fc2cf789e449de",
      "parents": [
        "e25c173379d1053f0851fa924cd608fc0b16252f",
        "de47a4176c532ef5961b8a46a2d541a3517412d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 07 14:07:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 07 14:07:20 2012 -0800"
      },
      "message": "Merge git://git.samba.org/sfrench/cifs-2.6\n\n* git://git.samba.org/sfrench/cifs-2.6:\n  cifs: Fix oops in session setup code for null user mounts\n  [CIFS] Update cifs Kconfig title to match removal of experimental dependency\n  cifs: fix printk format warnings\n  cifs: check offset in decode_ntlmssp_challenge()\n  cifs: NULL dereference on allocation failure\n"
    },
    {
      "commit": "11a3122f6cf2d988a77eb8883d0fc49cd013a6d5",
      "tree": "ded8ea8a2982754ff0c58448a7ed2e59487104cb",
      "parents": [
        "822bfa51ce44f2c63c300fdb76dc99c4d5a5ca9f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 07 07:51:30 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Feb 07 07:51:30 2012 +0100"
      },
      "message": "block: strip out locking optimization in put_io_context()\n\nput_io_context() performed a complex trylock dancing to avoid\ndeferring ioc release to workqueue.  It was also broken on UP because\ntrylock was always assumed to succeed which resulted in unbalanced\npreemption count.\n\nWhile there are ways to fix the UP breakage, even the most\npathological microbench (forced ioc allocation and tight fork/exit\nloop) fails to show any appreciable performance benefit of the\noptimization.  Strip it out.  If there turns out to be workloads which\nare affected by this change, simpler optimization from the discussion\nthread can be applied later.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLKML-Reference: \u003c1328514611.21268.66.camel@sli10-conroe\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "96e02d1586782eadf051fa3d6bc4132d2447ac2c",
      "tree": "dd40e6302d2770d3c51cced64cfd3b8cf1355da4",
      "parents": [
        "23783f817bceedd6d4e549385e3f400ea64059e5"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sat Feb 04 10:47:10 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 06 15:15:20 2012 -0800"
      },
      "message": "exec: fix use-after-free bug in setup_new_exec()\n\nSetting the task name is done within setup_new_exec() by accessing\nbprm-\u003efilename. However this happens after flush_old_exec().\nThis may result in a use after free bug, flush_old_exec() may\n\"complete\" vfork_done, which will wake up the parent which in turn\nmay free the passed in filename.\nTo fix this add a new tcomm field in struct linux_binprm which\ncontains the now early generated task name until it is used.\n\nFixes this bug on s390:\n\n  Unable to handle kernel pointer dereference at virtual kernel address 0000000039768000\n  Process kworker/u:3 (pid: 245, task: 000000003a3dc840, ksp: 0000000039453818)\n  Krnl PSW : 0704000180000000 0000000000282e94 (setup_new_exec+0xa0/0x374)\n  Call Trace:\n  ([\u003c0000000000282e2c\u003e] setup_new_exec+0x38/0x374)\n   [\u003c00000000002dd12e\u003e] load_elf_binary+0x402/0x1bf4\n   [\u003c0000000000280a42\u003e] search_binary_handler+0x38e/0x5bc\n   [\u003c0000000000282b6c\u003e] do_execve_common+0x410/0x514\n   [\u003c0000000000282cb6\u003e] do_execve+0x46/0x58\n   [\u003c00000000005bce58\u003e] kernel_execve+0x28/0x70\n   [\u003c000000000014ba2e\u003e] ____call_usermodehelper+0x102/0x140\n   [\u003c00000000005bc8da\u003e] kernel_thread_starter+0x6/0xc\n   [\u003c00000000005bc8d4\u003e] kernel_thread_starter+0x0/0xc\n  Last Breaking-Event-Address:\n   [\u003c00000000002830f0\u003e] setup_new_exec+0x2fc/0x374\n\n  Kernel panic - not syncing: Fatal exception: panic_on_oops\n\nReported-by: Sebastian Ott \u003csebott@linux.vnet.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71b1b20b8aea6ba4a1a15736409f1261d8dfe1da",
      "tree": "494acfa3fee2b77ee6104fc623f760c7253d3ccb",
      "parents": [
        "d12566674c2d8d1275e197c01b44b481de42eda9",
        "500823195d0c9eec2a4637484f30cc93ec633d4a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 04 07:17:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 04 07:17:47 2012 -0800"
      },
      "message": "Merge tag \u0027for-linus-3.3\u0027 of git://git.infradead.org/~dwmw2/mtd-3.3\n\n - Fix a regression in 16-bit Atmel NAND flash which was introduced in 3.1\n - Fix breakage with MTD suspend caused by the API rework\n - Fix a problem with resetting the MX28 BCH module\n - A couple of other trivial fixes\n\n* tag \u0027for-linus-3.3-20120204\u0027 of git://git.infradead.org/~dwmw2/mtd-3.3:\n  Revert \"mtd: atmel_nand: optimize read/write buffer functions\"\n  mtd: fix MTD suspend\n  jffs2: do not initialize variable unnecessarily\n  mtd: gpmi-nand bugfix: reset the BCH module when it is not MX23\n  mtd: nand: fix typo in comment\n"
    },
    {
      "commit": "331818f1c468a24e581aedcbe52af799366a9dfe",
      "tree": "9bdbc52833c576e21e83d457d350b5db931ebade",
      "parents": [
        "7c7ed8ec337bf5f62cc5287a6eb6b2f1b7504c2f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 03 18:30:53 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 03 18:50:34 2012 -0500"
      },
      "message": "NFSv4: Fix an Oops in the NFSv4 getacl code\n\nCommit bf118a342f10dafe44b14451a1392c3254629a1f (NFSv4: include bitmap\nin nfsv4 get acl data) introduces the \u0027acl_scratch\u0027 page for the case\nwhere we may need to decode multi-page data. However it fails to take\ninto account the fact that the variable may be NULL (for the case where\nwe\u0027re not doing multi-page decode), and it also attaches it to the\nencoding xdr_stream rather than the decoding one.\n\nThe immediate result is an Oops in nfs4_xdr_enc_getacl due to the\ncall to page_address() with a NULL page pointer.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Andy Adamson \u003candros@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "6c073a7ee250118b8be3a2379c96fd7f78382b06",
      "tree": "b398bd9cad821a3543df835e5a0110f270acafb9",
      "parents": [
        "ff05f603c3238010769787f3ba54c48c290ed3e5",
        "d23a4b3fd6ef70b80411b39b8c8bc548a219ce70"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 02 15:47:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 02 15:47:33 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  rbd: fix safety of rbd_put_client()\n  rbd: fix a memory leak in rbd_get_client()\n  ceph: create a new session lock to avoid lock inversion\n  ceph: fix length validation in parse_reply_info()\n  ceph: initialize client debugfs outside of monc-\u003emutex\n  ceph: change \"ceph.layout\" xattr to be \"ceph.file.layout\"\n"
    },
    {
      "commit": "de47a4176c532ef5961b8a46a2d541a3517412d3",
      "tree": "6ceecd645cbc662c47d2b00478bcb69409353734",
      "parents": [
        "2a73ca8208197d03f78d680b3c7953b897e91eb6"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Thu Feb 02 15:28:28 2012 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Thu Feb 02 16:59:09 2012 -0600"
      },
      "message": "cifs: Fix oops in session setup code for null user mounts\n\nFor null user mounts, do not invoke string length function\nduring session setup.\n\nCc: \u003cstable@kernel.org\nReported-and-Tested-by: Chris Clayton \u003cchris2553@googlemail.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "8cdb878dcb359fd1137e9abdee9322f5e9bcfdf8",
      "tree": "146afc01f3c1d7cbc944328484d077032bc53bfd",
      "parents": [
        "24b36da33c64368775f4ef9386d44dce1d2bc8cf"
      ],
      "author": {
        "name": "Christopher Yeoh",
        "email": "cyeoh@au1.ibm.com",
        "time": "Thu Feb 02 11:34:09 2012 +1030"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 02 12:55:17 2012 -0800"
      },
      "message": "Fix race in process_vm_rw_core\n\nThis fixes the race in process_vm_core found by Oleg (see\n\n  http://article.gmane.org/gmane.linux.kernel/1235667/\n\nfor details).\n\nThis has been updated since I last sent it as the creation of the new\nmm_access() function did almost exactly the same thing as parts of the\nprevious version of this patch did.\n\nIn order to use mm_access() even when /proc isn\u0027t enabled, we move it to\nkernel/fork.c where other related process mm access functions already\nare.\n\nSigned-off-by: Chris Yeoh \u003cyeohc@au1.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8fb02abdc39f92a1066313e2b17047876afa8f9",
      "tree": "32f8126683dd185411b701b79d23900cf6c02035",
      "parents": [
        "32852a81bccd9e3d1953b894966393d1b546576d"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Jan 12 17:48:10 2012 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 02 12:49:19 2012 -0800"
      },
      "message": "ceph: create a new session lock to avoid lock inversion\n\nLockdep was reporting a possible circular lock dependency in\ndentry_lease_is_valid().  That function needs to sample the\nsession\u0027s s_cap_gen and and s_cap_ttl fields coherently, but needs\nto do so while holding a dentry lock.  The s_cap_lock field was\nbeing used to protect the two fields, but that can\u0027t be taken while\nholding a lock on a dentry within the session.\n\nIn most cases, the s_cap_gen and s_cap_ttl fields only get operated\non separately.  But in three cases they need to be updated together.\nImplement a new lock to protect the spots updating both fields\natomically is required.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nReviewed-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "32852a81bccd9e3d1953b894966393d1b546576d",
      "tree": "8c21ce9f1a1e6ecfbeafdcc8552b77b3587bca5b",
      "parents": [
        "ab434b60ab07f8c44246b6fb0cddee436687a09a"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Sat Jan 14 22:20:59 2012 -0500"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 02 12:49:11 2012 -0800"
      },
      "message": "ceph: fix length validation in parse_reply_info()\n\n\"len\" is read from network and thus needs validation.  Otherwise, given\na bogus \"len\" value, p+len could be an out-of-bounds pointer, which is\nused in further parsing.\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "114fc47492e23d93653e4a16664833e98d62a563",
      "tree": "c5ff822c89193cc6cad952cf24a06cd4a1f706eb",
      "parents": [
        "805a6af8dba5dfdd35ec35dc52ec0122400b2610"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Wed Jan 11 17:41:01 2012 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 02 12:48:52 2012 -0800"
      },
      "message": "ceph: change \"ceph.layout\" xattr to be \"ceph.file.layout\"\n\nThe virtual extended attribute named \"ceph.layout\" is meaningful\nonly for regular files.  Change its name to be \"ceph.file.layout\" to\nmore directly reflect that in the ceph xattr namespace.  Preserve\nthe old \"ceph.layout\" name for the time being (until we decide it\u0027s\nsafe to get rid of it entirely).\n\nAdd a missing initializer for \"readonly\" in the terminating entry.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nReviewed-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6d08f2c7139790c268820a2e590795cb8333181a",
      "tree": "78b2773b8ca6949f9561af641908e4086ba193cb",
      "parents": [
        "572d34b946bae070debd42db1143034d9687e13f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jan 31 17:15:11 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 01 14:39:01 2012 -0800"
      },
      "message": "proc: make sure mem_open() doesn\u0027t pin the target\u0027s memory\n\nOnce /proc/pid/mem is opened, the memory can\u0027t be released until\nmem_release() even if its owner exits.\n\nChange mem_open() to do atomic_inc(mm_count) + mmput(), this only\npins mm_struct. Change mem_rw() to do atomic_inc_not_zero(mm_count)\nbefore access_remote_vm(), this verifies that this mm is still alive.\n\nI am not sure what should mem_rw() return if atomic_inc_not_zero()\nfails. With this patch it returns zero to match the \"mm \u003d\u003d NULL\" case,\nmay be it should return -EINVAL like it did before e268337d.\n\nPerhaps it makes sense to add the additional fatal_signal_pending()\ncheck into the main loop, to ensure we do not hold this memory if\nthe target task was oom-killed.\n\nCc: stable@kernel.org\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "572d34b946bae070debd42db1143034d9687e13f",
      "tree": "b913d612090e8ec25e92451120ef64692c802264",
      "parents": [
        "71879d3cb3dd8f2dfdefb252775c1b3ea04a3dd4"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jan 31 17:14:54 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 01 14:39:01 2012 -0800"
      },
      "message": "proc: unify mem_read() and mem_write()\n\nNo functional changes, cleanup and preparation.\n\nmem_read() and mem_write() are very similar. Move this code into the\nnew common helper, mem_rw(), which takes the additional \"int write\"\nargument.\n\nCc: stable@kernel.org\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71879d3cb3dd8f2dfdefb252775c1b3ea04a3dd4",
      "tree": "befc1bd5504c6d97a24a2d519de19eaa3af0906f",
      "parents": [
        "879a5a001b62a020e074d460b3a7c0fd993f9832"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jan 31 17:14:38 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 01 14:39:01 2012 -0800"
      },
      "message": "proc: mem_release() should check mm !\u003d NULL\n\nmem_release() can hit mm \u003d\u003d NULL, add the necessary check.\n\nCc: stable@kernel.org\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d731019218e49a9811f6d0adec4b1cfcb752bed",
      "tree": "a90bf478f8fe36543ba586db5fa2760ba129a180",
      "parents": [
        "62aa2b537c6f5957afd98e29f96897419ed5ebab"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Feb 01 11:10:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 01 11:10:24 2012 -0800"
      },
      "message": "mtd: fix merge conflict resolution breakage\n\nThis patch fixes merge conflict resolution breakage introduced by merge\nd3712b9dfcf4 (\"Merge tag \u0027for-linus\u0027 of git://github.com/prasad-joshi/logfs_upstream\").\n\nThe commit changed \u0027mtd_can_have_bb()\u0027 function and made it always\nreturn zero, which is incorrect.  Instead, we need it to return whether\nthe underlying flash device can have bad eraseblocks or not.  UBI needs\nthis information because it affects how it handles the underlying flash.\nE.g., if the underlying flash is NOR, it cannot have bad blocks and any\nwrite or erase error is fatal, and all we can do is to switch to R/O\nmode.  We do not need to reserve a pool of good eraseblocks for bad\neraseblocks handling, and so on.\n\nThis patch also removes \u0027mtd_can_have_bb()\u0027 invocations from Logfs to\nensure correct Logfs behavior.\n\nI\u0027ve tested that with this patch UBI works on top of NOR and NAND\nflashes emulated by mtdram and nandsim correspondingly.\n\nThis patch is based on patch from Linus Torvalds.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nAcked-by: Jörn Engel \u003cjoern@logfs.org\u003e\nAcked-by: Prasad Joshi \u003cprasadjoshi.linux@gmail.com\u003e\nAcked-by: Brian Norris \u003ccomputersforpeace@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "15eb77a07c714ac80201abd0a9568888bcee6276",
      "tree": "cc43dc8458cb431900fd47990772ffa56b36b4f4",
      "parents": [
        "2673b4cf5d59c3ee5e0c12f6d734d38770324dc4"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jan 17 11:18:56 2012 -0600"
      },
      "committer": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Feb 01 16:53:40 2012 +0800"
      },
      "message": "writeback: fix NULL bdi-\u003edev in trace writeback_single_inode\n\nbdi_prune_sb() resets sb-\u003es_bdi to default_backing_dev_info when the\ntearing down the original bdi. Fix trace_writeback_single_inode to\nuse sb-\u003es_bdi\u003ddefault_backing_dev_info rather than bdi-\u003edev\u003dNULL for a\nteared down bdi.\n\nCc: \u003cstable@kernel.org\u003e\nReported-by: Rabin Vincent \u003crabin@rab.in\u003e\nTested-by: Rabin Vincent \u003crabin@rab.in\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "d98456fcafa6f3fd1985f9b7429aaa3531c6bfa0",
      "tree": "7cf01b839f68a612b8d612e7eb6315955f792d73",
      "parents": [
        "9998eb703490589c3e8f1bf09b15203156776edb"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jan 31 20:27:41 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jan 31 20:27:41 2012 -0500"
      },
      "message": "Btrfs: don\u0027t reserve data with extents locked in btrfs_fallocate\n\nbtrfs_fallocate tries to allocate space only if ranges in the file don\u0027t\nalready exist.  But the enospc checks it does are not allowed with\nextents locked.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2a73ca8208197d03f78d680b3c7953b897e91eb6",
      "tree": "ba106c187c108bdf73fe3a6a84e9365b03815e74",
      "parents": [
        "000f9bb83968ebd6959ff76870f16fc8f766ebd3"
      ],
      "author": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 31 12:51:24 2012 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 31 12:51:24 2012 -0600"
      },
      "message": "[CIFS] Update cifs Kconfig title to match removal of experimental dependency\n\nRemoved the dependency on CONFIG_EXPERIMENTAL but forgot to update\nthe text description to be consistent.\n\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "4505360376637832f79f84f352588b0a045ad113",
      "tree": "d0b00507b1d1c19684cddf402d995599a2e5cbef",
      "parents": [
        "9b025eb3a89e041bab6698e3858706be2385d692"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Fri Jan 27 06:37:26 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 31 12:11:18 2012 -0600"
      },
      "message": "xfs: pass KM_SLEEP flag to kmem_realloc() in xlog_recover_add_to_cnt_trans()\n\nThe kmem_realloc() in xfs is given KM_* memory allocation flags. And it\nallocates memory using kmalloc() after they are converted to gfp_mask\nflags. In xlog_recover_add_to_cont_trans(), 0u is passed to kmem_realloc(),\ninstead of them. I guess it is preferred to use them, and here memory must\nbe allocated but don\u0027t have to be done with GFP_ATOMIC. So, this patch\nchanges it to KM_SLEEP.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "d3712b9dfcf44ca145cf87e7f4096fa2d923471a",
      "tree": "d72aaaa845fb81c669093363a0a1cc6d9e96baf2",
      "parents": [
        "c5d2bc11030568966f04a2af35bacf33d3e37af7",
        "f2933e86ad93a8d1287079d59e67afd6f4166a9d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 31 09:23:59 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 31 09:23:59 2012 -0800"
      },
      "message": "Merge tag \u0027for-linus\u0027 of git://github.com/prasad-joshi/logfs_upstream\n\nThere are few important bug fixes for LogFS\n\n* tag \u0027for-linus\u0027 of git://github.com/prasad-joshi/logfs_upstream:\n  Logfs: Allow NULL block_isbad() methods\n  logfs: Grow inode in delete path\n  logfs: Free areas before calling generic_shutdown_super()\n  logfs: remove useless BUG_ON\n  MAINTAINERS: Add Prasad Joshi in LogFS maintiners\n  logfs: Propagate page parameter to __logfs_write_inode\n  logfs: set superblock shutdown flag after generic sb shutdown\n  logfs: take write mutex lock during fsync and sync\n  logfs: Prevent memory corruption\n  logfs: update page reference count for pined pages\n\nFix up conflict in fs/logfs/dev_mtd.c due to semantic change in what\n\"mtd-\u003eblock_isbad\" means in commit f2933e86ad93: \"Logfs: Allow NULL\nblock_isbad() methods\" clashing with the abstraction changes in the\ncommits 7086c19d0742: \"mtd: introduce mtd_block_isbad interface\" and\nd58b27ed58a3: \"logfs: do not use \u0027mtd-\u003eblock_isbad\u0027 directly\".\n\nThis resolution takes the semantics from commit f2933e86ad93, and just\nmakes mtd_block_isbad() return zero (false) if the \u0027block_isbad\u0027\nfunction is NULL.  But that also means that now \"mtd_can_have_bb()\"\nalways returns 0.\n\nNow, \"mtd_block_markbad()\" will obviously return an error if the\nlow-level driver doesn\u0027t support bad blocks, so this is somewhat\nnon-symmetric, but it actually makes sense if a NULL \"block_isbad\"\nfunction is considered to mean \"I assume that all my blocks are always\ngood\".\n"
    },
    {
      "commit": "000f9bb83968ebd6959ff76870f16fc8f766ebd3",
      "tree": "4c12a4eecfac33b279f86df817af73da121e027c",
      "parents": [
        "4991a5faab7368daac463181e786608b4eb63675"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Jan 30 19:50:01 2012 -0800"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 31 07:42:08 2012 -0600"
      },
      "message": "cifs: fix printk format warnings\n\nFix printk format warnings for ssize_t variables:\n\nfs/cifs/connect.c:2145:3: warning: format \u0027%ld\u0027 expects type \u0027long int\u0027, but argument 3 has type \u0027ssize_t\u0027\nfs/cifs/connect.c:2152:3: warning: format \u0027%ld\u0027 expects type \u0027long int\u0027, but argument 3 has type \u0027ssize_t\u0027\nfs/cifs/connect.c:2160:3: warning: format \u0027%ld\u0027 expects type \u0027long int\u0027, but argument 3 has type \u0027ssize_t\u0027\nfs/cifs/connect.c:2170:3: warning: format \u0027%ld\u0027 expects type \u0027long int\u0027, but argument 3 has type \u0027ssize_t\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc:\tlinux-cifs@vger.kernel.org\n"
    },
    {
      "commit": "4991a5faab7368daac463181e786608b4eb63675",
      "tree": "de09a9fbbfae716c5dc2cb57a1f83a0460a8c8f4",
      "parents": [
        "803ab977618eae2b292cda0a97eed75f42250ddf"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Tue Jan 31 11:52:01 2012 +0300"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 31 07:42:06 2012 -0600"
      },
      "message": "cifs: check offset in decode_ntlmssp_challenge()\n\nWe should check that we\u0027re not copying memory from beyond the end of the\nblob.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "0a9626575400879d1d5e6bc8768188b938d7c501",
      "tree": "131242645033de27d549d9cb5d97f0043914b6d2",
      "parents": [
        "e3b8369ca8f2fd756031dd972224bc70c2364ec2",
        "ce597919361dcec97341151690e780eade2a9cf4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 28 18:20:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 28 18:20:48 2012 -0800"
      },
      "message": "Merge tag \u0027driver-core-3.3-rc1-bugfixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core\n\nHere are some patches for the 3.3-rc1 tree.\n\nIt contains the removal of the sysdev code, now that all users of it are\ngone, as well as some sysfs bugfixes that have been reported by users.\nThere are also some documentation updates here as well.\n\n* tag \u0027driver-core-3.3-rc1-bugfixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:\n  sysfs: Complain bitterly about attempts to remove files from nonexistent directories.\n  stable: update documentation to ask for kernel version\n  base/core.c:fix typo in comment in function device_add\n  Documentation: devres: add allocation functions to list of supported calls\n  Documentation update for the driver model core\n  kernel-doc: fix new warnings in driver-core\n  kernel-doc: fix new warnings in debugfs\n  kernel-doc: fix new warnings in device.h\n  driver core: remove drivers/base/sys.c and include/linux/sysdev.h\n"
    },
    {
      "commit": "67d2433ee7aa631bc3ab14c2af6bbc1d44d13a00",
      "tree": "eb29e1489f9f4a99308e08568328de73fb89fc2e",
      "parents": [
        "1c36ab1a318ab5b3b502e7e4fff3628d1a97861f",
        "9998eb703490589c3e8f1bf09b15203156776edb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 28 17:00:19 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 28 17:00:19 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:\n  Btrfs: fix reservations in btrfs_page_mkwrite\n  Btrfs: advance window_start if we\u0027re using a bitmap\n  btrfs: mask out gfp flags in releasepage\n  Btrfs: fix enospc error caused by wrong checks of the chunk\n  Btrfs: do not defrag a file partially\n  Btrfs: fix warning for 32-bit build of fs/btrfs/check-integrity.c\n  Btrfs: use cluster-\u003ewindow_start when allocating from a cluster bitmap\n  Btrfs: Check for NULL page in extent_range_uptodate\n  btrfs: Fix busyloops in transaction waiting code\n  Btrfs: make sure a bitmap has enough bytes\n  Btrfs: fix uninit warning in backref.c\n"
    },
    {
      "commit": "f2933e86ad93a8d1287079d59e67afd6f4166a9d",
      "tree": "43aa0955e24127ca0e54546defa0e321365e35dc",
      "parents": [
        "bbe01387129f76fa4bec17904eb14c4bdc3c179f"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Fri Aug 05 11:09:55 2011 +0200"
      },
      "committer": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sat Jan 28 11:43:40 2012 +0530"
      },
      "message": "Logfs: Allow NULL block_isbad() methods\n\nNot all mtd drivers define block_isbad().  Let\u0027s assume no bad blocks\ninstead of refusing to mount.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\n"
    },
    {
      "commit": "bbe01387129f76fa4bec17904eb14c4bdc3c179f",
      "tree": "7524e5c127da68f483221183ffb0ae841ebb1e6e",
      "parents": [
        "1bcceaff8cbe5e5698ccf1015c9a938aa72718c4"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Fri Aug 05 11:13:30 2011 +0200"
      },
      "committer": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sat Jan 28 11:43:07 2012 +0530"
      },
      "message": "logfs: Grow inode in delete path\n\nCan be necessary if an inode gets deleted (through -ENOSPC) before being\nwritten.  Might be better to move this into logfs_write_rec(), but for\nnow go with the stupid\u0026safe patch.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\n"
    },
    {
      "commit": "1bcceaff8cbe5e5698ccf1015c9a938aa72718c4",
      "tree": "2e36c3d9d5577dbfd3998cab37576a8761cf18fa",
      "parents": [
        "6c69494f6b442834f26377e02d43fc8e1272221d"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Fri Aug 05 11:18:19 2011 +0200"
      },
      "committer": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sat Jan 28 11:42:39 2012 +0530"
      },
      "message": "logfs: Free areas before calling generic_shutdown_super()\n\nOr hit an assertion in map_invalidatepage() instead.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\n"
    },
    {
      "commit": "6c69494f6b442834f26377e02d43fc8e1272221d",
      "tree": "0f1f9973363d19fb5015ca25eb1c06a62fee22d6",
      "parents": [
        "756ccb3c351e425ad5544ff1a92cfe6bec83b904"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Mon Sep 12 21:09:16 2011 +0530"
      },
      "committer": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sat Jan 28 11:41:56 2012 +0530"
      },
      "message": "logfs: remove useless BUG_ON\n\nIt prevents write sizes \u003e4k.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\n"
    },
    {
      "commit": "0bd90387ed5a8abbcf43391b480efdc211721cfe",
      "tree": "ce92c57f4a56b601a694a0d50e5b2834065f42c1",
      "parents": [
        "ecfd890991a26e70547e025673580923a004c5e4"
      ],
      "author": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sun Oct 02 23:46:51 2011 +0530"
      },
      "committer": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sat Jan 28 11:38:25 2012 +0530"
      },
      "message": "logfs: Propagate page parameter to __logfs_write_inode\n\nDuring GC LogFS has to rewrite each valid block to a separate segment.\nRewrite operation reads data from an old segment and writes it to a\nnewly allocated segment. Since every write operation changes data\nblock pointers maintained in inode, inode should also be rewritten.\n\nIn GC path to avoid AB-BA deadlock LogFS marks a page with\nPG_pre_locked in addition to locking the page (PG_locked). The page\nlock is ignored iff the page is pre-locked.\n\nLogFS uses a special file called segment file. The segment file\nmaintains an 8 bytes entry for every segment. It keeps track of erase\ncount, level etc. for every segment.\n\nBad things happen with a segment belonging to the segment file is GCed\n\n ------------[ cut here ]------------\nkernel BUG at /home/prasad/logfs/readwrite.c:297!\ninvalid opcode: 0000 [#1] SMP\nModules linked in: logfs joydev usbhid hid psmouse e1000 i2c_piix4\n\t\tserio_raw [last unloaded: logfs]\nPid: 20161, comm: mount Not tainted 3.1.0-rc3+ #3 innotek GmbH\n\t\tVirtualBox\nEIP: 0060:[\u003cf809132a\u003e] EFLAGS: 00010292 CPU: 0\nEIP is at logfs_lock_write_page+0x6a/0x70 [logfs]\nEAX: 00000027 EBX: f73f5b20 ECX: c16007c8 EDX: 00000094\nESI: 00000000 EDI: e59be6e4 EBP: c7337b28 ESP: c7337b18\nDS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068\nProcess mount (pid: 20161, ti\u003dc7336000 task\u003deb323f70 task.ti\u003dc7336000)\nStack:\nf8099a3d c7337b24 f73f5b20 00001002 c7337b50 f8091f6d f8099a4d f80994e4\n00000003 00000000 c7337b68 00000000 c67e4400 00001000 c7337b80 f80935e5\n00000000 00000000 00000000 00000000 e1fcf000 0000000f e59be618 c70bf900\nCall Trace:\n[\u003cf8091f6d\u003e] logfs_get_write_page.clone.16+0xdd/0x100 [logfs]\n[\u003cf80935e5\u003e] logfs_mod_segment_entry+0x55/0x110 [logfs]\n[\u003cf809460d\u003e] logfs_get_segment_entry+0x1d/0x20 [logfs]\n[\u003cf8091060\u003e] ? logfs_cleanup_journal+0x50/0x50 [logfs]\n[\u003cf809521b\u003e] ostore_get_erase_count+0x1b/0x40 [logfs]\n[\u003cf80965b8\u003e] logfs_open_area+0xc8/0x150 [logfs]\n[\u003cc141a7ec\u003e] ? kmemleak_alloc+0x2c/0x60\n[\u003cf809668e\u003e] __logfs_segment_write.clone.16+0x4e/0x1b0 [logfs]\n[\u003cc10dd563\u003e] ? mempool_kmalloc+0x13/0x20\n[\u003cc10dd563\u003e] ? mempool_kmalloc+0x13/0x20\n[\u003cf809696f\u003e] logfs_segment_write+0x17f/0x1d0 [logfs]\n[\u003cf8092e8c\u003e] logfs_write_i0+0x11c/0x180 [logfs]\n[\u003cf8092f35\u003e] logfs_write_direct+0x45/0x90 [logfs]\n[\u003cf80934cd\u003e] __logfs_write_buf+0xbd/0xf0 [logfs]\n[\u003cc102900e\u003e] ? kmap_atomic_prot+0x4e/0xe0\n[\u003cf809424b\u003e] logfs_write_buf+0x3b/0x60 [logfs]\n[\u003cf80947a9\u003e] __logfs_write_inode+0xa9/0x110 [logfs]\n[\u003cf8094cb0\u003e] logfs_rewrite_block+0xc0/0x110 [logfs]\n[\u003cf8095300\u003e] ? get_mapping_page+0x10/0x60 [logfs]\n[\u003cf8095aa0\u003e] ? logfs_load_object_aliases+0x2e0/0x2f0 [logfs]\n[\u003cf808e57d\u003e] logfs_gc_segment+0x2ad/0x310 [logfs]\n[\u003cf808e62a\u003e] __logfs_gc_once+0x4a/0x80 [logfs]\n[\u003cf808ed43\u003e] logfs_gc_pass+0x683/0x6a0 [logfs]\n[\u003cf8097a89\u003e] logfs_mount+0x5a9/0x680 [logfs]\n[\u003cc1126b21\u003e] mount_fs+0x21/0xd0\n[\u003cc10f6f6f\u003e] ? __alloc_percpu+0xf/0x20\n[\u003cc113da41\u003e] ? alloc_vfsmnt+0xb1/0x130\n[\u003cc113db4b\u003e] vfs_kern_mount+0x4b/0xa0\n[\u003cc113e06e\u003e] do_kern_mount+0x3e/0xe0\n[\u003cc113f60d\u003e] do_mount+0x34d/0x670\n[\u003cc10f2749\u003e] ? strndup_user+0x49/0x70\n[\u003cc113fcab\u003e] sys_mount+0x6b/0xa0\n[\u003cc142d87c\u003e] syscall_call+0x7/0xb\nCode: f8 e8 8b 93 39 c9 8b 45 f8 3e 0f ba 28 00 19 d2 85 d2 74 ca eb d0 0f 0b 8d 45 fc 89 44 24 04 c7 04 24 3d 9a 09 f8 e8 09 92 39 c9 \u003c0f\u003e 0b 8d 74 26 00 55 89 e5 3e 8d 74 26 00 8b 10 80 e6 01 74 09\nEIP: [\u003cf809132a\u003e] logfs_lock_write_page+0x6a/0x70 [logfs] SS:ESP 0068:c7337b18\n---[ end trace 96e67d5b3aa3d6ca ]---\n\nThe patch passes locked page to __logfs_write_inode. It calls function\nlogfs_get_wblocks() to pre-lock the page. This ensures any further\nattempts to lock the page are ignored (esp from get_erase_count).\n\nAcked-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Prasad Joshi \u003cprasadjoshi.linux@gmail.com\u003e\n"
    },
    {
      "commit": "ecfd890991a26e70547e025673580923a004c5e4",
      "tree": "f9f97f0cc7b858ff6602efce424bee1c1d1e9dc4",
      "parents": [
        "13ced29cb28996a9bc4f68e43ff0c57eafdb1e21"
      ],
      "author": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sun Oct 30 22:15:32 2011 +0530"
      },
      "committer": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sat Jan 28 11:37:47 2012 +0530"
      },
      "message": "logfs: set superblock shutdown flag after generic sb shutdown\n\nWhile unmounting the file system LogFS calls generic_shutdown_super.\nThe function does file system independent superblock shutdown.\nHowever, it might result in call file system specific inode eviction.\n\nLogFS marks FS shutting down by setting bit LOGFS_SB_FLAG_SHUTDOWN in\nsuper-\u003es_flags. Since, inode eviction might call truncate on inode,\nfollowing BUG is observed when file system is unmounted:\n\n------------[ cut here ]------------\nkernel BUG at /home/prasad/logfs/segment.c:362!\ninvalid opcode: 0000 [#1] PREEMPT SMP\nCPU 3\nModules linked in: logfs binfmt_misc ppdev virtio_blk parport_pc lp\n\tparport psmouse floppy virtio_pci serio_raw virtio_ring virtio\n\nPid: 1933, comm: umount Not tainted 3.0.0+ #4 Bochs Bochs\nRIP: 0010:[\u003cffffffffa008c841\u003e]  [\u003cffffffffa008c841\u003e]\n\t\tlogfs_segment_write+0x211/0x230 [logfs]\nRSP: 0018:ffff880062d7b9e8  EFLAGS: 00010202\nRAX: 000000000000000e RBX: ffff88006eca9000 RCX: 0000000000000000\nRDX: ffff88006fd87c40 RSI: ffffea00014ff468 RDI: ffff88007b68e000\nRBP: ffff880062d7ba48 R08: 8000000020451430 R09: 0000000000000000\nR10: dead000000100100 R11: 0000000000000000 R12: ffff88006fd87c40\nR13: ffffea00014ff468 R14: ffff88005ad0a460 R15: 0000000000000000\nFS:  00007f25d50ea760(0000) GS:ffff88007fd80000(0000)\n\tknlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\nCR2: 0000000000d05e48 CR3: 0000000062c72000 CR4: 00000000000006e0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\nProcess umount (pid: 1933, threadinfo ffff880062d7a000,\n\ttask ffff880070b44500)\nStack:\nffff880062d7ba38 ffff88005ad0a508 0000000000001000 0000000000000000\n8000000020451430 ffffea00014ff468 ffff880062d7ba48 ffff88005ad0a460\nffff880062d7bad8 ffffea00014ff468 ffff88006fd87c40 0000000000000000\nCall Trace:\n[\u003cffffffffa0088fee\u003e] logfs_write_i0+0x12e/0x190 [logfs]\n[\u003cffffffffa0089360\u003e] __logfs_write_rec+0x140/0x220 [logfs]\n[\u003cffffffffa0089312\u003e] __logfs_write_rec+0xf2/0x220 [logfs]\n[\u003cffffffffa00894a4\u003e] logfs_write_rec+0x64/0xd0 [logfs]\n[\u003cffffffffa0089616\u003e] __logfs_write_buf+0x106/0x110 [logfs]\n[\u003cffffffffa008a19e\u003e] logfs_write_buf+0x4e/0x80 [logfs]\n[\u003cffffffffa008a6b8\u003e] __logfs_write_inode+0x98/0x110 [logfs]\n[\u003cffffffffa008a7c4\u003e] logfs_truncate+0x54/0x290 [logfs]\n[\u003cffffffffa008abfc\u003e] logfs_evict_inode+0xdc/0x190 [logfs]\n[\u003cffffffff8115eef5\u003e] evict+0x85/0x170\n[\u003cffffffff8115f126\u003e] iput+0xe6/0x1b0\n[\u003cffffffff8115b4a8\u003e] shrink_dcache_for_umount_subtree+0x218/0x280\n[\u003cffffffff8115ce91\u003e] shrink_dcache_for_umount+0x51/0x90\n[\u003cffffffff8114796c\u003e] generic_shutdown_super+0x2c/0x100\n[\u003cffffffffa008cc47\u003e] logfs_kill_sb+0x57/0xf0 [logfs]\n[\u003cffffffff81147de5\u003e] deactivate_locked_super+0x45/0x70\n[\u003cffffffff811487ea\u003e] deactivate_super+0x4a/0x70\n[\u003cffffffff81163934\u003e] mntput_no_expire+0xa4/0xf0\n[\u003cffffffff8116469f\u003e] sys_umount+0x6f/0x380\n[\u003cffffffff814dd46b\u003e] system_call_fastpath+0x16/0x1b\nCode: 55 c8 49 8d b6 a8 00 00 00 45 89 f9 45 89 e8 4c 89 e1 4c 89 55\nb8 c7 04 24 00 00 00 00 e8 68 fc ff ff 4c 8b 55 b8 e9 3c ff ff ff \u003c0f\u003e\n0b 0f 0b c7 45 c0 00 00 00 00 e9 44 fe ff ff 66 66 66 66 66\nRIP  [\u003cffffffffa008c841\u003e] logfs_segment_write+0x211/0x230 [logfs]\nRSP \u003cffff880062d7b9e8\u003e\n---[ end trace fe6b040cea952290 ]---\n\nTherefore, move super-\u003es_flags setting after the fs-indenpendent work\nhas been finished.\n\nReviewed-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Prasad Joshi \u003cprasadjoshi.linux@gmail.com\u003e\n"
    },
    {
      "commit": "13ced29cb28996a9bc4f68e43ff0c57eafdb1e21",
      "tree": "7c5b11f5e5124fa4d0642281880b4c558b9e5fec",
      "parents": [
        "934eed395d201bf0901ca0c0cc3703b18729d0ce"
      ],
      "author": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sat Jan 28 11:36:06 2012 +0530"
      },
      "committer": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sat Jan 28 11:36:06 2012 +0530"
      },
      "message": "logfs: take write mutex lock during fsync and sync\n\nLogFS uses super-\u003es_write_mutex while writing data to disk. Taking the\nsame mutex lock in sync and fsync code path solves the following BUG:\n\n------------[ cut here ]------------\nkernel BUG at /home/prasad/logfs/dev_bdev.c:134!\n\nPid: 2387, comm: flush-253:16 Not tainted 3.0.0+ #4 Bochs Bochs\nRIP: 0010:[\u003cffffffffa007deed\u003e]  [\u003cffffffffa007deed\u003e]\n                bdev_writeseg+0x25d/0x270 [logfs]\nCall Trace:\n[\u003cffffffffa007c381\u003e] logfs_open_area+0x91/0x150 [logfs]\n[\u003cffffffff8128dcb2\u003e] ? find_level.clone.9+0x62/0x100\n[\u003cffffffffa007c49c\u003e] __logfs_segment_write.clone.20+0x5c/0x190 [logfs]\n[\u003cffffffff810ef005\u003e] ? mempool_kmalloc+0x15/0x20\n[\u003cffffffff810ef383\u003e] ? mempool_alloc+0x53/0x130\n[\u003cffffffffa007c7a4\u003e] logfs_segment_write+0x1d4/0x230 [logfs]\n[\u003cffffffffa0078f8e\u003e] logfs_write_i0+0x12e/0x190 [logfs]\n[\u003cffffffffa0079300\u003e] __logfs_write_rec+0x140/0x220 [logfs]\n[\u003cffffffffa0079444\u003e] logfs_write_rec+0x64/0xd0 [logfs]\n[\u003cffffffffa00795b6\u003e] __logfs_write_buf+0x106/0x110 [logfs]\n[\u003cffffffffa007a13e\u003e] logfs_write_buf+0x4e/0x80 [logfs]\n[\u003cffffffffa0073e33\u003e] __logfs_writepage+0x23/0x80 [logfs]\n[\u003cffffffffa007410c\u003e] logfs_writepage+0xdc/0x110 [logfs]\n[\u003cffffffff810f5ba7\u003e] __writepage+0x17/0x40\n[\u003cffffffff810f6208\u003e] write_cache_pages+0x208/0x4f0\n[\u003cffffffff810f5b90\u003e] ? set_page_dirty+0x70/0x70\n[\u003cffffffff810f653a\u003e] generic_writepages+0x4a/0x70\n[\u003cffffffff810f75d1\u003e] do_writepages+0x21/0x40\n[\u003cffffffff8116b9d1\u003e] writeback_single_inode+0x101/0x250\n[\u003cffffffff8116bdbd\u003e] writeback_sb_inodes+0xed/0x1c0\n[\u003cffffffff8116c5fb\u003e] writeback_inodes_wb+0x7b/0x1e0\n[\u003cffffffff8116cc23\u003e] wb_writeback+0x4c3/0x530\n[\u003cffffffff814d984d\u003e] ? sub_preempt_count+0x9d/0xd0\n[\u003cffffffff8116cd6b\u003e] wb_do_writeback+0xdb/0x290\n[\u003cffffffff814d984d\u003e] ? sub_preempt_count+0x9d/0xd0\n[\u003cffffffff814d6208\u003e] ? _raw_spin_unlock_irqrestore+0x18/0x40\n[\u003cffffffff8105aa5a\u003e] ? del_timer+0x8a/0x120\n[\u003cffffffff8116cfac\u003e] bdi_writeback_thread+0x8c/0x2e0\n[\u003cffffffff8116cf20\u003e] ? wb_do_writeback+0x290/0x290\n[\u003cffffffff8106d2e6\u003e] kthread+0x96/0xa0\n[\u003cffffffff814de514\u003e] kernel_thread_helper+0x4/0x10\n[\u003cffffffff8106d250\u003e] ? kthread_worker_fn+0x190/0x190\n[\u003cffffffff814de510\u003e] ? gs_change+0xb/0xb\nRIP  [\u003cffffffffa007deed\u003e] bdev_writeseg+0x25d/0x270 [logfs]\n---[ end trace 0211ad60a57657c4 ]---\n\nReviewed-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Prasad Joshi \u003cprasadjoshi.linux@gmail.com\u003e\n"
    },
    {
      "commit": "934eed395d201bf0901ca0c0cc3703b18729d0ce",
      "tree": "27847639b14a0fc16b850bd39c0ace939694d8f2",
      "parents": [
        "96150606e2fb82d242c9e4a414e4e922849f7bf7"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Sun Nov 20 22:29:01 2011 +0530"
      },
      "committer": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sat Jan 28 11:24:21 2012 +0530"
      },
      "message": "logfs: Prevent memory corruption\n\nThis is a bad one.  I wonder whether we were so far protected by\nno_free_segments(sb) usually being smaller than LOGFS_NO_AREAS.\n\nFound by Dan Carpenter \u003cdan.carpenter@oracle.com\u003e using smatch.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Prasad Joshi \u003cprasadjoshi.linux@gmail.com\u003e\n"
    },
    {
      "commit": "96150606e2fb82d242c9e4a414e4e922849f7bf7",
      "tree": "efdb8a85b5838aa13e6c233ebec580c1f956be5d",
      "parents": [
        "f423fc627b05f47bc9305f9661630fce30f208f9"
      ],
      "author": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sat Nov 26 11:00:47 2011 +0530"
      },
      "committer": {
        "name": "Prasad Joshi",
        "email": "prasadjoshi.linux@gmail.com",
        "time": "Sat Jan 28 11:23:10 2012 +0530"
      },
      "message": "logfs: update page reference count for pined pages\n\nLogFS sets PG_private flag to indicate a pined page. We assumed that\nmarking a page as private is enough to ensure its existence. But\ninstead it is necessary to hold a reference count to the page.\n\nThe change resolves the following BUG\n\nBUG: Bad page state in process flush-253:16  pfn:6a6d0\npage flags: 0x100000000000808(uptodate|private)\n\nSuggested-and-Acked-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Prasad Joshi \u003cprasadjoshi.linux@gmail.com\u003e\n"
    },
    {
      "commit": "9998eb703490589c3e8f1bf09b15203156776edb",
      "tree": "5d01f0e7efae049b9be80292c93fe30f11eeefd1",
      "parents": [
        "9b23062840e7c685ef0a0b561285d6e3a3b6811b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 25 13:47:40 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 27 10:44:44 2012 -0500"
      },
      "message": "Btrfs: fix reservations in btrfs_page_mkwrite\n\nJosef fixed btrfs_page_mkwrite to properly release reserved\nextents if there was an error.  But if we fail to get a reservation\nand we fail to dirty the inode (for ENOSPC reasons), we\u0027ll end up\ntrying to release a reservation we never had.\n\nThis makes sure we only release if we were able to reserve.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9b23062840e7c685ef0a0b561285d6e3a3b6811b",
      "tree": "47c00ad85dced3c4712b03de926b77c4aad99a77",
      "parents": [
        "0c4e538bccc106872d31b1514570b4dac95fb7f2"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "message": "Btrfs: advance window_start if we\u0027re using a bitmap\n\nIf we span a long area in a bitmap we could end up taking a lot of time\nsearching to the next free area if we\u0027re searching from the original\nwindow_start, so advance window_start in order to make sure we don\u0027t do any\nsuperficial searching.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0c4e538bccc106872d31b1514570b4dac95fb7f2",
      "tree": "094ecf6900b15dc8fd9e2a46cd0875e2c14cdcb9",
      "parents": [
        "9e622d6bea0202e9fe267955362c01918562c09b"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "message": "btrfs: mask out gfp flags in releasepage\n\nbtree_releasepage is a callback and can be passed unknown gfp flags and then\nthey may end up in kmem_cache_alloc called from alloc_extent_state, slab\nallocator will BUG_ON when there is HIGHMEM or DMA32 flag set.\n\nThis may happen when btrfs is mounted from a loop device, which masks out\n__GFP_IO flag. The check in try_release_extent_state\n\n3399                 if ((mask \u0026 GFP_NOFS) \u003d\u003d GFP_NOFS)\n3400                         mask \u003d GFP_NOFS;\n\nwill not work and passes unfiltered flags further resulting in crash at\nmm/slab.c:2963\n\n [\u003c000000000024ae4c\u003e] cache_alloc_refill+0x3b4/0x5c8\n [\u003c000000000024c810\u003e] kmem_cache_alloc+0x204/0x294\n [\u003c00000000001fd3c2\u003e] mempool_alloc+0x52/0x170\n [\u003c000003c000ced0b0\u003e] alloc_extent_state+0x40/0xd4 [btrfs]\n [\u003c000003c000cee5ae\u003e] __clear_extent_bit+0x38a/0x4cc [btrfs]\n [\u003c000003c000cee78c\u003e] try_release_extent_state+0x9c/0xd4 [btrfs]\n [\u003c000003c000cc4c66\u003e] btree_releasepage+0x7e/0xd0 [btrfs]\n [\u003c0000000000210d84\u003e] shrink_page_list+0x6a0/0x724\n [\u003c0000000000211394\u003e] shrink_inactive_list+0x230/0x578\n [\u003c0000000000211bb8\u003e] shrink_list+0x6c/0x120\n [\u003c0000000000211e4e\u003e] shrink_zone+0x1e2/0x228\n [\u003c0000000000211f24\u003e] shrink_zones+0x90/0x254\n [\u003c0000000000213410\u003e] do_try_to_free_pages+0xac/0x420\n [\u003c0000000000213ae0\u003e] try_to_free_pages+0x13c/0x1b0\n [\u003c0000000000204e6c\u003e] __alloc_pages_nodemask+0x5b4/0x9a8\n [\u003c00000000001fb04a\u003e] grab_cache_page_write_begin+0x7e/0xe8\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9e622d6bea0202e9fe267955362c01918562c09b",
      "tree": "75b73fbfec2c56ba9ccbe909586cf0f27aba96e1",
      "parents": [
        "7ec31b548a17f773ab6289e795ed3a6820e8b56e"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "message": "Btrfs: fix enospc error caused by wrong checks of the chunk\n\nWhen we did sysbench test for inline files, enospc error happened easily though\nthere was lots of free disk space which could be allocated for new chunks.\n\nReproduce steps:\n # mkfs.btrfs -b $((2 * 1024 * 1024 * 1024)) \u003ctest partition\u003e\n # mount \u003ctest partition\u003e /mnt\n # ulimit -n 102400\n # cd /mnt\n # sysbench --num-threads\u003d1 --test\u003dfileio --file-num\u003d81920 \\\n \u003e --file-total-size\u003d80M --file-block-size\u003d1K --file-io-mode\u003dsync \\\n \u003e --file-test-mode\u003dseqwr prepare\n # sysbench --num-threads\u003d1 --test\u003dfileio --file-num\u003d81920 \\\n \u003e --file-total-size\u003d80M --file-block-size\u003d1K --file-io-mode\u003dsync \\\n \u003e --file-test-mode\u003dseqwr run\n \u003csoon later, BUG_ON() was triggered by enospc error\u003e\n\nThe reason of this bug is:\nNow, we can reserve space which is larger than the free space in the chunks if\nwe have enough free disk space which can be used for new chunks. By this way,\nthe space allocator should allocate a new chunk by force if there is no free\nspace in the free space cache. But there are two wrong checks which break this\noperation.\n\nOne is\n\tif (ret \u003d\u003d -ENOSPC \u0026\u0026 num_bytes \u003e min_alloc_size)\nin btrfs_reserve_extent(), it is wrong, we should try to allocate a new chunk\neven we fail to allocate free space by minimum allocable size.\n\nThe other is\n\tif (space_info-\u003eforce_alloc)\n\t\tforce \u003d space_info-\u003eforce_alloc;\nin do_chunk_alloc(). It makes the allocator ignore CHUNK_ALLOC_FORCE If someone\nsets -\u003eforce_alloc to CHUNK_ALLOC_LIMITED, and makes the enospc error happen.\n\nFix these two wrong checks. Especially the second one, we fix it by changing\nthe value of CHUNK_ALLOC_LIMITED and CHUNK_ALLOC_FORCE, and make\nCHUNK_ALLOC_FORCE greater than CHUNK_ALLOC_LIMITED since CHUNK_ALLOC_FORCE has\nhigher priority. And if the value which is passed in by the caller is greater\nthan -\u003eforce_alloc, use the passed value.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7ec31b548a17f773ab6289e795ed3a6820e8b56e",
      "tree": "c0c738e7c27e4ac6185f02acd76de64986218906",
      "parents": [
        "0b485143d835c019cddc45f46e4b3873dcc9aa4e"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "message": "Btrfs: do not defrag a file partially\n\nxfstests 218 complains that btrfs defrags a file partially:\n After: 1\n Write backwards sync, but contiguous - should defrag to 1 extent\n Before: 10\n-After: 1\n+After: 2\n\nTo fix this, we need to set max_to_defrag count properly.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0b485143d835c019cddc45f46e4b3873dcc9aa4e",
      "tree": "bda30ddfa281c2841ea4b54922b701ea31509cc9",
      "parents": [
        "0b4a9d248f88e6773312f262e8185f23863d984a"
      ],
      "author": {
        "name": "Stefan Behrens",
        "email": "sbehrens@giantdisaster.de",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "message": "Btrfs: fix warning for 32-bit build of fs/btrfs/check-integrity.c\n\nThere have been 4 warnings on 32-bit build, they are herewith fixed.\n\nSigned-off-by: Stefan Behrens \u003csbehrens@giantdisaster.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0b4a9d248f88e6773312f262e8185f23863d984a",
      "tree": "bd822950b56730d6be409c98291c4f2ba19678dc",
      "parents": [
        "8bedd51b6121c4607784d75f852828d25d119c52"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "message": "Btrfs: use cluster-\u003ewindow_start when allocating from a cluster bitmap\n\nWe specifically set window_start in the cluster struct to indicate where the\ncluster starts in a bitmap, but we\u0027ve been using min_start to indicate where\nwe\u0027re searching from.  This is usually the start of the blockgroup, so\nessentially means we\u0027re constantly searching from the start of any bitmap we\nfind, which completely negates all the trouble we go to in order to setup a\ncluster.  So start using window_start to make sure we actually use the area we\nfound.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8bedd51b6121c4607784d75f852828d25d119c52",
      "tree": "e9299eb7b70a1d2f0ea5a4e23b53c7a6496eea59",
      "parents": [
        "6dd70ce4eb7429c2ba6dd9fa46f78a0a2a254038"
      ],
      "author": {
        "name": "Mitch Harder",
        "email": "mitch.harder@sabayonlinux.org",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "message": "Btrfs: Check for NULL page in extent_range_uptodate\n\nA user has encountered a NULL pointer kernel oops in btrfs when\nencountering media errors.  The problem has been identified\nas an unhandled NULL pointer returned from find_get_page().\nThis modification simply checks for a NULL page, and returns\nwith an error if found (the extent_range_uptodate() function\nreturns 1 on errors).\n\nAfter testing this patch, the user reported that the error with\nthe NULL pointer oops was solved.  However, there is still a\nremaining problem with a thread becoming stuck in\nwait_on_page_locked(page) in the read_extent_buffer_pages(...)\nfunction in extent_io.c\n\n       for (i \u003d start_i; i \u003c num_pages; i++) {\n               page \u003d extent_buffer_page(eb, i);\n               wait_on_page_locked(page);\n               if (!PageUptodate(page))\n                       ret \u003d -EIO;\n       }\n\nThis patch leaves the issue with the locked page yet to be resolved.\n\nSigned-off-by: Mitch Harder \u003cmitch.harder@sabayonlinux.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6dd70ce4eb7429c2ba6dd9fa46f78a0a2a254038",
      "tree": "d527b7a18a05183b9826d42f42e74811d5793cef",
      "parents": [
        "357b9784b79924a31ccded5d9a0c688f48cc28f2"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "message": "btrfs: Fix busyloops in transaction waiting code\n\nwait_log_commit() and wait_for_writer() were using slightly different\nconditions for deciding whether they should call schedule() and whether they\nshould continue in the wait loop. Thus it could happen that we busylooped when\nthe first condition was not true while the second one was. That is burning CPU\ncycles needlessly and is deadly on UP machines...\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    }
  ],
  "next": "357b9784b79924a31ccded5d9a0c688f48cc28f2"
}
