)]}'
{
  "log": [
    {
      "commit": "105a048a4f35f7a74c7cc20b36dd83658b6ec232",
      "tree": "043b1110cda0042ba35d8aae59382bb094d0af3f",
      "parents": [
        "00b9b0af5887fed54e899e3b7f5c2ccf5e739def",
        "9aeead73782c4b8e2a91def36dbf95db28605c95"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:43:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:43:44 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (27 commits)\n  Btrfs: add more error checking to btrfs_dirty_inode\n  Btrfs: allow unaligned DIO\n  Btrfs: drop verbose enospc printk\n  Btrfs: Fix block generation verification race\n  Btrfs: fix preallocation and nodatacow checks in O_DIRECT\n  Btrfs: avoid ENOSPC errors in btrfs_dirty_inode\n  Btrfs: move O_DIRECT space reservation to btrfs_direct_IO\n  Btrfs: rework O_DIRECT enospc handling\n  Btrfs: use async helpers for DIO write checksumming\n  Btrfs: don\u0027t walk around with task-\u003estate !\u003d TASK_RUNNING\n  Btrfs: do aio_write instead of write\n  Btrfs: add basic DIO read/write support\n  direct-io: do not merge logically non-contiguous requests\n  direct-io: add a hook for the fs to provide its own submit_bio function\n  fs: allow short direct-io reads to be completed via buffered IO\n  Btrfs: Metadata ENOSPC handling for balance\n  Btrfs: Pre-allocate space for data relocation\n  Btrfs: Metadata ENOSPC handling for tree log\n  Btrfs: Metadata reservation for orphan inodes\n  Btrfs: Introduce global metadata reservation\n  ...\n"
    },
    {
      "commit": "e4ce30f3779c2ddaa7dfaa4042209e5dbacbada5",
      "tree": "cc64c1dcd16b5dbf71ebc8338b339e6fb04abaee",
      "parents": [
        "b899ebeb05da4287ce845976727e3e83dadd25d5",
        "14ece1028b3ed53ffec1b1213ffc6acaf79ad77c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:26:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:26:37 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits)\n  ext4: Make fsync sync new parent directories in no-journal mode\n  ext4: Drop whitespace at end of lines\n  ext4: Fix compat EXT4_IOC_ADD_GROUP\n  ext4: Conditionally define compat ioctl numbers\n  tracing: Convert more ext4 events to DEFINE_EVENT\n  ext4: Add new tracepoints to track mballoc\u0027s buddy bitmap loads\n  ext4: Add a missing trace hook\n  ext4: restart ext4_ext_remove_space() after transaction restart\n  ext4: Clear the EXT4_EOFBLOCKS_FL flag only when warranted\n  ext4: Avoid crashing on NULL ptr dereference on a filesystem error\n  ext4: Use bitops to read/modify i_flags in struct ext4_inode_info\n  ext4: Convert calls of ext4_error() to EXT4_ERROR_INODE()\n  ext4: Convert callers of ext4_get_blocks() to use ext4_map_blocks()\n  ext4: Add new abstraction ext4_map_blocks() underneath ext4_get_blocks()\n  ext4: Use our own write_cache_pages()\n  ext4: Show journal_checksum option\n  ext4: Fix for ext4_mb_collect_stats()\n  ext4: check for a good block group before loading buddy pages\n  ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate\n  ext4: Remove extraneous newlines in ext4_msg() calls\n  ...\n\nFixed up trivial conflict in fs/ext4/fsync.c\n"
    },
    {
      "commit": "ade61088bc77dd209f8edadbe544f1e5dad6c287",
      "tree": "50a2eb0b78a470f379801a5abc73ff822f1e47c0",
      "parents": [
        "7eb1053fd00a8f0e2263697638e17da8a251aa74",
        "0522f6adedd2736cbca3c0e16ca51df668993eee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:18:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:18:44 2010 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Fix another nfs_wb_page() deadlock\n  NFS: Ensure that we mark the inode as dirty if we exit early from commit\n  NFS: Fix a lock imbalance typo in nfs_access_cache_shrinker\n  sunrpc: fix leak on error on socket xprt setup\n"
    },
    {
      "commit": "ca572727dbb945e443564029a495157fd2e72995",
      "tree": "10486033a428e9389e32cbc78c0da34c644640a1",
      "parents": [
        "b4d878e23c7f574490ee4d6fd59ebd6819781dd1"
      ],
      "author": {
        "name": "jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed May 26 14:44:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:56 2010 -0700"
      },
      "message": "fs/: do not fallback to default_llseek() when readdir() uses BKL\n\nDo not use the fallback default_llseek() if the readdir operation of the\nfilesystem still uses the big kernel lock.\n\nSince llseek() modifies\nfile-\u003ef_pos of the directory directly it may need locking to not confuse\nreaddir which usually uses file-\u003ef_pos directly as well\n\nSince the special characteristics of the BKL (unlocked on schedule) are\nnot necessary in this case, the inode mutex can be used for locking as\nprovided by generic_file_llseek().  This is only possible since all\nfilesystems, except reiserfs, either use a directory as a flat file or\nwith disk address offsets.  Reiserfs on the other hand uses a 32bit hash\noff the filename as the offset so generic_file_llseek() can get used as\nwell since the hash is always smaller than sb-\u003es_maxbytes (\u003d (512 \u003c\u003c 32) -\nblocksize).\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Anders Larsen \u003cal@alarsen.net\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae6afc3f5cf53fb97bac2d0a209bb465952742e7",
      "tree": "541e3f4ed4f2600ffe239e2f23341055199329b1",
      "parents": [
        "09eeb1f5f4d9b52ab57820160dea6027bbea82a3"
      ],
      "author": {
        "name": "jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed May 26 14:44:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:56 2010 -0700"
      },
      "message": "vfs: introduce noop_llseek()\n\nThis is an implementation of -\u003ellseek useable for the rare special case\nwhen userspace expects the seek to succeed but the (device) file is\nactually not able to perform the seek.  In this case you use noop_llseek()\ninstead of falling back to the default implementation of -\u003ellseek.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d85cba718efeef9ca00ce3f7f34f5880737aa9b",
      "tree": "d445d35d915b65dac171e58f83c75feb15d625fd",
      "parents": [
        "b83733639a494d5f42fa00a2506563fbd2d3015d"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Wed May 26 14:44:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:53 2010 -0700"
      },
      "message": "aio: fix the compat vectored operations\n\nThe aio compat code was not converting the struct iovecs from 32bit to\n64bit pointers, causing either EINVAL to be returned from io_getevents, or\nEFAULT as the result of the I/O.  This patch passes a compat flag to\nio_submit to signal that pointer conversion is necessary for a given iocb\narray.\n\nA variant of this was tested by Michael Tokarev.  I have also updated the\nlibaio test harness to exercise this code path with good success.\nFurther, I grabbed a copy of ltp and ran the\ntestcases/kernel/syscall/readv and writev tests there (compiled with -m32\non my 64bit system).  All seems happy, but extra eyes on this would be\nwelcome.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix CONFIG_COMPAT\u003dn build]\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nReported-by: Michael Tokarev \u003cmjt@tls.msk.ru\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.35.1]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b83733639a494d5f42fa00a2506563fbd2d3015d",
      "tree": "5aea71a7b0da140d839cc6109091350e1fbc8868",
      "parents": [
        "5b530fc18324602e1ecb70cd280c2194b2656a5e"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Wed May 26 14:44:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:53 2010 -0700"
      },
      "message": "compat: factor out compat_rw_copy_check_uvector from compat_do_readv_writev\n\nIt was reported in http://lkml.org/lkml/2010/3/8/309 that 32 bit readv and\nwritev AIO operations were not functioning properly.  It turns out that\nthe code to convert the 32bit io vectors to 64 bits was never written.\nThe results of that can be pretty bad, but in my testing, it mostly ended\nup in generating EFAULT as we walked off the list of I/O vectors provided.\n\nThis patch set fixes the problem in my environment.  are greatly\nappreciated.\n\nThis patch:\n\nFactor out code that will be used by both compat_do_readv_writev and the\ncompat aio submission code paths.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nReported-by: Michael Tokarev \u003cmjt@tls.msk.ru\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.35.1]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cccad8f9f0f1be585c9dc534857ca9c67e538836",
      "tree": "6db36d8244a1fc169fbb2a82dc294e2d5f9e0432",
      "parents": [
        "2fd74e25df46ecb0b54700aba242dcaeb2d75f4a"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed May 26 14:44:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:53 2010 -0700"
      },
      "message": "fs/affs: use ERR_CAST\n\nUse ERR_CAST(x) rather than ERR_PTR(PTR_ERR(x)).  The former makes more\nclear what is the purpose of the operation, which otherwise looks like a\nno-op.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\ntype T;\nT x;\nidentifier f;\n@@\n\nT f (...) { \u003c+...\n- ERR_PTR(PTR_ERR(x))\n+ x\n ...+\u003e }\n\n@@\nexpression x;\n@@\n\n- ERR_PTR(PTR_ERR(x))\n+ ERR_CAST(x)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36e15263aa5dcf3b72f1f88437e69497782b7ab8",
      "tree": "a1cb0cfabb8069e96df5395ae68d187cd0ed371b",
      "parents": [
        "57f87869f073929f8e8b3c73748aabb0cece19aa"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed May 26 14:43:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "kcore: add _text to KCORE_TEXT\n\nExtend KCORE_TEXT to cover the pages between _text and _stext, to allow\nexamining some important page table pages.\n\n`readelf -a` output on x86_64 before and after patch:\n\t  Type           Offset             VirtAddr           PhysAddr\nbefore    LOAD           0x00007fff8100c000 0xffffffff81009000 0x0000000000000000\nafter     LOAD           0x00007fff81003000 0xffffffff81000000 0x0000000000000000\n\nThe newly covered pages are:\n\n\t0xffffffff81000000 \u003cstartup_64\u003e etc.\n\t0xffffffff81001000 \u003cinit_level4_pgt\u003e\n\t0xffffffff81002000 \u003clevel3_ident_pgt\u003e\n\t0xffffffff81003000 \u003clevel3_kernel_pgt\u003e\n\t0xffffffff81004000 \u003clevel2_fixmap_pgt\u003e\n\t0xffffffff81005000 \u003clevel1_fixmap_pgt\u003e\n\t0xffffffff81006000 \u003clevel2_ident_pgt\u003e\n\t0xffffffff81007000 \u003clevel2_kernel_pgt\u003e\n\t0xffffffff81008000 \u003clevel2_spare_pgt\u003e\n\nBefore patch, /proc/kcore shows outdated contents for the above page\ntable pages, for example:\n\n\t(gdb) p level3_ident_pgt\n\t$1 \u003d {\u003ctext variable, no debug info\u003e} 0xffffffff81002000 \u003clevel3_ident_pgt\u003e\n\t(gdb) p/x *((pud_t *)\u0026level3_ident_pgt)@512\n\t$2 \u003d {{pud \u003d 0x1006063}, {pud \u003d 0x0} \u003crepeats 511 times\u003e}\n\nwhile the real content is:\n\n\troot@hp /home/wfg# hexdump -s 0x1002000 -n 4096 /dev/mem\n\t1002000 6063 0100 0000 0000 8067 0000 0000 0000\n\t1002010 0000 0000 0000 0000 0000 0000 0000 0000\n\t*\n\t1003000\n\nThat is, on a x86_64 box with 2GB memory, we can see first-1GB / full-2GB\nidentity mapping before/after patch:\n\n\t(gdb) p/x *((pud_t *)\u0026level3_ident_pgt)@512\nbefore  $1 \u003d {{pud \u003d 0x1006063}, {pud \u003d 0x0} \u003crepeats 511 times\u003e}\nafter   $1 \u003d {{pud \u003d 0x1006063}, {pud \u003d 0x8067}, {pud \u003d 0x0} \u003crepeats 510 times\u003e}\n\nObviously the content before patch is wrong.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57f87869f073929f8e8b3c73748aabb0cece19aa",
      "tree": "b03572fb4d78f527061dedde89b71f5728ff6afe",
      "parents": [
        "73d3646029138743989b6c213628484301a72eb1"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Wed May 26 14:43:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "proc: remove obsolete comments\n\nA quick test shows these comments are obsolete, so just remove them.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73d3646029138743989b6c213628484301a72eb1",
      "tree": "1df20844702dbf7d8d014ae08bdb479a8350533f",
      "parents": [
        "b3ac022cb9dc5883505a88b159d1b240ad1ef405"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed May 26 14:43:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "proc: cleanup: remove unused assignments\n\nI removed 3 unused assignments.  The first two get reset on the first\nstatement of their functions.  For \"err\" in root.c we don\u0027t return an\nerror and we don\u0027t use the variable again.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e49827cc937a742ae02078b483e3eb78f791a2a",
      "tree": "0f3e0a8483a41b2221c74b8286b2349af03dab04",
      "parents": [
        "6e1be45aa6ba6a36c0312f65ecf311135c73001d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "proc: get_nr_threads() doesn\u0027t need -\u003esiglock any longer\n\nNow that task-\u003esignal can\u0027t go away get_nr_threads() doesn\u0027t need\n-\u003esiglock to read signal-\u003ecount.\n\nAlso, make it inline, move into sched.h, and convert 2 other proc users of\nsignal-\u003ecount to use this (now trivial) helper.\n\nHenceforth get_nr_threads() is the only valid user of signal-\u003ecount, we\nare ready to turn it into \"int nr_threads\" or, perhaps, kill it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d344193a05da89c97e965da2c5cbf687d7385eae",
      "tree": "6267b68c31c4547f1749acd35d2a5bfaff919839",
      "parents": [
        "09faef11df8c559a23e2405d123cb2683733a79a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "exit: avoid sig-\u003ecount in de_thread/__exit_signal synchronization\n\nde_thread() and __exit_signal() use signal_struct-\u003ecount/notify_count for\nsynchronization.  We can simplify the code and use -\u003enotify_count only.\nInstead of comparing these two counters, we can change de_thread() to set\n-\u003enotify_count \u003d nr_of_sub_threads, then change __exit_signal() to\ndec-and-test this counter and notify group_exit_task.\n\nNote that __exit_signal() checks \"notify_count \u003e 0\" just for symmetry with\nexit_notify(), we could just check it is !\u003d 0.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "269b005a28e124a341df4adef2c3661cf7371fcc",
      "tree": "226b105cc4c1bbe0b3fe92f2733708a7dc2dedb8",
      "parents": [
        "5e43aef530ba39206f7923295388f7ec3c5a7d93"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "coredump: shift down_write(mmap_sem) into coredump_wait()\n\n- move the cprm.mm_flags checks up, before we take mmap_sem\n\n- move down_write(mmap_sem) and -\u003ecore_state check from do_coredump()\n  to coredump_wait()\n\nThis simplifies the code and makes the locking symmetrical.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e43aef530ba39206f7923295388f7ec3c5a7d93",
      "tree": "b29b706cff64eb47cc881a793566e38a511843f1",
      "parents": [
        "d5bf4c4f5f9dcc90b7e25dbb2f7c4436cf6e7ed0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "coredump: factor out put_cred() calls\n\nGiven that do_coredump() calls put_cred() on exit path, it is a bit ugly\nto do put_cred() + \"goto fail\" twice, just add the new \"fail_creds\" label.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5bf4c4f5f9dcc90b7e25dbb2f7c4436cf6e7ed0",
      "tree": "8c07402f685245fdf3397fac47bc7194f686066d",
      "parents": [
        "c713541125002b8bc9e681af3b09118e771e2d8a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "coredump: cleanup \"ispipe\" code\n\n- kill \"int dump_count\", argv_split(argcp) accepts argcp \u003d\u003d NULL.\n\n- move \"int dump_count\" under \" if (ispipe)\" branch, fail_dropcount\n  can check ispipe.\n\n- move \"char **helper_argv\" as well, change the code to do argv_free()\n  right after call_usermodehelper_fns().\n\n- If call_usermodehelper_fns() fails goto close_fail label instead\n  of closing the file by hand.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c713541125002b8bc9e681af3b09118e771e2d8a",
      "tree": "6c85885dc2403b0310ab13e1c21dcb30960ced83",
      "parents": [
        "04b1c384fbc4e0209e5c1affb67050886376d44b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "coredump: factor out the not-ispipe file checks\n\ndo_coredump() does a lot of file checks after it opens the file or calls\nusermode helper.  But all of these checks are only needed in !ispipe case.\n\nMove this code into the \"else\" branch and kill the ugly repetitive ispipe\nchecks.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "898b374af6f71041bd3bceebe257e564f3f1d458",
      "tree": "b1be6fd3cca69becfc75787eab906338f363d3cd",
      "parents": [
        "a06a4dc3a08201ff6a8a958f935b3cbf7744115f"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed May 26 14:42:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "exec: replace call_usermodehelper_pipe with use of umh init function and resolve limit\n\nThe first patch in this series introduced an init function to the\ncall_usermodehelper api so that processes could be customized by caller.\nThis patch takes advantage of that fact, by customizing the helper in\ndo_coredump to create the pipe and set its core limit to one (for our\nrecusrsion check).  This lets us clean up the previous uglyness in the\nusermodehelper internals and factor call_usermodehelper out entirely.\nWhile I\u0027m at it, we can also modify the helper setup to look for a core\nlimit value of 1 rather than zero for our recursion check\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d27d7a9a7838587fcdcc6f2b042f5610eb4984a1",
      "tree": "1f54d3904a7a80cb483074478aaa36e72f60cd6b",
      "parents": [
        "b8d6b0d6b6882a53e4586a07e1292223d55299d1"
      ],
      "author": {
        "name": "Thomas Stewart",
        "email": "thomas@stewarts.org.uk",
        "time": "Wed May 26 14:42:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:43 2010 -0700"
      },
      "message": "ufs: permit mounting of BorderWare filesystems\n\nI recently had to recover some files from an old broken machine that was\nrunning BorderWare Document Gateway.  It\u0027s basically a drop in web server\nfor sharing files.  From the look of the init process and using strings on\nof a few files it seems to be based on FreeBSD 3.3.\n\nThe process turned out to be more difficult than I imagined, but to cut a\nlong story short BorderWare in their wisdom use a nonstandard magic number\nin their UFS (ufstype\u003d44bsd) file systems.  Thus Linux refuses to mount\nthe file systems in order to recover the data.  After a bit of hunting I\nwas able to make a quick fix to fs/ufs/super.c in order to detect the new\nmagic number.\n\nI assume that this number is the same for all installations.  It\u0027s quite\neasy to find out from ufs_fs.h.  The superblock sits 8k into the block\ndevice and the magic number its 1372 bytes into the superblock struct.\n\n# dd if\u003d/dev/sda5 skip\u003d$(( 8192 + 1372 )) bs\u003d1 count\u003d4 2\u003e /dev/null | hd\n00000000  97 26 24 0f                                       |.\u0026$.|\n#\n\nSigned-off-by: Thomas Stewart \u003cthomas@stewarts.org.uk\u003e\nCc: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ca5ca60cba37fc4d8e99583da147faed3039ad0",
      "tree": "c68aaea107be75e0c48ed330716bcfc3f61f87a7",
      "parents": [
        "b81d67a50c0f3021d170466388bec3e7fc3abe75"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed May 26 14:42:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:41 2010 -0700"
      },
      "message": "fs/autofs4: use memdup_user\n\nUse memdup_user when user data is immediately copied into the allocated\nregion.  Elimination of the variable ads, which is no longer useful.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9aeead73782c4b8e2a91def36dbf95db28605c95",
      "tree": "7dc2cc6f382ec72715c87ac17ff20e7c0649e4b8",
      "parents": [
        "5a5f79b57069c5691f5b6fd8381fdf487f548ae5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu May 27 10:23:00 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu May 27 10:23:00 2010 -0400"
      },
      "message": "Btrfs: add more error checking to btrfs_dirty_inode\n\nThe ENOSPC code will now return ENOSPC to btrfs_start_transaction.\nbtrfs_dirty_inode needs to check for this and error out appropriately.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5a5f79b57069c5691f5b6fd8381fdf487f548ae5",
      "tree": "d101b4025a2b23c5e258b04714907f4266c3b2df",
      "parents": [
        "933b585f70d524f1b6f0f6867bedb11d3dd82d3b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed May 26 21:33:37 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed May 26 21:35:35 2010 -0400"
      },
      "message": "Btrfs: allow unaligned DIO\n\nIn order to support DIO that isn\u0027t aligned to the filesystem blocksize,\nwe fall back to buffered for any unaligned DIOs.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "933b585f70d524f1b6f0f6867bedb11d3dd82d3b",
      "tree": "f871988129967de5dabb20ae612ea7c22cc4c770",
      "parents": [
        "5bdd3536cbbe2ecd94ecc14410c6b1b31da16381"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed May 26 11:31:00 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed May 26 21:35:34 2010 -0400"
      },
      "message": "Btrfs: drop verbose enospc printk\n\nLess printk is good printk.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5bdd3536cbbe2ecd94ecc14410c6b1b31da16381",
      "tree": "7fd9cd2cb497f6150a5dfde4528ba6ba64144e40",
      "parents": [
        "46bfbb5c0740c200d2b66afcbd1f9d64ab320940"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Wed May 26 11:20:30 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed May 26 21:35:33 2010 -0400"
      },
      "message": "Btrfs: Fix block generation verification race\n\nAfter the path is released, the generation number got from block\npointer is no long valid. The race may cause disk corruption, because\nverify_parent_transid() calls clear_extent_buffer_uptodate() when\ngeneration numbers mismatch.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "46bfbb5c0740c200d2b66afcbd1f9d64ab320940",
      "tree": "3ec1523f7da103a79f71fc5f486596307a4eeb54",
      "parents": [
        "94b604429a6cd94ddc128fa2772c57209bb1318f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed May 26 11:04:10 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed May 26 21:34:45 2010 -0400"
      },
      "message": "Btrfs: fix preallocation and nodatacow checks in O_DIRECT\n\nThe O_DIRECT code wasn\u0027t checking for multiple references\non preallocated or nodatacow extents.  This means it\nwasn\u0027t honoring snapshots properly.\n\nThe fix here is to add an explicit check for multiple references\nThis also fixes the math for selecting the correct disk block,\nmaking sure not to go past the end of the extent.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "63a6440326e4cd01d6a663069208a0e68e9b833f",
      "tree": "ad3fa7a941d3eb59c4f584486cabc60247df9bdf",
      "parents": [
        "f45471cbda9df24f990154a963741c9bd4c0b0aa",
        "899f4530334da9292556e1f8f5791468e0136ff1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 26 08:57:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 26 08:57:20 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus:\n  squashfs: update documentation to include description of xattr layout\n  squashfs: fix name reading in squashfs_xattr_get\n  squashfs: constify xattr handlers\n  squashfs: xattr fix sparse warnings\n  squashfs: xattr_lookup sparse fix\n  squashfs: add xattr support configure option\n  squashfs: add new extended inode types\n  squashfs: add support for xattr reading\n  squashfs: add xattr id support\n"
    },
    {
      "commit": "cc68e3be7412baaa1ea2a2df9e88770f1753da78",
      "tree": "a92e184579a6810d6178aa305a3b7ba0694487bd",
      "parents": [
        "3c7b204547bc3d342a4e31196fe14803581d279f"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue May 25 23:43:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 26 08:19:23 2010 -0700"
      },
      "message": "fs/fscache/object-list.c: fix warning on 32-bit\n\nfs/fscache/object-list.c: In function \u0027fscache_objlist_lookup\u0027:\nfs/fscache/object-list.c:105: warning: cast to pointer from integer of different size\n\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94b604429a6cd94ddc128fa2772c57209bb1318f",
      "tree": "700c5b9cb431bde48f07813224e6a5165a9d6540",
      "parents": [
        "3f7c579c41a3d20af76fd6ff1f6b949edf105fd1"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed May 26 11:02:00 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed May 26 11:02:00 2010 -0400"
      },
      "message": "Btrfs: avoid ENOSPC errors in btrfs_dirty_inode\n\nbtrfs_dirty_inode tries to sneak in without much waiting or\nspace reservation, mostly for performance reasons.  This\nusually works well but can cause problems when there are\nmany many writers.\n\nWhen btrfs_update_inode fails with ENOSPC, we fallback\nto a slower btrfs_start_transaction call that will reserve\nsome space.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3f7c579c41a3d20af76fd6ff1f6b949edf105fd1",
      "tree": "374d50346763fb37299f5de93f48901596f21e59",
      "parents": [
        "4845e44ffdb26be9b25610664228e8ecaf949a0d"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed May 26 10:59:53 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed May 26 10:59:53 2010 -0400"
      },
      "message": "Btrfs: move O_DIRECT space reservation to btrfs_direct_IO\n\nThis moves the delalloc space reservation done for O_DIRECT\ninto btrfs_direct_IO.  This way we don\u0027t leak reserved space\nif the generic O_DIRECT write code errors out before it\ncalls into btrfs_direct_IO.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0522f6adedd2736cbca3c0e16ca51df668993eee",
      "tree": "36ff5ee208fa97cf86b717ed0eb2e9ca4251315d",
      "parents": [
        "c5efa5fc91f1f6d1d47e65f39e7ec6d1157c777d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 26 08:42:24 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 26 08:43:53 2010 -0400"
      },
      "message": "NFS: Fix another nfs_wb_page() deadlock\n\nJ.R. Okajima reports that the call to sync_inode() in nfs_wb_page() can\ndeadlock with other writeback flush calls. It boils down to the fact\nthat we cannot ever call writeback_single_inode() while holding a page\nlock (even if we do set nr_to_write to zero) since another process may\nalready be waiting in the call to do_writepages(), and so will deny us\nthe I_SYNC lock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c5efa5fc91f1f6d1d47e65f39e7ec6d1157c777d",
      "tree": "614e6098c92ba9d240ec2b8ea4d9d79ff9334077",
      "parents": [
        "59844a9bd73e084b0ffefc0e13226098e28c71ad"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 26 08:42:11 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 26 08:43:52 2010 -0400"
      },
      "message": "NFS: Ensure that we mark the inode as dirty if we exit early from commit\n\nIf we exit from nfs_commit_inode() without ensuring that the COMMIT rpc\ncall has been completed, we must re-mark the inode as dirty. Otherwise,\nfuture calls to sync_inode() with the WB_SYNC_ALL flag set will fail to\nensure that the data is on the disk.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "59844a9bd73e084b0ffefc0e13226098e28c71ad",
      "tree": "7b897c2530fe7083d57755df684d1d808fb18f8b",
      "parents": [
        "0a68b0bed08eeb7ec62e0125f17856b1ccb1ea4b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 26 08:42:24 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 26 08:43:51 2010 -0400"
      },
      "message": "NFS: Fix a lock imbalance typo in nfs_access_cache_shrinker\n\nCommit 9c7e7e23371e629dbb3b341610a418cdf1c19d91 (NFS: Don\u0027t call iput() in\nnfs_access_cache_shrinker) unintentionally removed the spin unlock for the\ninode-\u003ei_lock.\n\nReported-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4845e44ffdb26be9b25610664228e8ecaf949a0d",
      "tree": "8852e175b6b02a36df6b47c54d574f3365ddb34f",
      "parents": [
        "eaf25d933e64c2bf3c79b83e8820404f36fdfc52"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 20:56:50 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 21:52:08 2010 -0400"
      },
      "message": "Btrfs: rework O_DIRECT enospc handling\n\nThis changes O_DIRECT write code to mark extents as delalloc\nwhile it is processing them.  Yan Zheng has reworked the\nenospc accounting based on tracking delalloc extents and\nthis makes it much easier to track enospc in the O_DIRECT code.\n\nThere are a few space cases with the O_DIRECT code though,\nit only sets the EXTENT_DELALLOC bits, instead of doing\nEXTENT_DELALLOC | EXTENT_DIRTY | EXTENT_UPTODATE, because\nwe don\u0027t want to mess with clearing the dirty and uptodate\nbits when things go wrong.  This is important because there\nare no pages in the page cache, so any extent state structs\nthat we put in the tree won\u0027t get freed by releasepage.  We have\nto clear them ourselves as the DIO ends.\n\nWith this commit, we reserve space at in btrfs_file_aio_write,\nand then as each btrfs_direct_IO call progresses it sets\nEXTENT_DELALLOC on the range.\n\nbtrfs_get_blocks_direct is responsible for clearing the delalloc\nat the same time it drops the extent lock.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "578454ff7eab61d13a26b568f99a89a2c9edc881",
      "tree": "6abdaf9acdd797767c92cb53e04574d3c755779e",
      "parents": [
        "ec96e2fe954c23a54bfdf2673437a39e193a1822"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu May 20 18:07:20 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue May 25 15:08:26 2010 -0700"
      },
      "message": "driver core: add devname module aliases to allow module on-demand auto-loading\n\nThis adds:\n  alias: devname:\u003cname\u003e\nto some common kernel modules, which will allow the on-demand loading\nof the kernel module when the device node is accessed.\n\nIdeally all these modules would be compiled-in, but distros seems too\nmuch in love with their modularization that we need to cover the common\ncases with this new facility. It will allow us to remove a bunch of pretty\nuseless init scripts and modprobes from init scripts.\n\nThe static device node aliases will be carried in the module itself. The\nprogram depmod will extract this information to a file in the module directory:\n  $ cat /lib/modules/2.6.34-00650-g537b60d-dirty/modules.devname\n  # Device nodes to trigger on-demand module loading.\n  microcode cpu/microcode c10:184\n  fuse fuse c10:229\n  ppp_generic ppp c108:0\n  tun net/tun c10:200\n  dm_mod mapper/control c10:235\n\nUdev will pick up the depmod created file on startup and create all the\nstatic device nodes which the kernel modules specify, so that these modules\nget automatically loaded when the device node is accessed:\n  $ /sbin/udevd --debug\n  ...\n  static_dev_create_from_modules: mknod \u0027/dev/cpu/microcode\u0027 c10:184\n  static_dev_create_from_modules: mknod \u0027/dev/fuse\u0027 c10:229\n  static_dev_create_from_modules: mknod \u0027/dev/ppp\u0027 c108:0\n  static_dev_create_from_modules: mknod \u0027/dev/net/tun\u0027 c10:200\n  static_dev_create_from_modules: mknod \u0027/dev/mapper/control\u0027 c10:235\n  udev_rules_apply_static_dev_perms: chmod \u0027/dev/net/tun\u0027 0666\n  udev_rules_apply_static_dev_perms: chmod \u0027/dev/fuse\u0027 0666\n\nA few device nodes are switched to statically allocated numbers, to allow\nthe static nodes to work. This might also useful for systems which still run\na plain static /dev, which is completely unsafe to use with any dynamic minor\nnumbers.\n\nNote:\nThe devname aliases must be limited to the *common* and *single*instance*\ndevice nodes, like the misc devices, and never be used for conceptually limited\nsystems like the loop devices, which should rather get fixed properly and get a\ncontrol node for losetup to talk to, instead of creating a random number of\ndevice nodes in advance, regardless if they are ever used.\n\nThis facility is to hide the mess distros are creating with too modualized\nkernels, and just to hide that these modules are not compiled-in, and not to\npaper-over broken concepts. Thanks! :)\n\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Tigran Aivazian \u003ctigran@aivazian.fsnet.co.uk\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nSigned-Off-By: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "f16a5e347835c6a0ba958535cf6e6c89d50463b8",
      "tree": "41d2e7784f57212a3f910690e00dcd1707a7e47f",
      "parents": [
        "110b93842e36b17598cf24874e90d0401431cda2",
        "7df0e0397b9a18358573274db9fdab991941062f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:17:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:17:51 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:\n  GFS2: Fix permissions checking for setflags ioctl()\n  GFS2: Don\u0027t \"get\" xattrs for ACLs when ACLs are turned off\n  GFS2: Rework reclaiming unlinked dinodes\n"
    },
    {
      "commit": "110b93842e36b17598cf24874e90d0401431cda2",
      "tree": "d95591d129ea8ed8d5b8e489e2d5ae68e79586c4",
      "parents": [
        "4961ab934a1254b1ad9420cea0ded617b57f022b",
        "88e88374ee4958786397a57f684de6f1fc5e0242"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:17:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:17:01 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: Ensure inode allocation buffers are fully replayed\n  xfs: enable background pushing of the CIL\n  xfs: forced unmounts need to push the CIL\n  xfs: Introduce delayed logging core code\n  xfs: Delayed logging design documentation\n  xfs: Improve scalability of busy extent tracking\n  xfs: make the log ticket ID available outside the log infrastructure\n  xfs: clean up log ticket overrun debug output\n  xfs: Clean up XFS_BLI_* flag namespace\n  xfs: modify buffer item reference counting\n  xfs: allow log ticket allocation to take allocation flags\n  xfs: Don\u0027t reuse the same transaction ID for duplicated transactions.\n"
    },
    {
      "commit": "337bbfdbffa5c893e80f96a3bf117743ceb0fefc",
      "tree": "b0540b7ca177ba6821aed1c45108d5fd53ffc6ca",
      "parents": [
        "f3bc3189a001ec85c7b1119ad4aa5e39eea0f05e"
      ],
      "author": {
        "name": "Huang Weiyi",
        "email": "weiyi.huang@gmail.com",
        "time": "Mon May 24 14:33:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:07 2010 -0700"
      },
      "message": "smbfs: remove duplicated #include\n\nRemove duplicated #include(\u0027s) in fs/smbfs/symlink.c\n\nSigned-off-by: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91f06e66805dd94825885b3ec392c693fe9ef4d9",
      "tree": "047e315e863085b74413af3534a8c682a3bcedc5",
      "parents": [
        "1356de06cea80ffc84cde6a4f8779414f20f211e"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "ext-andriy.shevchenko@nokia.com",
        "time": "Mon May 24 14:33:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:06 2010 -0700"
      },
      "message": "fs: ldm: don\u0027t use own implementation of hex_to_bin()\n\nRemove own implementation of hex_to_bin().\n\nSigned-off-by: Andy Shevchenko \u003cext-andriy.shevchenko@nokia.com\u003e\nCc: \"Richard Russon (FlatCap)\" \u003cldm@flatcap.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aaa04b4875f30659a0eb429e0e5203ae7fb7b18e",
      "tree": "7a7e71455e8e318f08d03748b528fbffca853bfa",
      "parents": [
        "f40c396a9ab04eae526990e2b2cef875b424ed4e"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Mon May 24 14:33:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:04 2010 -0700"
      },
      "message": "fatfs: ratelimit corruption report\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.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": "4c99000ac47cbd097e62f1b5cafad745622cedc3",
      "tree": "9912597a68403c8f02dfbb414e60e0cb3f6577d3",
      "parents": [
        "2ec93b0bf35fe0fad05d2b7ef139d018768cca38"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon May 24 14:33:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:03 2010 -0700"
      },
      "message": "ntfs: use add_to_page_cache_lru()\n\nQuote from Nick piggin\u0027s about btrfs patch\n- http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg04472.html.\n\n\"add_to_page_cache_lru is exported, so it should be used. Benefits over\nusing a private pagevec: neater code, 128 bytes fewer stack used, percpu\nlru ordering is preserved, and finally don\u0027t need to flush pagevec\nbefore returning so batching may be shared with other LRU insertions.\"\n\nLet\u0027s use it instead of private pagevec in ntfs, too.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ec93b0bf35fe0fad05d2b7ef139d018768cca38",
      "tree": "60cdf3c7a0ef9ecd27a00d86b1b712ea45461213",
      "parents": [
        "ef7ffe8f06895312aeb08a5f8a1d4c90e34335ea"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon May 24 14:33:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:03 2010 -0700"
      },
      "message": "ntfs: clean up ntfs_attr_extend_initialized\n\ncached_page and lru_pvec have not been used.  Let\u0027s remove the arguments.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Anton Altaparmakov \u003caia21@cantab.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4be929be34f9bdeffa40d815d32d7d60d2c7f03b",
      "tree": "4d2c6e2b8ef766e565e2e050ee151de2e02081d3",
      "parents": [
        "940370fc86b920b51a34217a1facc3e9e97c2456"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 24 14:33:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "kernel-wide: replace USHORT_MAX, SHORT_MAX and SHORT_MIN with USHRT_MAX, SHRT_MAX and SHRT_MIN\n\n- C99 knows about USHRT_MAX/SHRT_MAX/SHRT_MIN, not\n  USHORT_MAX/SHORT_MAX/SHORT_MIN.\n\n- Make SHRT_MIN of type s16, not int, for consistency.\n\n[akpm@linux-foundation.org: fix drivers/dma/timb_dma.c]\n[akpm@linux-foundation.org: fix security/keys/keyring.c]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58a9d3d8db06ca2ec31f64ec49ab0aeb89971b85",
      "tree": "70c695b6473d4d25b32a2946e053742f6c49755e",
      "parents": [
        "ec95f53aa6ed62ba68660cb19c8474ebe9025cce"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Mon May 24 14:32:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "fs-writeback: check sync bit earlier in inode_wait_for_writeback\n\nWhen wb_writeback() hasn\u0027t written anything it will re-acquire the inode\nlock before calling inode_wait_for_writeback.\n\nThis change tests the sync bit first so that is doesn\u0027t need to drop \u0026\nre-acquire the lock if the inode became available while wb_writeback() was\nwaiting to get the lock.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8bef8ff6ea15fa4c67433cab0f5f3484574ef7c",
      "tree": "3ea9c122e02f523379d4560ee2134124d097895c",
      "parents": [
        "e9e96b39f932a065e14f5d5bab0797ae261d03b5"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: migration: avoid race between shift_arg_pages() and rmap_walk() during migration by not migrating temporary stacks\n\nPage migration requires rmap to be able to find all ptes mapping a page\nat all times, otherwise the migration entry can be instantiated, but it\nis possible to leave one behind if the second rmap_walk fails to find\nthe page.  If this page is later faulted, migration_entry_to_page() will\ncall BUG because the page is locked indicating the page was migrated by\nthe migration PTE not cleaned up. For example\n\n  kernel BUG at include/linux/swapops.h:105!\n  invalid opcode: 0000 [#1] PREEMPT SMP\n  ...\n  Call Trace:\n   [\u003cffffffff810e951a\u003e] handle_mm_fault+0x3f8/0x76a\n   [\u003cffffffff8130c7a2\u003e] do_page_fault+0x44a/0x46e\n   [\u003cffffffff813099b5\u003e] page_fault+0x25/0x30\n   [\u003cffffffff8114de33\u003e] load_elf_binary+0x152a/0x192b\n   [\u003cffffffff8111329b\u003e] search_binary_handler+0x173/0x313\n   [\u003cffffffff81114896\u003e] do_execve+0x219/0x30a\n   [\u003cffffffff8100a5c6\u003e] sys_execve+0x43/0x5e\n   [\u003cffffffff8100320a\u003e] stub_execve+0x6a/0xc0\n  RIP  [\u003cffffffff811094ff\u003e] migration_entry_wait+0xc1/0x129\n\nThere is a race between shift_arg_pages and migration that triggers this\nbug.  A temporary stack is setup during exec and later moved.  If\nmigration moves a page in the temporary stack and the VMA is then removed\nbefore migration completes, the migration PTE may not be found leading to\na BUG when the stack is faulted.\n\nThis patch causes pages within the temporary stack during exec to be\nskipped by migration.  It does this by marking the VMA covering the\ntemporary stack with an otherwise impossible combination of VMA flags.\nThese flags are cleared when the temporary stack is moved to its final\nlocation.\n\n[kamezawa.hiroyu@jp.fujitsu.com: idea for having migration skip temporary stacks]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a5cb81465b66b74bf3d6ad36e5382238de6a132",
      "tree": "28494edfea96752f57c88601d80819759085fade",
      "parents": [
        "e48293fd75b3aa67f43ad6e3d2ff397caa55d58b"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Mon May 24 14:32:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:58 2010 -0700"
      },
      "message": "pagemap: add #ifdefs CONFIG_HUGETLB_PAGE on code walking hugetlb vma\n\nIf !CONFIG_HUGETLB_PAGE, pagemap_hugetlb_range() is never called.  So put\nit (and its calling function) into #ifdef block.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eaf25d933e64c2bf3c79b83e8820404f36fdfc52",
      "tree": "649dc862fcc9a243bdc925db34da618b25a275fc",
      "parents": [
        "ed3b3d314cd2f16fac42676839854a68cab2e22b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 09:48:28 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:58 2010 -0400"
      },
      "message": "Btrfs: use async helpers for DIO write checksumming\n\nThe async helper threads offload crc work onto all the\nCPUs, and make streaming writes much faster.  This\nchanges the O_DIRECT write code to use them.  The only\nsmall complication was that we need to pass in the\nlogical offset in the file for each bio, because we can\u0027t\nfind it in the bio\u0027s pages.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ed3b3d314cd2f16fac42676839854a68cab2e22b",
      "tree": "a38462cdfbaa0dce3bbd26fe7167fe7368439a47",
      "parents": [
        "11c65dccf70be9ace5dbd3906778e1a099b1fee1"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:12:41 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:58 2010 -0400"
      },
      "message": "Btrfs: don\u0027t walk around with task-\u003estate !\u003d TASK_RUNNING\n\nYan Zheng noticed two places we were doing a lot of work\nwithout task-\u003estate set to TASK_RUNNING.  This sets the state\nproperly after we get ready to sleep but decide not to.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "11c65dccf70be9ace5dbd3906778e1a099b1fee1",
      "tree": "1289f139ddf652e39672374b6f9051994c21ce57",
      "parents": [
        "4b46fce23349bfca781a32e2707a18328ca5ae22"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sun May 23 11:07:21 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:57 2010 -0400"
      },
      "message": "Btrfs: do aio_write instead of write\n\nIn order for AIO to work, we need to implement aio_write.  This patch converts\nour btrfs_file_write to btrfs_aio_write.  I\u0027ve tested this with xfstests and\nnothing broke, and the AIO stuff magically started working.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4b46fce23349bfca781a32e2707a18328ca5ae22",
      "tree": "68f1200f2bc82d3f35218aef38e6d5d92bff4aca",
      "parents": [
        "c2c6ca417e2db7a519e6e92c82f4a933d940d076"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sun May 23 11:00:55 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:57 2010 -0400"
      },
      "message": "Btrfs: add basic DIO read/write support\n\nThis provides basic DIO support for reading and writing.  It does not do the\nwork to recover from mismatching checksums, that will come later.  A few design\nchanges have been made from Jim\u0027s code (sorry Jim!)\n\n1) Use the generic direct-io code.  Jim originally re-wrote all the generic DIO\ncode in order to account for all of BTRFS\u0027s oddities, but thanks to that work it\nseems like the best bet is to just ignore compression and such and just opt to\nfallback on buffered IO.\n\n2) Fallback on buffered IO for compressed or inline extents.  Jim\u0027s code did\nit\u0027s own buffering to make dio with compressed extents work.  Now we just\nfallback onto normal buffered IO.\n\n3) Use ordered extents for the writes so that all of the\n\nlock_extent()\nlookup_ordered()\n\ntype checks continue to work.\n\n4) Do the lock_extent() lookup_ordered() loop in readpage so we don\u0027t race with\nDIO writes.\n\nI\u0027ve tested this with fsx and everything works great.  This patch depends on my\ndio and filemap.c patches to work.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c2c6ca417e2db7a519e6e92c82f4a933d940d076",
      "tree": "4b5f71682270b151e38e9649a40da30564dacfdd",
      "parents": [
        "facd07b07d2a7988f5ce849558838cc953847637"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sun May 23 11:00:55 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:56 2010 -0400"
      },
      "message": "direct-io: do not merge logically non-contiguous requests\n\nBtrfs cannot handle having logically non-contiguous requests submitted.  For\nexample if you have\n\nLogical:  [0-4095][HOLE][8192-12287]\nPhysical: [0-4095]      [4096-8191]\n\nNormally the DIO code would put these into the same BIO\u0027s.  The problem is we\nneed to know exactly what offset is associated with what BIO so we can do our\nchecksumming and unlocking properly, so putting them in the same BIO doesn\u0027t\nwork.  So add another check where we submit the current BIO if the physical\nblocks are not contigous OR the logical blocks are not contiguous.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "facd07b07d2a7988f5ce849558838cc953847637",
      "tree": "269200329390f450d2bc7f0858a8ed114a418374",
      "parents": [
        "66f998f611897319b555364cefd5d6e88a205866"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sun May 23 11:00:55 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:55 2010 -0400"
      },
      "message": "direct-io: add a hook for the fs to provide its own submit_bio function\n\nBecause BTRFS can do RAID and such, we need our own submit hook so we can setup\nthe bio\u0027s in the correct fashion, and handle checksum errors properly.  So there\nare a few changes here\n\n1) The submit_io hook.  This is straightforward, just call this instead of\nsubmit_bio.\n\n2) Allow the fs to return -ENOTBLK for reads.  Usually this has only worked for\nwrites, since writes can fallback onto buffered IO.  But BTRFS needs the option\nof falling back on buffered IO if it encounters a compressed extent, since we\nneed to read the entire extent in and decompress it.  So if we get -ENOTBLK back\nfrom get_block we\u0027ll return back and fallback on buffered just like the write\ncase.\n\nI\u0027ve tested these changes with fsx and everything seems to work.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3fd0a5585eb98e074fb9934549c8d85c49756c0d",
      "tree": "3e7ff9bd9678a5eea62818a2f4a50e19dda91a81",
      "parents": [
        "efa56464562991b8c24f965199888806bd8c4b38"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:49:59 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:54 2010 -0400"
      },
      "message": "Btrfs: Metadata ENOSPC handling for balance\n\nThis patch adds metadata ENOSPC handling for the balance code.\nIt is consisted by following major changes:\n\n1. Avoid COW tree leave in the phrase of merging tree.\n\n2. Handle interaction with snapshot creation.\n\n3. make the backref cache can live across transactions.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "efa56464562991b8c24f965199888806bd8c4b38",
      "tree": "e7c7e69e2931674ddf4f14ac08dfdf43b45de0f4",
      "parents": [
        "4a500fd178c89b96fa166a2d9e7855df33429841"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:49:59 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:53 2010 -0400"
      },
      "message": "Btrfs: Pre-allocate space for data relocation\n\nPre-allocate space for data relocation. This can detect ENOPSC\ncondition caused by fragmentation of free space.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4a500fd178c89b96fa166a2d9e7855df33429841",
      "tree": "b97fe0b0c1cb19388fcf28f77cd74a645ec69a61",
      "parents": [
        "d68fc57b7e3245cfacf2e3b47acfed1946a11786"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:49:59 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:53 2010 -0400"
      },
      "message": "Btrfs: Metadata ENOSPC handling for tree log\n\nPrevious patches make the allocater return -ENOSPC if there is no\nunreserved free metadata space. This patch updates tree log code\nand various other places to propagate/handle the ENOSPC error.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d68fc57b7e3245cfacf2e3b47acfed1946a11786",
      "tree": "c2572fcd935017440c8370c8a12ceb49a7fc4f1f",
      "parents": [
        "8929ecfa50f266163832eeacfbc3642ed5eb83b6"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:49:58 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:52 2010 -0400"
      },
      "message": "Btrfs: Metadata reservation for orphan inodes\n\nreserve metadata space for handling orphan inodes\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8929ecfa50f266163832eeacfbc3642ed5eb83b6",
      "tree": "e0177748af36d49d5f652cff0e421a8268cf7194",
      "parents": [
        "0ca1f7ceb1991099ed5273885ebcf4323948c72e"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:49:58 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:52 2010 -0400"
      },
      "message": "Btrfs: Introduce global metadata reservation\n\nReserve metadata space for extent tree, checksum tree and root tree\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0ca1f7ceb1991099ed5273885ebcf4323948c72e",
      "tree": "10758d6a55c529aced177da3f6bf45cf26361913",
      "parents": [
        "a22285a6a32390195235171b89d157ed1a1fe932"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:48:47 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:51 2010 -0400"
      },
      "message": "Btrfs: Update metadata reservation for delayed allocation\n\nIntroduce metadata reservation context for delayed allocation\nand update various related functions.\n\nThis patch also introduces EXTENT_FIRST_DELALLOC control bit for\nset/clear_extent_bit. It tells set/clear_bit_hook whether they\nare processing the first extent_state with EXTENT_DELALLOC bit\nset. This change is important if set/clear_extent_bit involves\nmultiple extent_state.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a22285a6a32390195235171b89d157ed1a1fe932",
      "tree": "3fabc88a029e1af4f2fdcc708e7b62ef3cf3703a",
      "parents": [
        "f0486c68e4bd9a06a5904d3eeb3a0d73a83befb8"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:48:46 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:50 2010 -0400"
      },
      "message": "Btrfs: Integrate metadata reservation with start_transaction\n\nBesides simplify the code, this change makes sure all metadata\nreservation for normal metadata operations are released after\ncommitting transaction.\n\nChanges since V1:\n\nAdd code that check if unlink and rmdir will free space.\n\nAdd ENOSPC handling for clone ioctl.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f0486c68e4bd9a06a5904d3eeb3a0d73a83befb8",
      "tree": "509428ef400ef45e875a3c448b63b86cbea36aea",
      "parents": [
        "2ead6ae770d9f9dec9f4286bf0fd9001b4388c4b"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:46:25 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:50 2010 -0400"
      },
      "message": "Btrfs: Introduce contexts for metadata reservation\n\nIntroducing metadata reseravtion contexts has two major advantages.\nFirst, it makes metadata reseravtion more traceable. Second, it can\nreclaim freed space and re-add them to the itself after transaction\ncommitted.\n\nBesides add btrfs_block_rsv structure and related helper functions,\nThis patch contains following changes:\n\nMove code that decides if freed tree block should be pinned into\nbtrfs_free_tree_block().\n\nMake space accounting more accurate, mainly for handling read only\nblock groups.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2ead6ae770d9f9dec9f4286bf0fd9001b4388c4b",
      "tree": "9f2d01f2c2acf2ca7e7447c3a92b34bd8d8da94c",
      "parents": [
        "5da9d01b66458b180a6bee0e637a1d0a3effc622"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:46:25 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:49 2010 -0400"
      },
      "message": "Btrfs: Kill init_btrfs_i()\n\nAll code in init_btrfs_i can be moved into btrfs_alloc_inode()\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5da9d01b66458b180a6bee0e637a1d0a3effc622",
      "tree": "47eca61c0ad07ddc791cb7677c548d663fbac818",
      "parents": [
        "424499dbd0c4d88742bf581b5714b27fb44b9fef"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:46:25 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:48 2010 -0400"
      },
      "message": "Btrfs: Shrink delay allocated space in a synchronized\n\nShrink delayed allocation space in a synchronized manner is more\ncontrollable than flushing all delay allocated space in an async\nthread.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "424499dbd0c4d88742bf581b5714b27fb44b9fef",
      "tree": "f46a76c8f23c7045b18b31a9206d0b22f324aad1",
      "parents": [
        "b742bb82f1676d50103ade0ba89bfb79debabe73"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:46:25 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:48 2010 -0400"
      },
      "message": "Btrfs: Kill allocate_wait in space_info\n\nWe already have fs_info-\u003echunk_mutex to avoid concurrent\nchunk creation.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b742bb82f1676d50103ade0ba89bfb79debabe73",
      "tree": "ceac53988a3c158571fb91d54e3027403363fb47",
      "parents": [
        "e40152ee1e1c7a63f4777791863215e3faa37a86"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:46:24 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:47 2010 -0400"
      },
      "message": "Btrfs: Link block groups of different raid types\n\nThe size of reserved space is stored in space_info. If block groups\nof different raid types are linked to separate space_info, changing\nallocation profile will corrupt reserved space accounting.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "88e88374ee4958786397a57f684de6f1fc5e0242",
      "tree": "750fe86ece5d65e597223eb07c5ce7cf5b3749a0",
      "parents": [
        "7e125f7b9cbfce4101191b8076d606c517a73066",
        "ccf7c23fc129e75ef60e6f59f60a485b7a056598"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 11:57:36 2010 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 11:57:36 2010 -0500"
      },
      "message": "Merge branch \u0027delayed-logging-for-2.6.35\u0027 into for-linus\n"
    },
    {
      "commit": "ccf7c23fc129e75ef60e6f59f60a485b7a056598",
      "tree": "957539e31ee2a7155bbf9bb085ec1cb1d3432d3a",
      "parents": [
        "df806158b0f6eb24247773b4a19b8b59d7217e59"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu May 20 23:19:42 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 10:41:22 2010 -0500"
      },
      "message": "xfs: Ensure inode allocation buffers are fully replayed\n\nWith delayed logging, we can get inode allocation buffers in the\nsame transaction inode unlink buffers. We don\u0027t currently mark inode\nallocation buffers in the log, so inode unlink buffers take\nprecedence over allocation buffers.\n\nThe result is that when they are combined into the same checkpoint,\nonly the unlinked inode chain fields are replayed, resulting in\nuninitialised inode buffers being detected when the next inode\nmodification is replayed.\n\nTo fix this, we need to ensure that we do not set the inode buffer\nflag in the buffer log item format flags if the inode allocation has\nnot already hit the log. To avoid requiring a change to log\nrecovery, we really need to make this a modification that relies\nonly on in-memory sate.\n\nWe can do this by checking during buffer log formatting (while the\nCIL cannot be flushed) if we are still in the same sequence when we\ncommit the unlink transaction as the inode allocation transaction.\nIf we are, then we do not add the inode buffer flag to the buffer\nlog format item flags. This means the entire buffer will be\nreplayed, not just the unlinked fields. We do this while\nCIL flusheѕ are locked out to ensure that we don\u0027t race with the\nsequence numbers changing and hence fail to put the inode buffer\nflag in the buffer format flags when we really need to.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "df806158b0f6eb24247773b4a19b8b59d7217e59",
      "tree": "a6fb142258aabf03011aadd14c9cf6ade9033d58",
      "parents": [
        "9da1ab181ac1790f86528b86ba5876f037e8dcdc"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 17 15:52:13 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 10:38:20 2010 -0500"
      },
      "message": "xfs: enable background pushing of the CIL\n\nIf we let the CIL grow without bound, it will grow large enough to violate\nrecovery constraints (must be at least one complete transaction in the log at\nall times) or take forever to write out through the log buffers. Hence we need\na check during asynchronous transactions as to whether the CIL needs to be\npushed.\n\nWe track the amount of log space the CIL consumes, so it is relatively simple\nto limit it on a pure size basis. Make the limit the minimum of just under half\nthe log size (recovery constraint) or 8MB of log space (which is an awful lot\nof metadata).\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "9da1ab181ac1790f86528b86ba5876f037e8dcdc",
      "tree": "44aed8ed83c4d8b4480d757d2efb0dde475a6500",
      "parents": [
        "71e330b593905e40d6c5afa824d38ee02d70ce5f"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 17 15:51:59 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 10:38:14 2010 -0500"
      },
      "message": "xfs: forced unmounts need to push the CIL\n\nIf the filesystem is being shut down and the there is no log error,\nthe current code forces out the current log buffers. This code now needs\nto push the CIL before it forces out the log buffers to acheive the same\nresult.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "71e330b593905e40d6c5afa824d38ee02d70ce5f",
      "tree": "4c9fa6c4766280752fc40f3057fd6cf64396c16c",
      "parents": [
        "a9a745daadab26f13884ff26a50fa38247c11ce9"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri May 21 14:37:18 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 10:38:03 2010 -0500"
      },
      "message": "xfs: Introduce delayed logging core code\n\nThe delayed logging code only changes in-memory structures and as\nsuch can be enabled and disabled with a mount option. Add the mount\noption and emit a warning that this is an experimental feature that\nshould not be used in production yet.\n\nWe also need infrastructure to track committed items that have not\nyet been written to the log. This is what the Committed Item List\n(CIL) is for.\n\nThe log item also needs to be extended to track the current log\nvector, the associated memory buffer and it\u0027s location in the Commit\nItem List. Extend the log item and log vector structures to enable\nthis tracking.\n\nTo maintain the current log format for transactions with delayed\nlogging, we need to introduce a checkpoint transaction and a context\nfor tracking each checkpoint from initiation to transaction\ncompletion.  This includes adding a log ticket for tracking space\nlog required/used by the context checkpoint.\n\nTo track all the changes we need an io vector array per log item,\nrather than a single array for the entire transaction. Using the new\nlog vector structure for this requires two passes - the first to\nallocate the log vector structures and chain them together, and the\nsecond to fill them out.  This log vector chain can then be passed\nto the CIL for formatting, pinning and insertion into the CIL.\n\nFormatting of the log vector chain is relatively simple - it\u0027s just\na loop over the iovecs on each log vector, but it is made slightly\nmore complex because we re-write the iovec after the copy to point\nback at the memory buffer we just copied into.\n\nThis code also needs to pin log items. If the log item is not\nalready tracked in this checkpoint context, then it needs to be\npinned. Otherwise it is already pinned and we don\u0027t need to pin it\nagain.\n\nThe only other complexity is calculating the amount of new log space\nthe formatting has consumed. This needs to be accounted to the\ntransaction in progress, and the accounting is made more complex\nbecase we need also to steal space from it for log metadata in the\ncheckpoint transaction. Calculate all this at insert time and update\nall the tickets, counters, etc correctly.\n\nOnce we\u0027ve formatted all the log items in the transaction, attach\nthe busy extents to the checkpoint context so the busy extents live\nuntil checkpoint completion and can be processed at that point in\ntime. Transactions can then be freed at this point in time.\n\nNow we need to issue checkpoints - we are tracking the amount of log space\nused by the items in the CIL, so we can trigger background checkpoints when the\nspace usage gets to a certain threshold. Otherwise, checkpoints need ot be\ntriggered when a log synchronisation point is reached - a log force event.\n\nBecause the log write code already handles chained log vectors, writing the\ntransaction is trivial, too. Construct a transaction header, add it\nto the head of the chain and write it into the log, then issue a\ncommit record write. Then we can release the checkpoint log ticket\nand attach the context to the log buffer so it can be called during\nIo completion to complete the checkpoint.\n\nWe also need to allow for synchronising multiple in-flight\ncheckpoints. This is needed for two things - the first is to ensure\nthat checkpoint commit records appear in the log in the correct\nsequence order (so they are replayed in the correct order). The\nsecond is so that xfs_log_force_lsn() operates correctly and only\nflushes and/or waits for the specific sequence it was provided with.\n\nTo do this we need a wait variable and a list tracking the\ncheckpoint commits in progress. We can walk this list and wait for\nthe checkpoints to change state or complete easily, an this provides\nthe necessary synchronisation for correct operation in both cases.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "ed3b4d6cdc81e8feefdbfa3c584614be301b6d39",
      "tree": "5b8cd5735dfbc5eb834f96d25a8eb587186715be",
      "parents": [
        "955833cf2ad0aa39b336e853cad212d867199984"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri May 21 12:07:08 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 10:34:00 2010 -0500"
      },
      "message": "xfs: Improve scalability of busy extent tracking\n\nWhen we free a metadata extent, we record it in the per-AG busy\nextent array so that it is not re-used before the freeing\ntransaction hits the disk. This array is fixed size, so when it\noverflows we make further allocation transactions synchronous\nbecause we cannot track more freed extents until those transactions\nhit the disk and are completed. Under heavy mixed allocation and\nfreeing workloads with large log buffers, we can overflow this array\nquite easily.\n\nFurther, the array is sparsely populated, which means that inserts\nneed to search for a free slot, and array searches often have to\nsearch many more slots that are actually used to check all the\nbusy extents. Quite inefficient, really.\n\nTo enable this aspect of extent freeing to scale better, we need\na structure that can grow dynamically. While in other areas of\nXFS we have used radix trees, the extents being freed are at random\nlocations on disk so are better suited to being indexed by an rbtree.\n\nSo, use a per-AG rbtree indexed by block number to track busy\nextents.  This incures a memory allocation when marking an extent\nbusy, but should not occur too often in low memory situations. This\nshould scale to an arbitrary number of extents so should not be a\nlimitation for features such as in-memory aggregation of\ntransactions.\n\nHowever, there are still situations where we can\u0027t avoid allocating\nbusy extents (such as allocation from the AGFL). To minimise the\noverhead of such occurences, we need to avoid doing a synchronous\nlog force while holding the AGF locked to ensure that the previous\ntransactions are safely on disk before we use the extent. We can do\nthis by marking the transaction doing the allocation as synchronous\nrather issuing a log force.\n\nBecause of the locking involved and the ordering of transactions,\nthe synchronous transaction provides the same guarantees as a\nsynchronous log force because it ensures that all the prior\ntransactions are already on disk when the synchronous transaction\nhits the disk. i.e. it preserves the free-\u003eallocate order of the\nextent correctly in recovery.\n\nBy doing this, we avoid holding the AGF locked while log writes are\nin progress, hence reducing the length of time the lock is held and\ntherefore we increase the rate at which we can allocate and free\nfrom the allocation group, thereby increasing overall throughput.\n\nThe only problem with this approach is that when a metadata buffer is\nmarked stale (e.g. a directory block is removed), then buffer remains\npinned and locked until the log goes to disk. The issue here is that\nif that stale buffer is reallocated in a subsequent transaction, the\nattempt to lock that buffer in the transaction will hang waiting\nthe log to go to disk to unlock and unpin the buffer. Hence if\nsomeone tries to lock a pinned, stale, locked buffer we need to\npush on the log to get it unlocked ASAP. Effectively we are trading\noff a guaranteed log force for a much less common trigger for log\nforce to occur.\n\nIdeally we should not reallocate busy extents. That is a much more\ncomplex fix to the problem as it involves direct intervention in the\nallocation btree searches in many places. This is left to a future\nset of modifications.\n\nFinally, now that we track busy extents in allocated memory, we\ndon\u0027t need the descriptors in the transaction structure to point to\nthem. We can replace the complex busy chunk infrastructure with a\nsimple linked list of busy extents. This allows us to remove a large\nchunk of code, making the overall change a net reduction in code\nsize.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "955833cf2ad0aa39b336e853cad212d867199984",
      "tree": "301c224647dea71852e36929932321bccabd1dc4",
      "parents": [
        "169a7b078eaa765e6bd09865c985298ee9084a89"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri May 14 21:41:46 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 10:33:52 2010 -0500"
      },
      "message": "xfs: make the log ticket ID available outside the log infrastructure\n\nThe ticket ID is needed to uniquely identify transactions when doing busy\nextent matching. Delayed logging changes the lifecycle of busy extents with\nrespect to the transaction structure lifecycle. Hence we can no longer use\nthe transaction structure as a means of determining the owner of the busy\nextent as it may be freed and reused while the busy extent is still active.\n\nThis commit provides the infrastructure to access the xlog_tid_t held in the\nticket from a transaction handle. This avoids the need for callers to peek\ninto the transaction and log structures to find this out.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "169a7b078eaa765e6bd09865c985298ee9084a89",
      "tree": "ee787e600c6c80b6c08ab4d551b8c494daa22e81",
      "parents": [
        "c11554104f4dcb509fd43973389b097a04b9d51d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri May 07 11:05:31 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 10:33:46 2010 -0500"
      },
      "message": "xfs: clean up log ticket overrun debug output\n\nPush the error message output when a ticket overrun is detected\ninto the ticket printing functions. Also remove the debug version\nof the code as the production version will still panic just as\neffectively on a debug kernel via the panic mask being set.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "c11554104f4dcb509fd43973389b097a04b9d51d",
      "tree": "18b67546aa2baacaa729ae51ad656465bdc2654f",
      "parents": [
        "64fc35de60da3b1fe970168d10914bf1cf34a3e3"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri May 07 11:05:19 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 10:33:39 2010 -0500"
      },
      "message": "xfs: Clean up XFS_BLI_* flag namespace\n\nClean up the buffer log format (XFS_BLI_*) flags because they have a\npolluted namespace. They XFS_BLI_ prefix is used for both in-memory\nand on-disk flag feilds, but have overlapping values for different\nflags. Rename the buffer log format flags to use the XFS_BLF_*\nprefix to avoid confusing them with the in-memory XFS_BLI_* prefixed\nflags.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "64fc35de60da3b1fe970168d10914bf1cf34a3e3",
      "tree": "150216a336bbb3a0f7066763b675fb6a0e6f3061",
      "parents": [
        "3383ca5780f88bb2c119174045ed77d5ece08072"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri May 07 11:04:34 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 10:33:31 2010 -0500"
      },
      "message": "xfs: modify buffer item reference counting\n\nThe buffer log item reference counts used to take referenceѕ for every\ntransaction, similar to the pin counting. This is symmetric (like the\npin/unpin) with respect to transaction completion, but with dleayed logging\nbecomes assymetric as the pinning becomes assymetric w.r.t. transaction\ncompletion.\n\nTo make both cases the same, allow the buffer pinning to take a reference to\nthe buffer log item and always drop the reference the transaction has on it\nwhen being unlocked. This is balanced correctly because the unpin operation\nalways drops a reference to the log item. Hence reference counting becomes\nsymmetric w.r.t. item pinning as well as w.r.t active transactions and as a\nresult the reference counting model remain consistent between normal and\ndelayed logging.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "3383ca5780f88bb2c119174045ed77d5ece08072",
      "tree": "582aaa878f90af0e48941c3fcadbafe4c1a695f4",
      "parents": [
        "524ee36fa4661d745a467c3bba0e1034fd1f4b77"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri May 07 11:04:17 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 10:33:17 2010 -0500"
      },
      "message": "xfs: allow log ticket allocation to take allocation flags\n\nDelayed logging currently requires ticket allocation to succeed, so\nwe need to be able to sleep on allocation. It also should not allow\nmemory allocation to recurse into the filesystem. hence we need to\npass allocation flags directing the type of allocation the caller\nrequires.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "524ee36fa4661d745a467c3bba0e1034fd1f4b77",
      "tree": "c14176bd3f02e40f1fbdffc137b6f4d49b8e6d5e",
      "parents": [
        "b4ed4626a9775cd8cb77209280d24839526f94f2"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri May 07 11:05:05 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 10:33:10 2010 -0500"
      },
      "message": "xfs: Don\u0027t reuse the same transaction ID for duplicated transactions.\n\nThe transaction ID is written into the log as the unique identifier\nfor transactions during recover. When duplicating a transaction, we\nreuse the log ticket, which means it has the same transaction ID as\nthe previous transaction.\n\nRather than regenerating a random transaction ID for the duplicated\ntransaction, just add one to the current ID so that duplicated\ntransaction can be easily spotted in the log and during recovery\nduring problem diagnosis.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "f13771187b9423b824f32518319f6da85d819003",
      "tree": "c431cf16c286065a302d5f3fb43fc1abac7e4047",
      "parents": [
        "15953654cc312429740fd58fb37a5a3d63a54376",
        "9f37af654fda88a8dcca74c785f6c20e52758866"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:01:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:01:10 2010 -0700"
      },
      "message": "Merge branch \u0027bkl/ioctl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027bkl/ioctl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  uml: Pushdown the bkl from harddog_kern ioctl\n  sunrpc: Pushdown the bkl from sunrpc cache ioctl\n  sunrpc: Pushdown the bkl from ioctl\n  autofs4: Pushdown the bkl from ioctl\n  uml: Convert to unlocked_ioctls to remove implicit BKL\n  ncpfs: BKL ioctl pushdown\n  coda: Clean-up whitespace problems in pioctl.c\n  coda: BKL ioctl pushdown\n  drivers: Push down BKL into various drivers\n  isdn: Push down BKL into ioctl functions\n  scsi: Push down BKL into ioctl functions\n  dvb: Push down BKL into ioctl functions\n  smbfs: Push down BKL into ioctl function\n  coda/psdev: Remove BKL from ioctl function\n  um/mmapper: Remove BKL usage\n  sn_hwperf: Kill BKL usage\n  hfsplus: Push down BKL into ioctl function\n"
    },
    {
      "commit": "0163916f1db7f345963dad1af78b7628c759c6ee",
      "tree": "c33e3551b7825e8700db65b8b27869f6f7d45c72",
      "parents": [
        "a69eee4988752c7196677958b4ed8f4c2b28499a",
        "ddf08f4b90a413892bbb9bb2e8a57aed991cd47d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:57:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:57:41 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd\n\n* \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd:\n  exofs: confusion between kmap() and kmap_atomic() api\n  exofs: Add default address_space_operations\n"
    },
    {
      "commit": "3e766fd41ddc31c47ec5b2840c6a45803d35ff40",
      "tree": "f007442f20757918aa024dda848baa7670baa580",
      "parents": [
        "4fd5ec509bd486b5dd8cac1a4d4d7e2cbdf7c546",
        "7845bc3e132605e3e8a1f37748e29281164b65f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:41:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:41:47 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6:\n  fat: convert to unlocked_ioctl\n  fat: Cleanup nls_unload() usage\n  fat: use pack_hex_byte() instead of custom one\n"
    },
    {
      "commit": "4fd5ec509bd486b5dd8cac1a4d4d7e2cbdf7c546",
      "tree": "a8ddfdcc4bfb702457e8eeff57fd6b5a2f4249b2",
      "parents": [
        "6e188240ebc2a132d70924942d7c8b9acb46e11a",
        "6d27e64d74e14c1cf2b4af438d7e8a77017bd654"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:41:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:41:13 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  9p: Optimize TCREATE by eliminating a redundant fid clone.\n  9p: cleanup: remove unneeded assignment\n  9p: Add mksock support\n  fs/9p: Make sure we properly instantiate dentry.\n  9p: add 9P2000.L rename operation\n  9p: add 9P2000.L statfs operation\n  9p: VFS switches for 9p2000.L: VFS switches\n  9p: VFS switches for 9p2000.L: protocol and client changes\n"
    },
    {
      "commit": "6e188240ebc2a132d70924942d7c8b9acb46e11a",
      "tree": "7628df39f9c1d60a639504faaf6b5941b2c4b4ae",
      "parents": [
        "62a11ae3405b6da2535d28e5facc2de5af4a7e62",
        "240ed68eb567d80dd6bab739341999a5ab0ad55d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:37:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:37:52 2010 -0700"
      },
      "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: (59 commits)\n  ceph: reuse mon subscribe message instead of allocated anew\n  ceph: avoid resending queued message to monitor\n  ceph: Storage class should be before const qualifier\n  ceph: all allocation functions should get gfp_mask\n  ceph: specify max_bytes on readdir replies\n  ceph: cleanup pool op strings\n  ceph: Use kzalloc\n  ceph: use common helper for aborted dir request invalidation\n  ceph: cope with out of order (unsafe after safe) mds reply\n  ceph: save peer feature bits in connection structure\n  ceph: resync headers with userland\n  ceph: use ceph. prefix for virtual xattrs\n  ceph: throw out dirty caps metadata, data on session teardown\n  ceph: attempt mds reconnect if mds closes our session\n  ceph: clean up send_mds_reconnect interface\n  ceph: wait for mds OPEN reply to indicate reconnect success\n  ceph: only send cap releases when mds is OPEN|HUNG\n  ceph: dicard cap releases on mds restart\n  ceph: make mon client statfs handling more generic\n  ceph: drop src address(es) from message header [new protocol feature]\n  ...\n"
    },
    {
      "commit": "7df0e0397b9a18358573274db9fdab991941062f",
      "tree": "2cfad1129b631ade909dc75e32a0ea48f3899a28",
      "parents": [
        "f72f2d2e2f3238e4dedf4afb5f9945b3227dd87e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 24 14:36:48 2010 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 24 14:36:48 2010 +0100"
      },
      "message": "GFS2: Fix permissions checking for setflags ioctl()\n\nWe should be checking for the ownership of the file for which\nflags are being set, rather than just for write access.\n\nReported-by: Dan Rosenberg \u003cdan.j.rosenberg@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5c80f5aa409b211ab193c56fb6b77d73b61966e5",
      "tree": "8559d669666b1174067f29294015164251d2088b",
      "parents": [
        "f6db25a87643fa6108e211da0397423593ca36fe"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Sun May 23 08:27:42 2010 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Sun May 23 08:27:42 2010 +0100"
      },
      "message": "squashfs: fix name reading in squashfs_xattr_get\n\nOnly read potentially matching names into the target buffer, all\nobviously non matching names don\u0027t need to be read into the\ntarget buffer.\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "f6db25a87643fa6108e211da0397423593ca36fe",
      "tree": "5bf431bf1efea38a57186f4dc595966d4187e324",
      "parents": [
        "0f87ee08564b95389e609699990725efd282021c"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Sun May 23 03:29:26 2010 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Sun May 23 03:35:05 2010 +0100"
      },
      "message": "squashfs: constify xattr handlers\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "6d27e64d74e14c1cf2b4af438d7e8a77017bd654",
      "tree": "8b402bf58da42297521ec12bb024be566790cd6a",
      "parents": [
        "fe5bd0736bcdf35bd6cc300211a97c2fef8bd83e"
      ],
      "author": {
        "name": "Venkateswararao Jujjuri",
        "email": "jvrao@linux.vnet.ibm.com",
        "time": "Mon May 10 18:08:28 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Sat May 22 12:39:02 2010 -0500"
      },
      "message": "9p: Optimize TCREATE by eliminating a redundant fid clone.\n\nThis patch removes a redundant fid clone on the directory fid and hence\nreduces a server transaction while creating new filesystem object.\n\nSigned-off-by: Venkateswararao Jujjuri \u003cjvrao@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "fe5bd0736bcdf35bd6cc300211a97c2fef8bd83e",
      "tree": "2116a7989eeef6ff063565f8525f53b526d6c8e4",
      "parents": [
        "75cc5c9b82a31936d2a8cb75f34752000e244015"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Fri May 07 08:26:23 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Sat May 22 12:34:12 2010 -0500"
      },
      "message": "9p: cleanup: remove unneeded assignment\n\nWe never use \"v9ses\" and so we can remove it.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "75cc5c9b82a31936d2a8cb75f34752000e244015",
      "tree": "1c783ff2a3d50297c9f1c1f0130927b4dd478297",
      "parents": [
        "85e0df240e9376ff58eb1a50d9854f5f176dd297"
      ],
      "author": {
        "name": "Venkateswararao Jujjuri",
        "email": "jvrao@linux.vnet.ibm.com",
        "time": "Sat May 22 12:20:30 2010 -0500"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Sat May 22 12:34:12 2010 -0500"
      },
      "message": "9p: Add mksock support\n\nWithout this patch, an attempt to mksock will get an EINVAL.\n\nBefore this patch:\n[root@localhost 1dir]# mksock mysock\nmksock: error making mysock: Invalid argument\n\nWith this patch:\n[root@localhost 1dir]# mksock mysock\n[root@localhost 1dir]# ls    -l mysock\ns--------- 1 root root 0 2010-03-31 17:44 mysock\n\nSigned-off-by: Venkateswararao Jujjuri \u003cjvrao@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "85e0df240e9376ff58eb1a50d9854f5f176dd297",
      "tree": "253d86bccb5ca9a23863de2caa40b12d3097d624",
      "parents": [
        "4681dbdacb5cdc4d3273c3a97a1858d6e00a5fe7"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri May 14 13:04:39 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Sat May 22 12:34:11 2010 -0500"
      },
      "message": "fs/9p: Make sure we properly instantiate dentry.\n\nFor lookup if we get ENOENT error from the server we still\ninstantiate the dentry. We need to make sure we have dentry\noperations set in that case so that a later dput on the dentry\ndoes the expected. Without the patch we get the below error\n\n#ln  -sf abc abclink\nln: creating symbolic link `abclink\u0027: No such file or directory\n\nNow on the host do\n$ touch abclink\n\nGuest now gives ENOENT error.\n# ls\nls: cannot access abclink: No such file or directory\n\nDebugged-by:Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "3663df70c028bc435d6f2ec532a4849db62d1656",
      "tree": "5ae705c680ac791d0caf1cc0c20ed02ae920b4de",
      "parents": [
        "d6c89d9aca0933d90ab926bf448b32f24a163792"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed May 19 15:08:17 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 22 17:44:18 2010 +0200"
      },
      "message": "autofs4: Pushdown the bkl from ioctl\n\nPushdown the bkl to autofs4_root_ioctl.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Autofs \u003cautofs@linux.kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "e8bebe2f71d26871b0970ae1d9cf0ed3cdd9569d",
      "tree": "c0d82cbd11daaf579b74121c6641d58947091094",
      "parents": [
        "6109e2ce2600e2db26cd0424bb9c6ed019723288",
        "82f3952c02add60b15eea9151d4d99b6b82066c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 19:37:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 19:37:45 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (69 commits)\n  fix handling of offsets in cris eeprom.c, get rid of fake on-stack files\n  get rid of home-grown mutex in cris eeprom.c\n  switch ecryptfs_write() to struct inode *, kill on-stack fake files\n  switch ecryptfs_get_locked_page() to struct inode *\n  simplify access to ecryptfs inodes in -\u003ereadpage() and friends\n  AFS: Don\u0027t put struct file on the stack\n  Ban ecryptfs over ecryptfs\n  logfs: replace inode uid,gid,mode initialization with helper function\n  ufs: replace inode uid,gid,mode initialization with helper function\n  udf: replace inode uid,gid,mode init with helper\n  ubifs: replace inode uid,gid,mode initialization with helper function\n  sysv: replace inode uid,gid,mode initialization with helper function\n  reiserfs: replace inode uid,gid,mode initialization with helper function\n  ramfs: replace inode uid,gid,mode initialization with helper function\n  omfs: replace inode uid,gid,mode initialization with helper function\n  bfs: replace inode uid,gid,mode initialization with helper function\n  ocfs2: replace inode uid,gid,mode initialization with helper function\n  nilfs2: replace inode uid,gid,mode initialization with helper function\n  minix: replace inode uid,gid,mode init with helper\n  ext4: replace inode uid,gid,mode init with helper\n  ...\n\nTrivial conflict in fs/fs-writeback.c (mark bitfields unsigned)\n"
    },
    {
      "commit": "240ed68eb567d80dd6bab739341999a5ab0ad55d",
      "tree": "fabd30d0897a30fa401f85e858f8aecdedb02959",
      "parents": [
        "970690012c572fc3b7be532080564b730f6a9c02"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 21 14:57:25 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 21 16:26:11 2010 -0700"
      },
      "message": "ceph: reuse mon subscribe message instead of allocated anew\n\nUse the same message, allocated during startup.  No need to reallocate a\nnew one each time around (and potentially ENOMEM).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "48c1e44aceca577aa35be509714bd9ec4b4c3837",
      "tree": "5fe7c1f352e21bf1d58763cb2f4158d94e080923",
      "parents": [
        "02bd97997a07a89cb9311c7f00864cfc785c37f9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 11:09:58 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "switch ecryptfs_write() to struct inode *, kill on-stack fake files\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "02bd97997a07a89cb9311c7f00864cfc785c37f9",
      "tree": "c962381bd79b8611bc4d3b3e369f2ce8fe3c6174",
      "parents": [
        "bef5bc2464517cbbf8f85f09b5ade46904afec9a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 11:02:14 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "switch ecryptfs_get_locked_page() to struct inode *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bef5bc2464517cbbf8f85f09b5ade46904afec9a",
      "tree": "34a41e84884e431647af4535147e4fab91cbf88e",
      "parents": [
        "f6d335c08df48b318187a087c9c38ba3d416e115"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 10:56:12 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "simplify access to ecryptfs inodes in -\u003ereadpage() and friends\n\nwe can get to them from page-\u003emapping-\u003ehost, no need to mess with\nfile.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f6d335c08df48b318187a087c9c38ba3d416e115",
      "tree": "ccee5ad0c46fea4c34d435d5d869f43394dd9a81",
      "parents": [
        "4403158ba295c8e36f6736b1bb12d0f7e1923dac"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri May 21 15:27:09 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "AFS: Don\u0027t put struct file on the stack\n\nDon\u0027t put struct file on the stack as it takes up quite a lot of space\nand violates lifetime rules for struct file.\n\nRather than calling afs_readpage() indirectly from the directory routines by\nway of read_mapping_page(), split afs_readpage() to have afs_page_filler()\nthat\u0027s given a key instead of a file and call read_cache_page(), specifying the\nnew function directly.  Use it in afs_readpages() as well.\n\nAlso make use of this in afs_mntpt_check_symlink() too for the same reason.\n\nReported-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4403158ba295c8e36f6736b1bb12d0f7e1923dac",
      "tree": "a85c276c7ba414ecc65a93488dcb2ef7972779c0",
      "parents": [
        "ab9a79b9669c28734a69fa9384df6fb93152e53a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 17 00:59:46 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "Ban ecryptfs over ecryptfs\n\nThis is a seriously simplified patch from Eric Sandeen; copy of\nrationale follows:\n\u003d\u003d\u003d\n  mounting stacked ecryptfs on ecryptfs has been shown to lead to bugs\n  in testing.  For crypto info in xattr, there is no mechanism for handling\n  this at all, and for normal file headers, we run into other trouble:\n\n  BUG: unable to handle kernel NULL pointer dereference at 0000000000000008\n  IP: [\u003cffffffffa015b0b3\u003e] ecryptfs_d_revalidate+0x43/0xa0 [ecryptfs]\n  ...\n\n  There doesn\u0027t seem to be any good usecase for this, so I\u0027d suggest just\n  disallowing the configuration.\n\n  Based on a patch originally, I believe, from Mike Halcrow.\n\u003d\u003d\u003d\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ab9a79b9669c28734a69fa9384df6fb93152e53a",
      "tree": "588fc95da1d5769eab4b0a70202d3ac17ababc8e",
      "parents": [
        "be8ded5974c69d0d2128a508b0900ef541d0e7da"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 15 04:02:54 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "logfs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "be8ded5974c69d0d2128a508b0900ef541d0e7da",
      "tree": "c2aa3cb2ca904c3d89b2e36b3ca0d7d1f0fcc948",
      "parents": [
        "a6c5a0342a95f9c7cf18adef79ca52a35cd5e4da"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:23 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "ufs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a6c5a0342a95f9c7cf18adef79ca52a35cd5e4da",
      "tree": "b653744e21077ebaf8ea0d7d9deff828e30d42de",
      "parents": [
        "abf5d08acaca942b49daf0ed87a9deddc94b183a"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:22 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "udf: replace inode uid,gid,mode init with helper\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "abf5d08acaca942b49daf0ed87a9deddc94b183a",
      "tree": "5786fc14e4de0c7058f07aa2338594f522a8d4f9",
      "parents": [
        "85640bd9d47f6ad0290558009e9313632a45861b"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:21 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:26 2010 -0400"
      },
      "message": "ubifs: replace inode uid,gid,mode initialization with helper function\n\nAcked-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "85640bd9d47f6ad0290558009e9313632a45861b",
      "tree": "469dd09544b668ed0dd5166e339d6d500367b0ad",
      "parents": [
        "04b7ed0d33eee161b223d64f16e1f521a84ace76"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:20 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:26 2010 -0400"
      },
      "message": "sysv: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "04b7ed0d33eee161b223d64f16e1f521a84ace76"
}
