)]}'
{
  "log": [
    {
      "commit": "12e24f34cb0d55efd08c18b2112507d4bf498008",
      "tree": "83b07be17b8ef45f42360a3b9159b3aaae3fbad4",
      "parents": [
        "1eb51c33b21ffa3fceb634d1d6bcd6488c79bc26",
        "eadc84cc01e04f9f74ec2de0c9355be035c7b396"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 11:29:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 11:29:32 2009 -0700"
      },
      "message": "Merge branch \u0027perfcounters-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perfcounters-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (49 commits)\n  perfcounter: Handle some IO return values\n  perf_counter: Push perf_sample_data through the swcounter code\n  perf_counter tools: Define and use our own u64, s64 etc. definitions\n  perf_counter: Close race in perf_lock_task_context()\n  perf_counter, x86: Improve interactions with fast-gup\n  perf_counter: Simplify and fix task migration counting\n  perf_counter tools: Add a data file header\n  perf_counter: Update userspace callchain sampling uses\n  perf_counter: Make callchain samples extensible\n  perf report: Filter to parent set by default\n  perf_counter tools: Handle lost events\n  perf_counter: Add event overlow handling\n  fs: Provide empty .set_page_dirty() aop for anon inodes\n  perf_counter: tools: Makefile tweaks for 64-bit powerpc\n  perf_counter: powerpc: Add processor back-end for MPC7450 family\n  perf_counter: powerpc: Make powerpc perf_counter code safe for 32-bit kernels\n  perf_counter: powerpc: Change how processor-specific back-ends get selected\n  perf_counter: powerpc: Use unsigned long for register and constraint values\n  perf_counter: powerpc: Enable use of software counters on 32-bit powerpc\n  perf_counter tools: Add and use isprint()\n  ...\n"
    },
    {
      "commit": "3e107603aecf886e1e5bda9dacbd9796eb2a2171",
      "tree": "bb31c00228ee523fd9a064332956f20757d73824",
      "parents": [
        "fb20871a54961b82d35303b43452928186c1361d"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sat Jun 20 21:50:07 2009 +0900"
      },
      "committer": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sat Jun 20 21:50:47 2009 +0900"
      },
      "message": "fat: Fix the removal of opts-\u003efs_dmask\n\n(ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48: New helper - current_umask())\nis removing the opts-\u003efs_dmask, probably it\u0027s a cut-and-paste\nmiss or something.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\n"
    },
    {
      "commit": "bee89ab228e6f51c4ddd3481b9bd491859a8ee7b",
      "tree": "1810eef473172ab9e8ff52ded5e81f39eb8af748",
      "parents": [
        "5c6fb0059cec9a3c0f6d88a0ddf3d62ad323cd57",
        "528da3e9e237059a84a2625e942811cf824a6efd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 19 17:46:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 19 17:46:44 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify\n\n* \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify:\n  inotify: inotify_destroy_mark_entry could get called twice\n"
    },
    {
      "commit": "31583d6acf940d2951bc8716557b06d9de5a0c4b",
      "tree": "607aef385b0998f0cb7ff63b05407afed5182840",
      "parents": [
        "ee37ba7a4212c7420f12e6a2ad8a3966649ede7a",
        "f740f5ca056f0a4eff3abdf272a8a4ba3965d57d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 19 17:43:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 19 17:43:04 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Fix kernel-doc parameter name typo in blk-settings.c:\n  block: rename CONFIG_LBD to CONFIG_LBDAF\n  block: Fix bounce_pfn setting\n  hd: stop defining MAJOR_NR\n"
    },
    {
      "commit": "528da3e9e237059a84a2625e942811cf824a6efd",
      "tree": "7d3de6d5468d6835a4d81bfa1e717100dc7b71bf",
      "parents": [
        "0732f87761dbe417cb6e084b712d07e879e876ef"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jun 12 16:04:26 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jun 19 12:42:48 2009 -0400"
      },
      "message": "inotify: inotify_destroy_mark_entry could get called twice\n\ninotify_destroy_mark_entry could get called twice for the same mark since it\nis called directly in inotify_rm_watch and when the mark is being destroyed for\nanother reason.  As an example assume that the file being watched was just\ndeleted so inotify_destroy_mark_entry would get called from the path\nfsnotify_inoderemove() -\u003e fsnotify_destroy_marks_by_inode() -\u003e\nfsnotify_destroy_mark_entry() -\u003e inotify_destroy_mark_entry().  If this\nhappened at the same time as userspace tried to remove a watch via\ninotify_rm_watch we could attempt to remove the mark from the idr twice and\ncould thus double dec the ref cnt and potentially could be in a use after\nfree/double free situation.  The fix is to have inotify_rm_watch use the\ngeneric recursive safe fsnotify_destroy_mark_by_entry() so we are sure the\ninotify_destroy_mark_entry() function can only be called one.\n\nThis patch also renames the function to inotify_ingored_remove_idr() so it is\nclear what is actually going on in the function.\n\nHopefully this fixes:\n[   20.342058] idr_remove called for id\u003d20 which is not allocated.\n[   20.348000] Pid: 1860, comm: udevd Not tainted 2.6.30-tip #1077\n[   20.353933] Call Trace:\n[   20.356410]  [\u003cffffffff811a82b7\u003e] idr_remove+0x115/0x18f\n[   20.361737]  [\u003cffffffff8134259d\u003e] ? _spin_lock+0x6d/0x75\n[   20.367061]  [\u003cffffffff8111640a\u003e] ? inotify_destroy_mark_entry+0xa3/0xcf\n[   20.373771]  [\u003cffffffff8111641e\u003e] inotify_destroy_mark_entry+0xb7/0xcf\n[   20.380306]  [\u003cffffffff81115913\u003e] inotify_freeing_mark+0xe/0x10\n[   20.386238]  [\u003cffffffff8111410d\u003e] fsnotify_destroy_mark_by_entry+0x143/0x170\n[   20.393293]  [\u003cffffffff811163a3\u003e] inotify_destroy_mark_entry+0x3c/0xcf\n[   20.399829]  [\u003cffffffff811164d1\u003e] sys_inotify_rm_watch+0x9b/0xc6\n[   20.405850]  [\u003cffffffff8100bcdb\u003e] system_call_fastpath+0x16/0x1b\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nTested-by: Peter Ziljlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "90c699a9ee4be165966d40f1837909ccb8890a68",
      "tree": "ff136ce7b73c7d7bbf5eb4241d01cb3b930d3566",
      "parents": [
        "3a02c8e8142f7f133d4c6e72bc3e1d830e6b8b9e"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Jun 19 08:08:50 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 19 08:08:50 2009 +0200"
      },
      "message": "block: rename CONFIG_LBD to CONFIG_LBDAF\n\nFollow-up to \"block: enable by default support for large devices\nand files on 32-bit archs\".\n\nRename CONFIG_LBD to CONFIG_LBDAF to:\n- allow update of existing [def]configs for \"default y\" change\n- reflect that it is used also for large files support nowadays\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0732f87761dbe417cb6e084b712d07e879e876ef",
      "tree": "afed6ca0368fd3e121fd4f43b11e32aa1e5139c0",
      "parents": [
        "15fc204afc6feb915c400159546f646eca8ba1d9",
        "536fc240e7147858255bdb08e7a999a3351a9fb4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 14:07:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 14:07:46 2009 -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:\n  jbd2: clean up jbd2_journal_try_to_free_buffers()\n  ext4: Don\u0027t update ctime for non-extent-mapped inodes\n  ext4: Fix up whitespace issues in fs/ext4/inode.c\n  ext4: Fix 64-bit block type problem on 32-bit platforms\n  ext4: teach the inode allocator to use a goal inode number\n  ext4: Use a hash of the topdir directory name for the Orlov parent group\n  ext4: document the \"abort\" mount option\n  ext4: move the abort flag from s_mount_opts to s_mount_flags\n  ext4: update the s_last_mounted field in the superblock\n  ext4: change s_mount_opt to be an unsigned int\n  ext4: online defrag -- Add EXT4_IOC_MOVE_EXT ioctl\n  ext4: avoid unnecessary spinlock in critical POSIX ACL path\n  ext3: avoid unnecessary spinlock in critical POSIX ACL path\n  ext4: convert instrumentation from markers to tracepoints\n  jbd2: convert instrumentation from markers to tracepoints\n"
    },
    {
      "commit": "0b923606e75f1ab672e25b14ac039a1cdcfa382f",
      "tree": "7661aaea6d8809b002cd03f910122f87eb35608a",
      "parents": [
        "b99b87f70c7785ab1e253c6220f4b0b57ce3a7f7"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "oberpar@linux.vnet.ibm.com",
        "time": "Wed Jun 17 16:28:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:57 2009 -0700"
      },
      "message": "seq_file: add function to write binary data\n\nseq_write() can be used to construct seq_files containing arbitrary data.\nRequired by the gcov-profiling interface to synthesize binary profiling\ndata files.\n\nSigned-off-by: Peter Oberparleiter \u003coberpar@linux.vnet.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Li Wei \u003cW.Li@Sun.COM\u003e\nCc: Michael Ellerman \u003cmichaele@au1.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Heiko Carstens \u003cheicars2@linux.vnet.ibm.com\u003e\nCc: Martin Schwidefsky \u003cmschwid2@linux.vnet.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b34fc5880a2dcc7e5ed9837ef8d6bae051ab266",
      "tree": "477b9a29135cc7b8815ce7ce19201bce371c56a1",
      "parents": [
        "72a1de39f89325a834a8c70b2a0d8f71d919f640"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:52 2009 -0700"
      },
      "message": "elf_core_dump: use rcu_read_lock() to access -\u003ereal_parent\n\nIn theory it is not safe to dereference -\u003eparent/real_parent without\ntasklist or rcu lock, we can race with re-parenting.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: 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": "1d965fe0eb435b3f9a10538815f6a68de0aef03c",
      "tree": "67859aad430ba6e83be86ad227b704d31e0a818e",
      "parents": [
        "37044c86baf8cb894c69bb811e35a7f6f6dbce1c"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@jeffreymahoney.com",
        "time": "Wed Jun 17 16:26:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:46 2009 -0700"
      },
      "message": "reiserfs: fix warnings with gcc 4.4\n\nSeveral code paths in reiserfs have a construct like:\n\n if (is_direntry_le_ih(ih \u003d B_N_PITEM_HEAD(src, item_num))) ...\n\nwhich, in addition to being ugly, end up causing compiler warnings with\ngcc 4.4.0.  Previous compilers didn\u0027t issue a warning.\n\nfs/reiserfs/do_balan.c:1273: warning: operation on `aux_ih\u0027 may be undefined\nfs/reiserfs/lbalance.c:393: warning: operation on `ih\u0027 may be undefined\nfs/reiserfs/lbalance.c:421: warning: operation on `ih\u0027 may be undefined\nfs/reiserfs/lbalance.c:777: warning: operation on `ih\u0027 may be undefined\n\nI believe this is due to the ih being passed to macros which evaluate the\nargument more than once.  This is old code and we haven\u0027t seen any\nproblems with it, but this patch eliminates the warnings.\n\nIt converts the multiple evaluation macros to static inlines and does a\npreassignment for the cases that were causing the warnings because that\ncode is just ugly.\n\nReported-by: Chris Mason \u003cmason@oracle.com\u003e\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37044c86baf8cb894c69bb811e35a7f6f6dbce1c",
      "tree": "4c84e5a74c14119604f5e407f1af4418377e02f5",
      "parents": [
        "5404ac8e4418ab3d254950ee4f9bcafc1da20b4a"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Wed Jun 17 16:26:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:46 2009 -0700"
      },
      "message": "ufs: sector_t cannot be negative\n\nunsigned i_block,fragment cannot be negative.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: 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": "5404ac8e4418ab3d254950ee4f9bcafc1da20b4a",
      "tree": "00ce9ff14b27eb4e8cc1a51970b7da244b102ab7",
      "parents": [
        "5c4a656b7e51503c2b5e7e7310ec326ee38a8389"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jun 17 16:26:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:45 2009 -0700"
      },
      "message": "isofs: cleanup mount option processing\n\nRemove unused variables from isofs_sb_info (used to be some mount\noptions), unify variables for option to use 0/1 (some options used\n\u0027y\u0027/\u0027n\u0027), use bit fields for option flags in superblock.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c4a656b7e51503c2b5e7e7310ec326ee38a8389",
      "tree": "4493bfbd8b4e786ddb4d7e2717eb87de4da08774",
      "parents": [
        "52b680c81238ea14693ab893d5d32a4d1c0a987d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jun 17 16:26:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:45 2009 -0700"
      },
      "message": "isofs: fix setting of uid and gid to 0\n\nisofs allows setting of default uid and gid of files but value 0 was used\nto indicate that user did not specify any uid/gid mount option.  Since\nthis option also overrides uid/gid set in Rock Ridge extension, it makes\nsense to allow forcing uid/gid 0.  Fix option processing to allow this.\n\nCc: \u003cHans-Joachim.Baader@cjt.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52b680c81238ea14693ab893d5d32a4d1c0a987d",
      "tree": "9c3ec57c06faf001b60529d088c189f4bcb77fac",
      "parents": [
        "ef43618a47179b41e7203a624f2c7445e7da488c"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jun 17 16:26:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:45 2009 -0700"
      },
      "message": "isofs: let mode and dmode mount options override rock ridge mode setting\n\nSo far, permissions set via \u0027mode\u0027 and/or \u0027dmode\u0027 mount options were\neffective only if the medium had no rock ridge extensions (or was mounted\nwithout them).  Add \u0027overriderockmode\u0027 mount option to indicate that these\noptions should override permissions set in rock ridge extensions.  Maybe\nthis should be default but the current behavior is there since mount\noptions were created so I think we should not change how they behave.\n\nCc: \u003cHans-Joachim.Baader@cjt.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef43618a47179b41e7203a624f2c7445e7da488c",
      "tree": "64d42f459e5086768e57d8e8e9bec8304b17c150",
      "parents": [
        "6f3f1cb21f08fbf757bbbbb0709ee515a7a7c6ad"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jun 17 16:26:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:45 2009 -0700"
      },
      "message": "ext3: make sure inode is deleted from orphan list after truncate\n\nAs Ted pointed out, it can happen that ext3_truncate() returns without\nremoving inode from orphan list.  This way we could in some rare cases\n(like when we get ENOMEM from an allocation in ext3_truncate called\nbecause of failed ext3_write_begin) leave the inode on orphan list and\nthat triggers assertion failure on umount.\n\nSo make ext3_truncate() always remove inode from in-memory orphan list.\n\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f3f1cb21f08fbf757bbbbb0709ee515a7a7c6ad",
      "tree": "c6874d850ab2347dfeb58ea95a05422880fc0892",
      "parents": [
        "e8ef7aaea79a899be4d7f50e829900c0ce15e52f"
      ],
      "author": {
        "name": "Hisashi Hifumi",
        "email": "hifumi.hisashi@oss.ntt.co.jp",
        "time": "Wed Jun 17 16:26:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:45 2009 -0700"
      },
      "message": "jbd: clean up journal_try_to_free_buffers()\n\nI delete the following patch\n\"commit 3f31fddfa26b7594b44ff2b34f9a04ba409e0f91\nAuthor: Mingming Cao \u003ccmm@us.ibm.com\u003e\nDate:   Fri Jul 25 01:46:22 2008 -0700\n\n    jbd: fix race between free buffer and commit transaction\n\nThis patch is no longer needed because if race between freeing buffer and\ncommitting transaction functionality occurs and dio gets error, currently\ndio falls back to buffered IO by the following patch.\n\n\tcommit 6ccfa806a9cfbbf1cd43d5b6aa47ef2c0eb518fd\n\tAuthor: Hisashi Hifumi \u003chifumi.hisashi@oss.ntt.co.jp\u003e\n\tDate:   Tue Sep 2 14:35:40 2008 -0700\n\n   \tVFS: fix dio write returning EIO when try_to_release_page fails\n\nSigned-off-by: Hisashi Hifumi \u003chifumi.hisashi@oss.ntt.co.jp\u003e\nCc: Theodore Tso \u003ctytso@mit.edu\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8ef7aaea79a899be4d7f50e829900c0ce15e52f",
      "tree": "1cc2370f081264e506d85e954110d363961e37bd",
      "parents": [
        "ce05b2a9db1d86635a906f14427deff97eeb6183"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jun 17 16:26:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:45 2009 -0700"
      },
      "message": "ext3: fix chain verification in ext3_get_blocks()\n\nChain verification in ext3_get_blocks() has been hosed since it called\nverify_chain(chain, NULL) which always returns success.  As a result\nreaders could in theory race with truncate.  On the other hand the race\nprobably cannot happen with the current locking scheme, since by the\ntime ext3_truncate() is called all the pages are already removed and\nhence get_block() shouldn\u0027t be called on such pages...\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39fe7557b4d6ab82bafaa7b92b98b806afe6ad0d",
      "tree": "7bdf2b80fd720cf31a1f855ed19255641f35e6d9",
      "parents": [
        "10dfb54cd59a18786e43137a935277ca743bb54b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jun 17 16:26:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:44 2009 -0700"
      },
      "message": "ext2: Do not update mtime of a moved directory\n\nOne of our users is complaining that his backup tool is upset on ext2\n(while it\u0027s happy on ext3, xfs, ...) because of the mtime change.\n\nThe problem is:\n\n    mkdir foo\n    mkdir bar\n    mkdir foo/a\n\nNow under ext2:\n    mv foo/a foo/b\n\nchanges mtime of \u0027foo/a\u0027 (foo/b after the move).  That does not really\nmake sense and it does not happen under any other filesystem I\u0027ve seen.\n\nMore complicated is:\n    mv foo/a bar/a\n\nThis changes mtime of foo/a (bar/a after the move) and it makes some\nsense since we had to update parent directory pointer of foo/a.  But\nagain, no other filesystem does this.  So after some thoughts I\u0027d vote\nfor consistency and change ext2 to behave the same as other filesystems.\n\nDo not update mtime of a moved directory.  Specs don\u0027t say anything\nabout it (neither that it should, nor that it should not be updated) and\nother common filesystems (ext3, ext4, xfs, reiserfs, fat, ...) don\u0027t do\nit.  So let\u0027s become more consistent.\n\nSpotted by ronny.pretzsch@dfs.de, initial fix by Jörn Engel.\n\nReported-by: \u003cronny.pretzsch@dfs.de\u003e\nCc: \u003chare@suse.de\u003e\nCc: Jörn Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f6d311080c36e30a5fa87adca550dc6b51dbfdc",
      "tree": "7ee0a11c33b538cb978848aeb7d46bb16df129b9",
      "parents": [
        "bcac2b1b7d67f4e7c001b755409fafb37cb0d888"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Wed Jun 17 16:26:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:41 2009 -0700"
      },
      "message": "proc: vmcore - use kzalloc in get_new_element()\n\nInstead of kmalloc+memset better use straight kzalloc\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@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": "bcac2b1b7d67f4e7c001b755409fafb37cb0d888",
      "tree": "5b69b8e5f1321a602a522b49f676bca54c0cb565",
      "parents": [
        "3fe4a975d662f11037cb710f8b4b158a3e38f9c0"
      ],
      "author": {
        "name": "Michal Simek",
        "email": "monstr@monstr.eu",
        "time": "Wed Jun 17 16:25:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:41 2009 -0700"
      },
      "message": "procfs: remove sparse errors in proc_devtree.c\n\nCHECK   fs/proc/proc_devtree.c\nfs/proc/proc_devtree.c:197:14: warning: Using plain integer as NULL pointer\nfs/proc/proc_devtree.c:203:34: warning: Using plain integer as NULL pointer\nfs/proc/proc_devtree.c:210:14: warning: Using plain integer as NULL pointer\nfs/proc/proc_devtree.c:223:26: warning: Using plain integer as NULL pointer\nfs/proc/proc_devtree.c:226:14: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Michal Simek \u003cmonstr@monstr.eu\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": "3fe4a975d662f11037cb710f8b4b158a3e38f9c0",
      "tree": "07986fcbf75f9a85c177aa3e7a2472e9833e4565",
      "parents": [
        "36025a812eebb34a478cfc1d3a538472591498b0"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Wed Jun 17 16:25:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:41 2009 -0700"
      },
      "message": "epoll: fix nested calls support\n\nThis fixes a regression in 2.6.30.\n\nI unfortunately accepted a patch time ago, to drop the \"current\" usage\nfrom possible IRQ context, w/out proper thought over it.  The patch\nswitched to using the CPU id by bounding the nested call callback with a\nget_cpu()/put_cpu().\n\nUnfortunately the ep_call_nested() function can be called with a callback\nthat grabs sleepy locks (from own f_op-\u003epoll()), that results in epic\nfails.  The following patch uses the proper \"context\" depending on the\npath where it is called, and on the kind of callback.\n\nThis has been reported by Stefan Richter, that has also verified the patch\nis his previously failing environment.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nReported-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d3d64df21d3d0de675a0d3ffa7c10514f3644b30",
      "tree": "7ea3c79d8adb2c0282327f9ce63208978857eb07",
      "parents": [
        "9d9b8fb0e5ebf4b0398e579f6061d4451fea3242"
      ],
      "author": {
        "name": "Keika Kobayashi",
        "email": "kobayashi.kk@ncos.nec.co.jp",
        "time": "Wed Jun 17 16:25:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:41 2009 -0700"
      },
      "message": "proc: export statistics for softirq to /proc\n\nExport statistics for softirq in /proc/softirqs and /proc/stat.\n\n1. /proc/softirqs\nImplement /proc/softirqs which shows the number of softirq\nfor each CPU like /proc/interrupts.\n\n2. /proc/stat\nAdd the \"softirq\" line to /proc/stat.\nThis line shows the number of softirq for all cpu.\nThe first column is the total of all softirqs and\neach subsequent column is the total for particular softirq.\n\n[kosaki.motohiro@jp.fujitsu.com: remove redundant for_each_possible_cpu() loop]\nSigned-off-by: Keika Kobayashi \u003ckobayashi.kk@ncos.nec.co.jp\u003e\nReviewed-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-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": "d3a9262e59f7fb83c6d44df3b2b1460ed57d3ea1",
      "tree": "563952174f1ffec3d6d27fc3c38d4dc009b6787d",
      "parents": [
        "e24a72c4d8f0b2c17783b3ba9c8931b537149423"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 18 12:54:00 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 18 14:46:10 2009 +0200"
      },
      "message": "fs: Provide empty .set_page_dirty() aop for anon inodes\n\n.set_page_dirty() is one of those a_ops that defaults to the\nbuffer implementation when not set. Therefore provide a dummy\nfunction to make it do nothing.\n\n(Uncovered by perfcounters fd\u0027s which can now be writable-mmap-ed.)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "536fc240e7147858255bdb08e7a999a3351a9fb4",
      "tree": "16bf7a9e1bf506c1944d1e2e13a18a2b3c9bab8f",
      "parents": [
        "4159175058987cb68aefd0e9eec2598b795363b4"
      ],
      "author": {
        "name": "Hisashi Hifumi",
        "email": "hifumi.hisashi@oss.ntt.co.jp",
        "time": "Wed Jun 17 20:08:51 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jun 17 20:08:51 2009 -0400"
      },
      "message": "jbd2: clean up jbd2_journal_try_to_free_buffers()\n\nThis patch reverts 3f31fddf, which is no longer needed because if a\nrace between freeing buffer and committing transaction functionality\noccurs and dio gets error, currently dio falls back to buffered IO due\nto the commit 6ccfa806.\n\nSigned-off-by: Hisashi Hifumi \u003chifumi.hisashi@oss.ntt.co.jp\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "aa2638a210ab0d7c6702cd54315365785fce326c",
      "tree": "ccc6a99248a1e914fbb90a466b76c98e4f083bc6",
      "parents": [
        "b069e8ed4d5054b1fcd31a98bb2053bde645202f",
        "ea4431906d86686e541de527915ccbe556761b16"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 17 09:50:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 17 09:50:44 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6:\n  [SCSI] aic79xx: make driver respect nvram for IU and QAS settings\n  [SCSI] don\u0027t attach ULD to Dell Universal Xport\n  [SCSI] lpfc 8.3.3 : Update driver version to 8.3.3\n  [SCSI] lpfc 8.3.3 : Add support for Target Reset handler entrypoint\n  [SCSI] lpfc 8.3.3 : Fix a couple of spin_lock and memory issues and a crash\n  [SCSI] lpfc 8.3.3 : FC/FCOE discovery fixes\n  [SCSI] lpfc 8.3.3 : Fix various SLI-3 vs SLI-4 differences\n  [SCSI] qla2xxx: Resolve a performance issue in interrupt\n  [SCSI] cnic, bnx2i: Fix build failure when CONFIG_PCI is not set.\n  [SCSI] nsp_cs: time_out reaches -1\n  [SCSI] qla2xxx: fix printk format warnings\n  [SCSI] ncr53c8xx: div reaches -1\n  [SCSI] compat: don\u0027t perform unneeded copy in sg_io code\n  [SCSI] zfcp: Update FC pass-through support\n  [SCSI] zfcp: Add FC pass-through support\n  [SCSI] FC Pass Thru support\n"
    },
    {
      "commit": "b7c142dbf1e7422d0be7f7faa3f1163ad9da9788",
      "tree": "6e62c8654bb9c329f89246235062ac2a289960df",
      "parents": [
        "0bd8df908de2aefe312d05bd25cd3abc21a6d1da",
        "f2c5dbd7b7396457efc114f825acfdd4db4608f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 17 09:46:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 17 09:46:33 2009 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: start using hrtimers\n  hrtimer: export ktime_add_safe\n  UBIFS: do not forget to register BDI device\n  UBIFS: allow sync option in rootflags\n  UBIFS: remove dead code\n  UBIFS: use anonymous device\n  UBIFS: return proper error code if the compr is not present\n  UBIFS: return error if link and unlink race\n  UBIFS: reset no_space flag after inode deletion\n"
    },
    {
      "commit": "9cb0fbf7f8cbbd16218a4fb5983ac55fbc031929",
      "tree": "b81191320a41034986802fe27b07b269b220f530",
      "parents": [
        "feb72ce827b939d5228664c92c2dfed7753cae46",
        "363c55cae53742f3f685a1814912c6d4fda245b4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 17 09:13:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 17 09:13:52 2009 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus: (47 commits)\n  MIPS: Add hibernation support\n  MIPS: Move Cavium CP0 hwrena impl bits to cpu-feature-overrides.h\n  MIPS: Allow CPU specific overriding of CP0 hwrena impl bits.\n  MIPS: Kconfig Add SYS_SUPPORTS_HUGETLBFS and enable it for some systems.\n  Hugetlbfs: Enable hugetlbfs for more systems in Kconfig.\n  MIPS: TLB support for hugetlbfs.\n  MIPS: Add hugetlbfs page defines.\n  MIPS: Add support files for hugetlbfs.\n  MIPS: Remove unused parameters from iPTE_LW.\n  Staging: Add octeon-ethernet driver files.\n  MIPS: Export erratum function needed by octeon-ethernet driver.\n  MIPS: Cavium-Octeon: Add more chip specific feature tests.\n  MIPS: Cavium-Octeon: Add more board type constants.\n  MIPS: Export cvmx_sysinfo_get needed by octeon-ethernet driver.\n  MIPS: Add named alloc functions to OCTEON boot monitor memory allocator.\n  MIPS: Alchemy: devboards: Convert to gpio calls.\n  MIPS: Alchemy: xxs1500: use linux gpio api.\n  MIPS: Alchemy: MTX-1: Use linux gpio api.\n  MIPS: Alchemy: Rewrite GPIO support.\n  MIPS: Alchemy: Remove unused au1000_gpio.h header\n  ...\n"
    },
    {
      "commit": "feb72ce827b939d5228664c92c2dfed7753cae46",
      "tree": "de2d78ee45d9e0df234e98eea67ebc3a21525d8f",
      "parents": [
        "65795efbd380a832ae508b04dba8f8e53f0b84d9",
        "5ac3455a843d2ca77333c954eea83aa4514c8199"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 17 08:46:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 17 08:46:57 2009 -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:\n  get rid of BKL in fs/sysv\n  get rid of BKL in fs/minix\n  get rid of BKL in fs/efs\n  befs -\u003epust_super() doesn\u0027t need BKL\n  Cleanup of adfs headers\n  9P doesn\u0027t need BKL in -\u003eumount_begin()\n  fuse doesn\u0027t need BKL in -\u003eumount_begin()\n  No instance of -\u003ebmap() needs BKL\n  remove unlock_kernel() left accidentally\n  ext4: avoid unnecessary spinlock in critical POSIX ACL path\n  ext3: avoid unnecessary spinlock in critical POSIX ACL path\n"
    },
    {
      "commit": "852969b2d273e77dabbc22e1c1058cbafb7ad7d2",
      "tree": "eaac099b8802198b1d6e77ef8d3f4c37f78bf0b2",
      "parents": [
        "fd062c847a8cea2821347d7e18165dfa658f7dce"
      ],
      "author": {
        "name": "David Daney",
        "email": "ddaney@caviumnetworks.com",
        "time": "Wed May 27 17:47:45 2009 -0700"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed Jun 17 11:06:31 2009 +0100"
      },
      "message": "Hugetlbfs: Enable hugetlbfs for more systems in Kconfig.\n\nAs part of adding hugetlbfs support for MIPS, I am adding a new\nkconfig variable \u0027SYS_SUPPORTS_HUGETLBFS\u0027.  Since some mips cpu\nvarients don\u0027t yet support it, we can enable selection of HUGETLBFS on\na system by system basis from the arch/mips/Kconfig.\n\nSigned-off-by: David Daney \u003cddaney@caviumnetworks.com\u003e\nCC: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "5ac3455a843d2ca77333c954eea83aa4514c8199",
      "tree": "12c12ef1dd13a1bd9a8b61ec9af1f2cc3d845ba5",
      "parents": [
        "cc46759a8c0ac4c6f13aa4b0f470305c05f600e1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 16 23:59:37 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:37 2009 -0400"
      },
      "message": "get rid of BKL in fs/sysv\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cc46759a8c0ac4c6f13aa4b0f470305c05f600e1",
      "tree": "040decb4fb0625527ea882fb069385fb9be0cdaf",
      "parents": [
        "e7ec952f6aa6ac1649ac49eb5e4de5b92c829d1e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 16 23:47:45 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:37 2009 -0400"
      },
      "message": "get rid of BKL in fs/minix\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e7ec952f6aa6ac1649ac49eb5e4de5b92c829d1e",
      "tree": "cfe58a2f9b82ab94bd5ddbbaefb38b4790bdc65c",
      "parents": [
        "536c94901eb8f2eb6fccf81ae6be814899a9f6e8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 16 23:35:46 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:36 2009 -0400"
      },
      "message": "get rid of BKL in fs/efs\n\nOnly readdir() really needed it, and that\u0027s easily fixable by switch to\ngeneric_file_llseek()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "536c94901eb8f2eb6fccf81ae6be814899a9f6e8",
      "tree": "42bea70cf686d2f59b186e147a152670de650afc",
      "parents": [
        "608ba50bd0225d95469154feba8f00a6457848c1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 16 23:24:50 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:36 2009 -0400"
      },
      "message": "befs -\u003epust_super() doesn\u0027t need BKL\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "608ba50bd0225d95469154feba8f00a6457848c1",
      "tree": "1407a612c92301fb9ddf0bbef2afbc4d5b2e4597",
      "parents": [
        "ee450f796f6c4f3a563c914cb93ccfa91a1f7580"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 16 14:52:13 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:36 2009 -0400"
      },
      "message": "Cleanup of adfs headers\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ee450f796f6c4f3a563c914cb93ccfa91a1f7580",
      "tree": "c89fbb5fa4821cfeb04a62d9c720f95a6d749f95",
      "parents": [
        "66c6af2e8ba55d4d6691c136b42f2423ab9598ec"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 16 14:17:21 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:36 2009 -0400"
      },
      "message": "9P doesn\u0027t need BKL in -\u003eumount_begin()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "66c6af2e8ba55d4d6691c136b42f2423ab9598ec",
      "tree": "6c63cbeadad88136e2b4315720f4a14c021743d3",
      "parents": [
        "fe36adf47eb1f7f4972559efa30ce3d2d3f977f2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 16 14:15:00 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:36 2009 -0400"
      },
      "message": "fuse doesn\u0027t need BKL in -\u003eumount_begin()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fe36adf47eb1f7f4972559efa30ce3d2d3f977f2",
      "tree": "27acbe8377f0d4a0f192daa8943c5289ac3d503d",
      "parents": [
        "b0895513f499b8f786d292ce48589ca210ca1d6e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 16 13:35:01 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:35 2009 -0400"
      },
      "message": "No instance of -\u003ebmap() needs BKL\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b0895513f499b8f786d292ce48589ca210ca1d6e",
      "tree": "e7e7e684f19a930ca029afa08396aa5170e7fb3d",
      "parents": [
        "210ad6aedb332e73167ece5af9bd47f0da8c2aca"
      ],
      "author": {
        "name": "J. R. Okajima",
        "email": "hooanon05@yahoo.co.jp",
        "time": "Wed Jun 17 01:16:50 2009 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:35 2009 -0400"
      },
      "message": "remove unlock_kernel() left accidentally\n\ncommit 337eb00a2c3a421999c39c94ce7e33545ee8baa7\nPush BKL down into -\u003eremount_fs()\nand\ncommit 4aa98cf768b6f2ea4b204620d949a665959214f6\nPush BKL down into do_remount_sb()\n\nwere uncorrectly merged.\nThe former removes one pair of lock/unlock_kernel(), but the latter adds\nseveral unlock_kernel(). Finally a few unlock_kernel() calls left.\n\nSigned-off-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "210ad6aedb332e73167ece5af9bd47f0da8c2aca",
      "tree": "29e463655148987f3bce2510d94e36da7dd07176",
      "parents": [
        "9c64daff9d5afb102dfe64a26829e26725538e58"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 08 15:22:25 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:35 2009 -0400"
      },
      "message": "ext4: avoid unnecessary spinlock in critical POSIX ACL path\n\nIf a filesystem supports POSIX ACL\u0027s, the VFS layer expects the filesystem\nto do POSIX ACL checks on any files not owned by the caller, and it does\nthis for every single pathname component that it looks up.\n\nThat obviously can be pretty expensive if the filesystem isn\u0027t careful\nabout it, especially with locking. That\u0027s doubly sad, since the common\ncase tends to be that there are no ACL\u0027s associated with the files in\nquestion.\n\next4 already caches the ACL data so that it doesn\u0027t have to look it up\nover and over again, but it does so by taking the inode-\u003ei_lock spinlock\non every lookup. Which is a noticeable overhead even if it\u0027s a private\nlock, especially on CPU\u0027s where the serialization is expensive (eg Intel\nNetburst aka \u0027P4\u0027).\n\nFor the special case of not actually having any ACL\u0027s, all that locking is\nunnecessary. Even if somebody else were to be changing the ACL\u0027s on\nanother CPU, we simply don\u0027t care - if we\u0027ve seen a NULL ACL, we might as\nwell use it.\n\nSo just load the ACL speculatively without any locking, and if it was\nNULL, just use it. If it\u0027s non-NULL (either because we had a cached\nentry, or because the cache hasn\u0027t been filled in at all), it means that\nwe\u0027ll need to get the lock and re-load it properly.\n\n(This commit was ported from a patch originally authored by Linus for\next3.)\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9c64daff9d5afb102dfe64a26829e26725538e58",
      "tree": "6af331d16bf2b730716fd932d1747372fdf790a3",
      "parents": [
        "03347e2592078a90df818670fddf97a33eec70fb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 08 15:22:24 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:35 2009 -0400"
      },
      "message": "ext3: avoid unnecessary spinlock in critical POSIX ACL path\n\nIf a filesystem supports POSIX ACL\u0027s, the VFS layer expects the filesystem\nto do POSIX ACL checks on any files not owned by the caller, and it does\nthis for every single pathname component that it looks up.\n\nThat obviously can be pretty expensive if the filesystem isn\u0027t careful\nabout it, especially with locking. That\u0027s doubly sad, since the common\ncase tends to be that there are no ACL\u0027s associated with the files in\nquestion.\n\next3 already caches the ACL data so that it doesn\u0027t have to look it up\nover and over again, but it does so by taking the inode-\u003ei_lock spinlock\non every lookup. Which is a noticeable overhead even if it\u0027s a private\nlock, especially on CPU\u0027s where the serialization is expensive (eg Intel\nNetburst aka \u0027P4\u0027).\n\nFor the special case of not actually having any ACL\u0027s, all that locking is\nunnecessary. Even if somebody else were to be changing the ACL\u0027s on\nanother CPU, we simply don\u0027t care - if we\u0027ve seen a NULL ACL, we might as\nwell use it.\n\nSo just load the ACL speculatively without any locking, and if it was\nNULL, just use it. If it\u0027s non-NULL (either because we had a cached\nentry, or because the cache hasn\u0027t been filled in at all), it means that\nwe\u0027ll need to get the lock and re-load it properly.\n\nThis is noticeable even on Nehalem, which does locking quite well (much\nbetter than P4). From lmbench:\n\n\tProcessor, Processes - times in microseconds - smaller is better\n\t--------------------------------------------------------------------\n\tHost                 OS  Mhz null null      open slct fork exec sh\n\t                             call  I/O stat clos TCP  proc proc proc\n\t--------- ------------- ---- ---- ---- ---- ---- ---- ---- ---- ----\n - before:\n\tnehalem.l Linux 2.6.30- 3193 0.04 0.09 0.95 1.45 2.18 69.1 273. 1141\n\tnehalem.l Linux 2.6.30- 3193 0.04 0.09 0.95 1.48 2.28 69.9 253. 1140\n\tnehalem.l Linux 2.6.30- 3193 0.04 0.10 0.95 1.42 2.19 68.6 284. 1141\n - after:\n\tnehalem.l Linux 2.6.30- 3193 0.04 0.09 0.92 1.44 2.12 68.3 282. 1094\n\tnehalem.l Linux 2.6.30- 3193 0.04 0.09 0.92 1.39 2.20 67.0 308. 1123\n\tnehalem.l Linux 2.6.30- 3193 0.04 0.09 0.92 1.39 2.36 67.4 293. 1148\n\nwhere you can see what appears to be a roughly 3% improvement in stat\nand open/close latencies from just the removal of the locking overhead.\n\nOf course, this only matters for files you don\u0027t own (the owner never\nneeds to do the ACL checks), but that\u0027s the common case for libraries,\nheader files, and executables. As well as for the base components of any\nabsolute pathname, even if you are the owner of the final file.\n\n[ At some point we probably want to move this ACL caching logic entirely\n  into the VFS layer (and only call down to the filesystem when\n  uncached), but in the meantime this improves ext3 a bit.\n\n  A similar fix to btrfs makes a much bigger difference (15x improvement\n  in lmbench) due to broken caching. ]\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "005411c3e9147bc3b78215390e847d688dbbc163",
      "tree": "ed10cb7c73135fbdf7a39798bb0f294e80f987a4",
      "parents": [
        "519d25679e8ae7433c758b9e74b19144f61b90f8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Jun 16 21:36:49 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 21:20:14 2009 -0700"
      },
      "message": "AFS: Correctly translate auth error aborts and don\u0027t failover in such cases\n\nAuthentication error abort codes should be translated to appropriate\nLinux error codes, rather than all being translated to EREMOTEIO - which\nindicates that the server had internal problems.\n\nAdditionally, a server shouldn\u0027t be marked unavailable and the next\nserver tried if an authentication error occurs.  This will quickly make\nall the servers unavailable to the client.  Instead the error should be\nreturned straight to the user.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "517d08699b250021303f9a7cf0d758b6dc0748ed",
      "tree": "5e5b0134c3fffb78fe9d8b1641a64ff28fdd7bbc",
      "parents": [
        "8eeee4e2f04fc551f50c9d9847da2d73d7d33728",
        "a34601c5d84134055782ee031d58d82f5440e918"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:50:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:50:13 2009 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027\n\n* akpm: (182 commits)\n  fbdev: bf54x-lq043fb: use kzalloc over kmalloc/memset\n  fbdev: *bfin*: fix __dev{init,exit} markings\n  fbdev: *bfin*: drop unnecessary calls to memset\n  fbdev: bfin-t350mcqb-fb: drop unused local variables\n  fbdev: blackfin has __raw I/O accessors, so use them in fb.h\n  fbdev: s1d13xxxfb: add accelerated bitblt functions\n  tcx: use standard fields for framebuffer physical address and length\n  fbdev: add support for handoff from firmware to hw framebuffers\n  intelfb: fix a bug when changing video timing\n  fbdev: use framebuffer_release() for freeing fb_info structures\n  radeon: P2G2CLK_ALWAYS_ONb tested twice, should 2nd be P2G2CLK_DAC_ALWAYS_ONb?\n  s3c-fb: CPUFREQ frequency scaling support\n  s3c-fb: fix resource releasing on error during probing\n  carminefb: fix possible access beyond end of carmine_modedb[]\n  acornfb: remove fb_mmap function\n  mb862xxfb: use CONFIG_OF instead of CONFIG_PPC_OF\n  mb862xxfb: restrict compliation of platform driver to PPC\n  Samsung SoC Framebuffer driver: add Alpha Channel support\n  atmel-lcdc: fix pixclock upper bound detection\n  offb: use framebuffer_alloc() to allocate fb_info struct\n  ...\n\nManually fix up conflicts due to kmemcheck in mm/slab.c\n"
    },
    {
      "commit": "69050eee8e08a6234f29fe71a56f8c7c7d4d7186",
      "tree": "1f2b25ff34c8fa04df2a3ac70a5cfc5b145f9f4e",
      "parents": [
        "55e331cf7ebe20665253770589cd9eb06048bf25"
      ],
      "author": {
        "name": "Tomas Szepe",
        "email": "szepe@pinerecords.com",
        "time": "Tue Jun 16 15:33:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:52 2009 -0700"
      },
      "message": "CONFIG_FILE_LOCKING should not depend on CONFIG_BLOCK\n\nCONFIG_FILE_LOCKING should not depend on CONFIG_BLOCK.\n\nThis makes it possible to run complete systems out of a CONFIG_BLOCK\u003dn\ninitramfs on current kernels again (this last worked on 2.6.27.*).\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b0b1db0133e4218a9b45c09e53793c039edebe1",
      "tree": "551ec8a69652b9856cefcf537bdcfd262f356974",
      "parents": [
        "10fc89d01a7ea2ecc2a58d2f4e7700f47178cd62"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 16 15:33:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:48 2009 -0700"
      },
      "message": "remove put_cpu_no_resched()\n\nput_cpu_no_resched() is an optimization of put_cpu() which unfortunately\ncan cause high latencies.\n\nThe nfs iostats code uses put_cpu_no_resched() in a code sequence where a\nreschedule request caused by an interrupt between the get_cpu() and the\nput_cpu_no_resched() can delay the reschedule for at least HZ.\n\nThe other users of put_cpu_no_resched() optimize correctly in interrupt\ncode, but there is no real harm in using the put_cpu() function which is\nan alias for preempt_enable().  The extra check of the preemmpt count is\nnot as critical as the potential source of missing a reschedule.\n\nDebugged in the preempt-rt tree and verified in mainline.\n\nImpact: remove a high latency source\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4938d7e0233a455f04507bac81d0886c71529537",
      "tree": "6e0c6f0e8623ef44270890519f08b98e9db8afee",
      "parents": [
        "02d5341ae53d32681241b27a40397475caef1c83"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Jun 16 15:33:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:48 2009 -0700"
      },
      "message": "poll: avoid extra wakeups in select/poll\n\nAfter introduction of keyed wakeups Davide Libenzi did on epoll, we are\nable to avoid spurious wakeups in poll()/select() code too.\n\nFor example, typical use of poll()/select() is to wait for incoming\nnetwork frames on many sockets.  But TX completion for UDP/TCP frames call\nsock_wfree() which in turn schedules thread.\n\nWhen scheduled, thread does a full scan of all polled fds and can sleep\nagain, because nothing is really available.  If number of fds is large,\nthis cause significant load.\n\nThis patch makes select()/poll() aware of keyed wakeups and useless\nwakeups are avoided.  This reduces number of context switches by about 50%\non some setups, and work performed by sofirq handlers.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02d5341ae53d32681241b27a40397475caef1c83",
      "tree": "2f6712b7fb79be511cd7be430c70be4d8755e78d",
      "parents": [
        "b33112d1cc25e658c334125d127a6ae15d5a0ad6"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Tue Jun 16 15:33:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:48 2009 -0700"
      },
      "message": "ntfs: use is_power_of_2() function for clarity.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nCc: 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": "84a892456046921a40646114deed65e2df93a1bc",
      "tree": "2639b6031e55988b8780960c023618c381d61c55",
      "parents": [
        "81236810226f71bd9ff77321c8e8276dae7efc61"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:33:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:45 2009 -0700"
      },
      "message": "writeback: skip new or to-be-freed inodes\n\n1) I_FREEING tests should be coupled with I_CLEAR\n\nThe two I_FREEING tests are racy because clear_inode() can set i_state to\nI_CLEAR between the clear of I_SYNC and the test of I_FREEING.\n\n2) skip I_WILL_FREE inodes in generic_sync_sb_inodes() to avoid possible\n   races with generic_forget_inode()\n\ngeneric_forget_inode() sets I_WILL_FREE call writeback on its own, so\ngeneric_sync_sb_inodes() shall not try to step in and create possible races:\n\n  generic_forget_inode\n    inode-\u003ei_state |\u003d I_WILL_FREE;\n    spin_unlock(\u0026inode_lock);\n                                       generic_sync_sb_inodes()\n                                         spin_lock(\u0026inode_lock);\n                                         __iget(inode);\n                                         __writeback_single_inode\n                                           // see non zero i_count\n may WARN here \u003d\u003d\u003e                         WARN_ON(inode-\u003ei_state \u0026 I_WILL_FREE);\n                                         spin_unlock(\u0026inode_lock);\n may call generic_forget_inode again \u003d\u003d\u003e iput(inode);\n\nThe above race and warning didn\u0027t turn up because writeback_inodes() holds\nthe s_umount lock, so generic_forget_inode() finds MS_ACTIVE and returns\nearly.  But we are not sure the UBIFS calls and future callers will\nguarantee that.  So skip I_WILL_FREE inodes for the sake of safety.\n\nCc: Eric Sandeen \u003csandeen@sandeen.net\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Masayoshi MIZUMA \u003cm.mizuma@jp.fujitsu.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Artem Bityutskiy \u003cdedekind1@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\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": "286973552f051404abdb58dd9b2f8f7558efe4e5",
      "tree": "462cca28bdab729a09371ba6a53e0365cf36ad57",
      "parents": [
        "82553a937f12352c26fe457510ebab3f512cd3fa"
      ],
      "author": {
        "name": "Mike Waychison",
        "email": "mikew@google.com",
        "time": "Tue Jun 16 15:32:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:43 2009 -0700"
      },
      "message": "mm: remove __invalidate_mapping_pages variant\n\nRemove __invalidate_mapping_pages atomic variant now that its sole caller\ncan sleep (fixed in eccb95cee4f0d56faa46ef22fb94dd4a3578d3eb (\"vfs: fix\nlock inversion in drop_pagecache_sb()\")).\n\nThis fixes softlockups that can occur while in the drop_caches path.\n\nSigned-off-by: Mike Waychison \u003cmikew@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ff05b2b4eac2e63d345fc731ea151a060247f53",
      "tree": "1840bc2d3b381eca5d39869499339b0fcc6eabbf",
      "parents": [
        "c9e444103b5e7a5a3519f9913f59767f92e33baf"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jun 16 15:32:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:43 2009 -0700"
      },
      "message": "oom: move oom_adj value from task_struct to mm_struct\n\nThe per-task oom_adj value is a characteristic of its mm more than the\ntask itself since it\u0027s not possible to oom kill any thread that shares the\nmm.  If a task were to be killed while attached to an mm that could not be\nfreed because another thread were set to OOM_DISABLE, it would have\nneedlessly been terminated since there is no potential for future memory\nfreeing.\n\nThis patch moves oomkilladj (now more appropriately named oom_adj) from\nstruct task_struct to struct mm_struct.  This requires task_lock() on a\ntask to check its oom_adj value to protect against exec, but it\u0027s already\nnecessary to take the lock when dereferencing the mm to find the total VM\nsize for the badness heuristic.\n\nThis fixes a livelock if the oom killer chooses a task and another thread\nsharing the same memory has an oom_adj value of OOM_DISABLE.  This occurs\nbecause oom_kill_task() repeatedly returns 1 and refuses to kill the\nchosen task while select_bad_process() will repeatedly choose the same\ntask during the next retry.\n\nTaking task_lock() in select_bad_process() to check for OOM_DISABLE and in\noom_kill_task() to check for threads sharing the same memory will be\nremoved in the next patch in this series where it will no longer be\nnecessary.\n\nWriting to /proc/pid/oom_adj for a kthread will now return -EINVAL since\nthese threads are immune from oom killing already.  They simply report an\noom_adj value of OOM_DISABLE.\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6837765963f1723e80ca97b1fae660f3a60d77df",
      "tree": "a9a6ed4b7e3bf188966da78b04bf39298f24375a",
      "parents": [
        "bce7394a3ef82b8477952fbab838e4a6e8cb47d2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jun 16 15:32:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:42 2009 -0700"
      },
      "message": "mm: remove CONFIG_UNEVICTABLE_LRU config option\n\nCurrently, nobody wants to turn UNEVICTABLE_LRU off.  Thus this\nconfigurability is unnecessary.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nAcked-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "177975495914efb372f7edee28ba9a0fdb754149",
      "tree": "d26a09871ee7b250a5c96e323cc4d5245e35eeff",
      "parents": [
        "ed7ce0f1022942301776f93159c981b09382ddea"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:38 2009 -0700"
      },
      "message": "proc: export more page flags in /proc/kpageflags\n\nExport all page flags faithfully in /proc/kpageflags.\n\n\t11. KPF_MMAP\t\t(pseudo flag) memory mapped page\n\t12. KPF_ANON\t\t(pseudo flag) memory mapped page (anonymous)\n\t13. KPF_SWAPCACHE\tpage is in swap cache\n\t14. KPF_SWAPBACKED\tpage is swap/RAM backed\n\t15. KPF_COMPOUND_HEAD\t(*)\n\t16. KPF_COMPOUND_TAIL\t(*)\n\t17. KPF_HUGE\t\thugeTLB pages\n\t18. KPF_UNEVICTABLE\tpage is in the unevictable LRU list\n\t19. KPF_HWPOISON(TBD)\thardware detected corruption\n\t20. KPF_NOPAGE\t\t(pseudo flag) no page frame at the address\n\t32-39.\t\t\tmore obscure flags for kernel developers\n\n\t(*) For compound pages, exporting _both_ head/tail info enables\n\t    users to tell where a compound page starts/ends, and its order.\n\nThe accompanying page-types tool will handle the details like decoupling\noverloaded flags and hiding obscure flags to normal users.\n\nThanks to KOSAKI and Andi for their valuable recommendations!\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed7ce0f1022942301776f93159c981b09382ddea",
      "tree": "d81e98a13f6a10e6c258aa0f2bec990da40c5ac2",
      "parents": [
        "20a0307c0396c2edb651401d2f2db193dda2f3c9"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:36 2009 -0700"
      },
      "message": "proc: kpagecount/kpageflags code cleanup\n\nMove increments of pfn/out to bottom of the loop.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20a0307c0396c2edb651401d2f2db193dda2f3c9",
      "tree": "408fde4bf84223757f5dd150e401e8d9d9df5d36",
      "parents": [
        "a1dd268cf6306565a31a48deff8bf4f6b4b105f7"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:36 2009 -0700"
      },
      "message": "mm: introduce PageHuge() for testing huge/gigantic pages\n\nA series of patches to enhance the /proc/pagemap interface and to add a\nuserspace executable which can be used to present the pagemap data.\n\nExport 10 more flags to end users (and more for kernel developers):\n\n        11. KPF_MMAP            (pseudo flag) memory mapped page\n        12. KPF_ANON            (pseudo flag) memory mapped page (anonymous)\n        13. KPF_SWAPCACHE       page is in swap cache\n        14. KPF_SWAPBACKED      page is swap/RAM backed\n        15. KPF_COMPOUND_HEAD   (*)\n        16. KPF_COMPOUND_TAIL   (*)\n        17. KPF_HUGE\t\thugeTLB pages\n        18. KPF_UNEVICTABLE     page is in the unevictable LRU list\n        19. KPF_HWPOISON        hardware detected corruption\n        20. KPF_NOPAGE          (pseudo flag) no page frame at the address\n\n        (*) For compound pages, exporting _both_ head/tail info enables\n            users to tell where a compound page starts/ends, and its order.\n\na simple demo of the page-types tool\n\n# ./page-types -h\npage-types [options]\n            -r|--raw                  Raw mode, for kernel developers\n            -a|--addr    addr-spec    Walk a range of pages\n            -b|--bits    bits-spec    Walk pages with specified bits\n            -l|--list                 Show page details in ranges\n            -L|--list-each            Show page details one by one\n            -N|--no-summary           Don\u0027t show summay info\n            -h|--help                 Show this usage message\naddr-spec:\n            N                         one page at offset N (unit: pages)\n            N+M                       pages range from N to N+M-1\n            N,M                       pages range from N to M-1\n            N,                        pages range from N to end\n            ,M                        pages range from 0 to M\nbits-spec:\n            bit1,bit2                 (flags \u0026 (bit1|bit2)) !\u003d 0\n            bit1,bit2\u003dbit1            (flags \u0026 (bit1|bit2)) \u003d\u003d bit1\n            bit1,~bit2                (flags \u0026 (bit1|bit2)) \u003d\u003d bit1\n            \u003dbit1,bit2                flags \u003d\u003d (bit1|bit2)\nbit-names:\n          locked              error         referenced           uptodate\n           dirty                lru             active               slab\n       writeback            reclaim              buddy               mmap\n       anonymous          swapcache         swapbacked      compound_head\n   compound_tail               huge        unevictable           hwpoison\n          nopage           reserved(r)         mlocked(r)    mappedtodisk(r)\n         private(r)       private_2(r)   owner_private(r)            arch(r)\n        uncached(r)       readahead(o)       slob_free(o)     slub_frozen(o)\n      slub_debug(o)\n                                   (r) raw mode bits  (o) overloaded bits\n\n# ./page-types\n             flags      page-count       MB  symbolic-flags                     long-symbolic-flags\n0x0000000000000000          487369     1903  _________________________________\n0x0000000000000014               5        0  __R_D____________________________  referenced,dirty\n0x0000000000000020               1        0  _____l___________________________  lru\n0x0000000000000024              34        0  __R__l___________________________  referenced,lru\n0x0000000000000028            3838       14  ___U_l___________________________  uptodate,lru\n0x0001000000000028              48        0  ___U_l_______________________I___  uptodate,lru,readahead\n0x000000000000002c            6478       25  __RU_l___________________________  referenced,uptodate,lru\n0x000100000000002c              47        0  __RU_l_______________________I___  referenced,uptodate,lru,readahead\n0x0000000000000040            8344       32  ______A__________________________  active\n0x0000000000000060               1        0  _____lA__________________________  lru,active\n0x0000000000000068             348        1  ___U_lA__________________________  uptodate,lru,active\n0x0001000000000068              12        0  ___U_lA______________________I___  uptodate,lru,active,readahead\n0x000000000000006c             988        3  __RU_lA__________________________  referenced,uptodate,lru,active\n0x000100000000006c              48        0  __RU_lA______________________I___  referenced,uptodate,lru,active,readahead\n0x0000000000004078               1        0  ___UDlA_______b__________________  uptodate,dirty,lru,active,swapbacked\n0x000000000000407c              34        0  __RUDlA_______b__________________  referenced,uptodate,dirty,lru,active,swapbacked\n0x0000000000000400             503        1  __________B______________________  buddy\n0x0000000000000804               1        0  __R________M_____________________  referenced,mmap\n0x0000000000000828            1029        4  ___U_l_____M_____________________  uptodate,lru,mmap\n0x0001000000000828              43        0  ___U_l_____M_________________I___  uptodate,lru,mmap,readahead\n0x000000000000082c             382        1  __RU_l_____M_____________________  referenced,uptodate,lru,mmap\n0x000100000000082c              12        0  __RU_l_____M_________________I___  referenced,uptodate,lru,mmap,readahead\n0x0000000000000868             192        0  ___U_lA____M_____________________  uptodate,lru,active,mmap\n0x0001000000000868              12        0  ___U_lA____M_________________I___  uptodate,lru,active,mmap,readahead\n0x000000000000086c             800        3  __RU_lA____M_____________________  referenced,uptodate,lru,active,mmap\n0x000100000000086c              31        0  __RU_lA____M_________________I___  referenced,uptodate,lru,active,mmap,readahead\n0x0000000000004878               2        0  ___UDlA____M__b__________________  uptodate,dirty,lru,active,mmap,swapbacked\n0x0000000000001000             492        1  ____________a____________________  anonymous\n0x0000000000005808               4        0  ___U_______Ma_b__________________  uptodate,mmap,anonymous,swapbacked\n0x0000000000005868            2839       11  ___U_lA____Ma_b__________________  uptodate,lru,active,mmap,anonymous,swapbacked\n0x000000000000586c              30        0  __RU_lA____Ma_b__________________  referenced,uptodate,lru,active,mmap,anonymous,swapbacked\n             total          513968     2007\n\n# ./page-types -r\n             flags      page-count       MB  symbolic-flags                     long-symbolic-flags\n0x0000000000000000          468002     1828  _________________________________\n0x0000000100000000           19102       74  _____________________r___________  reserved\n0x0000000000008000              41        0  _______________H_________________  compound_head\n0x0000000000010000             188        0  ________________T________________  compound_tail\n0x0000000000008014               1        0  __R_D__________H_________________  referenced,dirty,compound_head\n0x0000000000010014               4        0  __R_D___________T________________  referenced,dirty,compound_tail\n0x0000000000000020               1        0  _____l___________________________  lru\n0x0000000800000024              34        0  __R__l__________________P________  referenced,lru,private\n0x0000000000000028            3794       14  ___U_l___________________________  uptodate,lru\n0x0001000000000028              46        0  ___U_l_______________________I___  uptodate,lru,readahead\n0x0000000400000028              44        0  ___U_l_________________d_________  uptodate,lru,mappedtodisk\n0x0001000400000028               2        0  ___U_l_________________d_____I___  uptodate,lru,mappedtodisk,readahead\n0x000000000000002c            6434       25  __RU_l___________________________  referenced,uptodate,lru\n0x000100000000002c              47        0  __RU_l_______________________I___  referenced,uptodate,lru,readahead\n0x000000040000002c              14        0  __RU_l_________________d_________  referenced,uptodate,lru,mappedtodisk\n0x000000080000002c              30        0  __RU_l__________________P________  referenced,uptodate,lru,private\n0x0000000800000040            8124       31  ______A_________________P________  active,private\n0x0000000000000040             219        0  ______A__________________________  active\n0x0000000800000060               1        0  _____lA_________________P________  lru,active,private\n0x0000000000000068             322        1  ___U_lA__________________________  uptodate,lru,active\n0x0001000000000068              12        0  ___U_lA______________________I___  uptodate,lru,active,readahead\n0x0000000400000068              13        0  ___U_lA________________d_________  uptodate,lru,active,mappedtodisk\n0x0000000800000068              12        0  ___U_lA_________________P________  uptodate,lru,active,private\n0x000000000000006c             977        3  __RU_lA__________________________  referenced,uptodate,lru,active\n0x000100000000006c              48        0  __RU_lA______________________I___  referenced,uptodate,lru,active,readahead\n0x000000040000006c               5        0  __RU_lA________________d_________  referenced,uptodate,lru,active,mappedtodisk\n0x000000080000006c               3        0  __RU_lA_________________P________  referenced,uptodate,lru,active,private\n0x0000000c0000006c               3        0  __RU_lA________________dP________  referenced,uptodate,lru,active,mappedtodisk,private\n0x0000000c00000068               1        0  ___U_lA________________dP________  uptodate,lru,active,mappedtodisk,private\n0x0000000000004078               1        0  ___UDlA_______b__________________  uptodate,dirty,lru,active,swapbacked\n0x000000000000407c              34        0  __RUDlA_______b__________________  referenced,uptodate,dirty,lru,active,swapbacked\n0x0000000000000400             538        2  __________B______________________  buddy\n0x0000000000000804               1        0  __R________M_____________________  referenced,mmap\n0x0000000000000828            1029        4  ___U_l_____M_____________________  uptodate,lru,mmap\n0x0001000000000828              43        0  ___U_l_____M_________________I___  uptodate,lru,mmap,readahead\n0x000000000000082c             382        1  __RU_l_____M_____________________  referenced,uptodate,lru,mmap\n0x000100000000082c              12        0  __RU_l_____M_________________I___  referenced,uptodate,lru,mmap,readahead\n0x0000000000000868             192        0  ___U_lA____M_____________________  uptodate,lru,active,mmap\n0x0001000000000868              12        0  ___U_lA____M_________________I___  uptodate,lru,active,mmap,readahead\n0x000000000000086c             800        3  __RU_lA____M_____________________  referenced,uptodate,lru,active,mmap\n0x000100000000086c              31        0  __RU_lA____M_________________I___  referenced,uptodate,lru,active,mmap,readahead\n0x0000000000004878               2        0  ___UDlA____M__b__________________  uptodate,dirty,lru,active,mmap,swapbacked\n0x0000000000001000             492        1  ____________a____________________  anonymous\n0x0000000000005008               2        0  ___U________a_b__________________  uptodate,anonymous,swapbacked\n0x0000000000005808               4        0  ___U_______Ma_b__________________  uptodate,mmap,anonymous,swapbacked\n0x000000000000580c               1        0  __RU_______Ma_b__________________  referenced,uptodate,mmap,anonymous,swapbacked\n0x0000000000005868            2839       11  ___U_lA____Ma_b__________________  uptodate,lru,active,mmap,anonymous,swapbacked\n0x000000000000586c              29        0  __RU_lA____Ma_b__________________  referenced,uptodate,lru,active,mmap,anonymous,swapbacked\n             total          513968     2007\n\n# ./page-types --raw --list --no-summary --bits reserved\noffset  count   flags\n0       15      _____________________r___________\n31      4       _____________________r___________\n159     97      _____________________r___________\n4096    2067    _____________________r___________\n6752    2390    _____________________r___________\n9355    3       _____________________r___________\n9728    14526   _____________________r___________\n\nThis patch:\n\nIntroduce PageHuge(), which identifies huge/gigantic pages by their\ndedicated compound destructor functions.\n\nAlso move prep_compound_gigantic_page() to hugetlb.c and make\n__free_pages_ok() non-static.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8eeee4e2f04fc551f50c9d9847da2d73d7d33728",
      "tree": "c5b7a2c9b912369c82506f8363b8eb10538f5d8e",
      "parents": [
        "f83b1e616f2f68b56b09b2f5116591981fee0c1c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 00:27:10 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 15:36:17 2009 -0700"
      },
      "message": "send_sigio_to_task: sanitize the usage of fown-\u003esignum\n\nsend_sigio_to_task() reads fown-\u003esignum several times, we can race with\nF_SETSIG which changes -\u003esignum lockless.  In theory, this can fool\nsecurity checks or we can call group_send_sig_info() with the wrong\n-\u003esi_signo which does not match \"int sig\".\n\nChange the code to cache -\u003esignum.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f38d70fb4e97e7d00e12eaac45790cf6ebd7b22",
      "tree": "393a604669640635a33c1db179bd053d8b923252",
      "parents": [
        "b3fec0fe35a4ff048484f1408385a27695d4273b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jun 16 22:07:46 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 14:19:00 2009 -0700"
      },
      "message": "shift current_cred() from __f_setown() to f_modown()\n\nShift current_cred() from __f_setown() to f_modown(). This reduces\nthe number of arguments and saves 48 bytes from fs/fcntl.o.\n\n[ Note: this doesn\u0027t clear euid/uid when pid is set to NULL.  But if\n  f_owner.pid \u003d\u003d NULL we never use f_owner.uid/euid.  Otherwise we\u0027d\n  have a bug anyway: we must not send signals if pid was reset to NULL.  ]\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1f5b94fd0c93c3e27ede88b7ab652d086dc960f",
      "tree": "e8de7a132eb88521dd1c19e128eba2d5349bdf4f",
      "parents": [
        "6fd03301d76bc439382710e449f58efbb233df1b",
        "1b6ed69f974f6f32c8be0d9a7fc952822eb83b6f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 13:06:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 13:06:10 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (143 commits)\n  USB: xhci depends on PCI.\n  USB: xhci: Add Makefile, MAINTAINERS, and Kconfig entries.\n  USB: xhci: Respect critical sections.\n  USB: xHCI: Fix interrupt moderation.\n  USB: xhci: Remove packed attribute from structures.\n  usb; xhci: Fix TRB offset calculations.\n  USB: xhci: replace if-elseif-else with switch-case\n  USB: xhci: Make xhci-mem.c include linux/dmapool.h\n  USB: xhci: drop spinlock in xhci_urb_enqueue() error path.\n  USB: Change names of SuperSpeed ep companion descriptor structs.\n  USB: xhci: Avoid compiler reordering in Link TRB giveback.\n  USB: xhci: Clean up xhci_irq() function.\n  USB: xhci: Avoid global namespace pollution.\n  USB: xhci: Fix Link TRB handoff bit twiddling.\n  USB: xhci: Fix register write order.\n  USB: xhci: fix some compiler warnings in xhci.h\n  USB: xhci: fix lots of compiler warnings.\n  USB: xhci: use xhci_handle_event instead of handle_event\n  USB: xhci: URB cancellation support.\n  USB: xhci: Scatter gather list support for bulk transfers.\n  ...\n"
    },
    {
      "commit": "6fd03301d76bc439382710e449f58efbb233df1b",
      "tree": "3c8a3217aed67319683ffc1debccdb5b3245b16c",
      "parents": [
        "cd5232bd6be2d215a800f3d88c287ca791debfbe",
        "e4792aa30f9d33584d7192685ed149cc5fee737f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 12:57:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 12:57:37 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (64 commits)\n  debugfs: use specified mode to possibly mark files read/write only\n  debugfs: Fix terminology inconsistency of dir name to mount debugfs filesystem.\n  xen: remove driver_data direct access of struct device from more drivers\n  usb: gadget: at91_udc: remove driver_data direct access of struct device\n  uml: remove driver_data direct access of struct device\n  block/ps3: remove driver_data direct access of struct device\n  s390: remove driver_data direct access of struct device\n  parport: remove driver_data direct access of struct device\n  parisc: remove driver_data direct access of struct device\n  of_serial: remove driver_data direct access of struct device\n  mips: remove driver_data direct access of struct device\n  ipmi: remove driver_data direct access of struct device\n  infiniband: ehca: remove driver_data direct access of struct device\n  ibmvscsi: gadget: at91_udc: remove driver_data direct access of struct device\n  hvcs: remove driver_data direct access of struct device\n  xen block: remove driver_data direct access of struct device\n  thermal: remove driver_data direct access of struct device\n  scsi: remove driver_data direct access of struct device\n  pcmcia: remove driver_data direct access of struct device\n  PCIE: remove driver_data direct access of struct device\n  ...\n\nManually fix up trivial conflicts due to different direct driver_data\ndirect access fixups in drivers/block/{ps3disk.c,ps3vram.c}\n"
    },
    {
      "commit": "cd5232bd6be2d215a800f3d88c287ca791debfbe",
      "tree": "7a91e7d4bc5312cc61e7003abd383d8de1f0f9aa",
      "parents": [
        "300df7dc89cc276377fc020704e34875d5c473b6",
        "f7c52fd17a7dda42fc9e88c2b2678403419bfe63"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 12:23:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 12:23:52 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6:\n  jfs: fix regression preventing coalescing of extents\n"
    },
    {
      "commit": "300df7dc89cc276377fc020704e34875d5c473b6",
      "tree": "6b280000815b0562255cecf3da1a8c9597bce702",
      "parents": [
        "661adc423d70203a56723701aaf255e16950dfdb",
        "9af0b38ff3f4f79c62dd909405b113bf7c1a23aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 12:11:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 12:11:57 2009 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:\n  ocfs2/net: Use wait_event() in o2net_send_message_vec()\n  ocfs2: Adjust rightmost path in ocfs2_add_branch.\n  ocfs2: fdatasync should skip unimportant metadata writeout\n  ocfs2: Remove redundant gotos in ocfs2_mount_volume()\n  ocfs2: Add statistics for the checksum and ecc operations.\n  ocfs2 patch to track delayed orphan scan timer statistics\n  ocfs2: timer to queue scan of all orphan slots\n  ocfs2: Correct ordering of ip_alloc_sem and localloc locks for directories\n  ocfs2: Fix possible deadlock in quota recovery\n  ocfs2: Fix possible deadlock with quotas in ocfs2_setattr()\n  ocfs2: Fix lock inversion in ocfs2_local_read_info()\n  ocfs2: Fix possible deadlock in ocfs2_global_read_dquot()\n  ocfs2: update comments in masklog.h\n  ocfs2: Don\u0027t printk the error when listing too many xattrs.\n"
    },
    {
      "commit": "d613839ef987d20f7c9347732b452efd921b97d9",
      "tree": "5998f460596d8dca129d0f116add8f9abddfad38",
      "parents": [
        "609106b9ac968adbc76ce78c979fc3903a56e16c",
        "e212d6f25084e8e9b02a04ba514d7bb1e4a4924a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 11:46:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 11:46:45 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: remove some includings of blktrace_api.h\n  mg_disk: seperate mg_disk.h again\n  block: Introduce helper to reset queue limits to default values\n  cfq: remove extraneous \u0027\\n\u0027 in blktrace output\n  ubifs: register backing_dev_info\n  btrfs: properly register fs backing device\n  block: don\u0027t overwrite bdi-\u003estate after bdi_init() has been run\n  cfq: cleanup for last_end_request in cfq_data\n"
    },
    {
      "commit": "f7c52fd17a7dda42fc9e88c2b2678403419bfe63",
      "tree": "51164a3c40bcee5cc43682e945bd7b773a784bc3",
      "parents": [
        "a525890cb6a2949b644d212ae290b658967d3919"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@linux.vnet.ibm.com",
        "time": "Tue Jun 16 13:43:22 2009 -0500"
      },
      "committer": {
        "name": "Dave Kleikamp",
        "email": "shaggy@linux.vnet.ibm.com",
        "time": "Tue Jun 16 13:43:22 2009 -0500"
      },
      "message": "jfs: fix regression preventing coalescing of extents\n\nCommit fec1878fe952b994125a3be7c94b1322db586f3b caused a regression in\nwhich contiguous blocks being allocated to the end of an extent were\ngetting a new extent created.  This typically results in files entirely\nmade up of 1-block extents even though the blocks are contiguous on\ndisk.\n\nApparently grub doesn\u0027t handle a jfs file being fragmented into too many\nextents, since it refuses to boot a kernel from jfs that was created by\nthe 2.6.30 kernel.\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nReported-by: Alex \u003calevkovich@tut.by\u003e\n"
    },
    {
      "commit": "69257cae20640a396f03aa0bf169b815ba66a58a",
      "tree": "7aa7d5fde623e6be4a03ce11277adbb492e5e2a6",
      "parents": [
        "23059a0df5fad3d83b9a21fc2696a39148f49617",
        "978d910d31c5202e251298bf3f603300a54605dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 11:30:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 11:30:16 2009 -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:\n  Btrfs: always update root items for fs trees at commit time\n"
    },
    {
      "commit": "23059a0df5fad3d83b9a21fc2696a39148f49617",
      "tree": "c23275fb1d4f6b4990d38c01344770c2d10f8e71",
      "parents": [
        "4858704da75ba84ce21e6d4b3b974e8b8594c9f2",
        "21bea495943f9532f16e819066b340762124f5dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 11:29:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 11:29:44 2009 -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: split fat_generic_ioctl\n  FAT: add \u0027errors\u0027 mount option\n"
    },
    {
      "commit": "e212d6f25084e8e9b02a04ba514d7bb1e4a4924a",
      "tree": "a94638953a7aa7f0bbd6f5d08fa3c649ce0ef8ce",
      "parents": [
        "5ced504b1bd1979378de35c56aa5d3d79fb5033f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jun 16 11:19:36 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 16 11:19:36 2009 +0200"
      },
      "message": "block: remove some includings of blktrace_api.h\n\nWhen porting blktrace to tracepoints, we changed to trace/block.h\nfor trace prober declarations.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a979eff1811a07f5fd331c5f6f727370747b42ad",
      "tree": "0d01a02a3ad0ca590570feefc0e9be834b330b74",
      "parents": [
        "ad081f1430515d0b727eba99ec435a526c61a599"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 29 09:19:23 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 16 08:21:04 2009 +0200"
      },
      "message": "ubifs: register backing_dev_info\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ad081f1430515d0b727eba99ec435a526c61a599",
      "tree": "0d76c5feb597d6b8d062699e48f695e17ce9223a",
      "parents": [
        "0989a025d2f4f9f51ea641bd26c563c53dc63f55"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 12 14:43:40 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 16 08:21:03 2009 +0200"
      },
      "message": "btrfs: properly register fs backing device\n\nbtrfs assigns this bdi to all inodes on that file system, so make\nsure it\u0027s registered. This isn\u0027t really important now, but will be\nwhen we put dirty inodes there. Even now, we miss the stats when the\nbdi isn\u0027t visible.\n\nAlso fixes failure to check bdi_init() return value, and bad inherit of\n-\u003ecapabilities flags from the default bdi.\n\nAcked-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "74675a58507e769beee7d949dbed788af3c4139d",
      "tree": "d4ae3cc06dbfadecf1eaf6ed0aef249fc87b07e6",
      "parents": [
        "a853a3d4eb2edb066248a39f0634f6f5858816a0"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Apr 30 10:08:18 2009 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:44:43 2009 -0700"
      },
      "message": "NLS: update handling of Unicode\n\nThis patch (as1239) updates the kernel\u0027s treatment of Unicode.  The\ncharacter-set conversion routines are well behind the current state of\nthe Unicode specification: They don\u0027t recognize the existence of code\npoints beyond plane 0 or of surrogate pairs in the UTF-16 encoding.\n\nThe old wchar_t 16-bit type is retained because it\u0027s still used in\nlots of places.  This shouldn\u0027t cause any new problems; if a\nconversion now results in an invalid 16-bit code then before it must\nhave yielded an undefined code.\n\nDifficult-to-read names like \"utf_mbstowcs\" are replaced with more\ntransparent names like \"utf8s_to_utf16s\" and the ordering of the\nparameters is rationalized (buffer lengths come immediate after the\npointers they refer to, and the inputs precede the outputs).\nFortunately the low-level conversion routines are used in only a few\nplaces; the interfaces to the higher-level uni2char and char2uni\nmethods have been left unchanged.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "905c02acbd89f427c87a6d0a50fed757f6b3001c",
      "tree": "a4844dac7cd7bbce34ab33295eaa402d996e9b48",
      "parents": [
        "e27ecdd94d81e5bc3d1f68591701db5adb342f0d"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Fri Apr 24 10:11:56 2009 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:44:43 2009 -0700"
      },
      "message": "nls: utf8_wcstombs: fix buffer overflow\n\nutf8_wcstombs forgot to include one-byte UTF-8 characters when\ncalculating the output buffer size, i.e., theoretically, it was possible\nto overflow the output buffer with an input string that contains enough\nASCII characters.\n\nIn practice, this was no problem because the only user so far (VFAT)\nalways uses a big enough output buffer.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e27ecdd94d81e5bc3d1f68591701db5adb342f0d",
      "tree": "f053d06177c18796c6d09fd42765d262f9462c92",
      "parents": [
        "97d7b7a41bd462abceee7dbb2b3afacfd52438ed"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Fri Apr 24 10:11:40 2009 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:44:43 2009 -0700"
      },
      "message": "nls: utf8_wcstombs: use correct buffer size in error case\n\nWhen utf8_wcstombs encounters a character that cannot be encoded, we\nmust not decrease the remaining output buffer size because nothing has\nbeen written to the output buffer.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e4792aa30f9d33584d7192685ed149cc5fee737f",
      "tree": "45fa5363a7e7fd21fc0e28100b9d6ef807dd8598",
      "parents": [
        "156f5a7801195fa2ce44aeeb62d6cf8468f3332a"
      ],
      "author": {
        "name": "Robin Getz",
        "email": "rgetz@blackfin.uclinux.org",
        "time": "Tue Jun 02 03:00:47 2009 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:30:28 2009 -0700"
      },
      "message": "debugfs: use specified mode to possibly mark files read/write only\n\nIn many SoC implementations there are hardware registers can be read or\nwrite only.  This extends the debugfs to enforce the file permissions for\nthese types of registers by providing a set of fops which are read or\nwrite only.  This assumes that the kernel developer knows more about the\nhardware than the user (even root users) -- which is normally true.\n\nSigned-off-by: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "400ced61fa4914457d7e0a38e7c0fc6fd208694b",
      "tree": "1416a2f63ea4a12431b6e276bc47b543add3f719",
      "parents": [
        "9227c47bbdd87f276e08ed17877cc1649f5ed10a"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon May 25 10:15:27 2009 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:30:24 2009 -0700"
      },
      "message": "debugfs: fix docbook error\n\nFix an error in debugfs_create_blob\u0027s docbook description\n\nIt cannot actually be used to write a binary blob.\n\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n\n"
    },
    {
      "commit": "56a83cc92991ed5bf76e224dd2ad53b5e9c00681",
      "tree": "5d786c4685ea40b2418dfab6896d461585f73d8e",
      "parents": [
        "c0afe7ba5e71d8ab66bc42f90b3e237581d3c509"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Apr 25 00:39:40 2009 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:30:24 2009 -0700"
      },
      "message": "debugfs: dont stop on first failed recursive delete\n\ndebugfs: dont stop on first failed recursive delete\n\nWhile running a while loop of removing a module that removes a debugfs\ndirectory with debugfs_remove_recursive, and at the same time doing a\nwhile loop of cat of a file in that directory, I would hit a point where\nsomehow the cat of the file caused the remove to fail.\n\nThe result is that other files did not get removed when the module\nwas removed. I simple read of one of those file can oops the kernel\nbecause the operations to the file no longer exist (removed by module).\n\nThe funny thing is that the file being cat\u0027ed was removed. It was\nthe siblings that were not. I see in the code to debugfs_remove_recursive\nthere\u0027s a test that checks if the child fails to bail out of the loop\nto prevent an infinite loop.\n\nWhat this patch does is to still try any siblings in that directory.\nIf all the siblings fail, or there are no more siblings, then we exit\nthe loop.\n\nThis fixes the above symptom, but...\n\nThis is no full proof. It makes the debugfs_remove_recursive a bit more\nrobust, but it does not explain why the one file failed. There may\nbe some kind of delay deletion that makes the debugfs think it did\nnot succeed. So this patch is more of a fix for the symptom but not\nthe disease.\n\nThis patch still makes the debugfs_remove_recursive more robust and\nuntil I can find out why the bug exists, this patch will keep\nthe kernel from oopsing in most cases.  Even after the cause is found\nI think this change can stand on its own and should be kept.\n\n[ Impact: prevent kernel oops on module unload and reading debugfs files ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "557411eb2ce61ef5e87bd759a6f86881586df857",
      "tree": "4410ea3f6aea26157da3634b7c2c4cb9166d0fb7",
      "parents": [
        "b22813b373749d0878e7140e9a6eadf182298709"
      ],
      "author": {
        "name": "Armin Kuster",
        "email": "akuster@mvista.com",
        "time": "Wed Apr 29 07:29:59 2009 -1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:30:23 2009 -0700"
      },
      "message": "Sysfs: fix possible memleak in sysfs_follow_link\n\nThere is the possiblity of a memory leak if a page is allocated and if\nsysfs_getlink() fails in the sysfs_follow_link.\n\nSigned-off-by: Armin Kuster \u003cakuster@mvista.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "978d910d31c5202e251298bf3f603300a54605dd",
      "tree": "69a5c7a2f1fac9b98dcc3bc95d9214686d487f16",
      "parents": [
        "b263c2c8bf13c273485bd99dbbeba79c844409dd"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Mon Jun 15 20:01:02 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jun 15 20:01:02 2009 -0400"
      },
      "message": "Btrfs: always update root items for fs trees at commit time\n\ncommit_fs_roots skips updating root items for fs trees that aren\u0027t modified.\nThis is unsafe now that relocation code modifies root item\u0027s last_snapshot\nfield without modifying corresponding fs tree.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9af0b38ff3f4f79c62dd909405b113bf7c1a23aa",
      "tree": "9e0071a36969f435d784483f9902e498725dd875",
      "parents": [
        "6b791bcc8b2ae21daf95d18cff2f1eca7a64c9a5"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Jun 11 11:02:03 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jun 15 14:50:14 2009 -0700"
      },
      "message": "ocfs2/net: Use wait_event() in o2net_send_message_vec()\n\nReplace wait_event_interruptible() with wait_event() in o2net_send_message_vec().\nThis is because this function is called by the dlm that expects signals to be\nblocked.\n\nFixes oss bugzilla#1126\nhttp://oss.oracle.com/bugzilla/show_bug.cgi?id\u003d1126\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "6b791bcc8b2ae21daf95d18cff2f1eca7a64c9a5",
      "tree": "2ac02c2a17984bfdebebdbb07eb595b35668bca3",
      "parents": [
        "e04cc15f52eb072937cec2bbd8499f37afe5e1ef"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Jun 12 14:18:36 2009 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jun 15 14:49:43 2009 -0700"
      },
      "message": "ocfs2: Adjust rightmost path in ocfs2_add_branch.\n\nIn ocfs2_add_branch, we use the rightmost rec of the leaf extent block\nto generate the e_cpos for the newly added branch. In the most case, it\nis OK but if the parent extent block\u0027s rightmost rec covers more clusters\nthan the leaf does, it will cause kernel panic if we insert some clusters\nin it. The message is something like:\n(7445,1):ocfs2_insert_at_leaf:3775 ERROR: bug expression:\nle16_to_cpu(el-\u003el_next_free_rec) \u003e\u003d le16_to_cpu(el-\u003el_count)\n(7445,1):ocfs2_insert_at_leaf:3775 ERROR: inode 66053, depth 0, count 28,\nnext free 28, rec.cpos 270, rec.clusters 1, insert.cpos 275, insert.clusters 1\n [\u003cfa7ad565\u003e] ? ocfs2_do_insert_extent+0xb58/0xda0 [ocfs2]\n [\u003cfa7b08f2\u003e] ? ocfs2_insert_extent+0x5bd/0x6ba [ocfs2]\n [\u003cfa7b1b8b\u003e] ? ocfs2_add_clusters_in_btree+0x37f/0x564 [ocfs2]\n...\n\nThe panic can be easily reproduced by the following small test case\n(with bs\u003d512, cs\u003d4K, and I remove all the error handling so that it looks\nclear enough for reading).\n\nint main(int argc, char **argv)\n{\n\tint fd, i;\n\tchar buf[5] \u003d \"test\";\n\n\tfd \u003d open(argv[1], O_RDWR|O_CREAT);\n\n\tfor (i \u003d 0; i \u003c 30; i++) {\n\t\tlseek(fd, 40960 * i, SEEK_SET);\n\t\twrite(fd, buf, 5);\n\t}\n\n\tftruncate(fd, 1146880);\n\n\tlseek(fd, 1126400, SEEK_SET);\n\twrite(fd, buf, 5);\n\n\tclose(fd);\n\n\treturn 0;\n}\n\nThe reason of the panic is that:\nthe 30 writes and the ftruncate makes the file\u0027s extent list looks like:\n\n\tTree Depth: 1   Count: 19   Next Free Rec: 1\n\t## Offset        Clusters       Block#\n\t0  0             280            86183\n\tSubAlloc Bit: 7   SubAlloc Slot: 0\n\tBlknum: 86183   Next Leaf: 0\n\tCRC32: 00000000   ECC: 0000\n\tTree Depth: 0   Count: 28   Next Free Rec: 28\n\t## Offset        Clusters       Block#          Flags\n\t0  0             1              143368          0x0\n\t1  10            1              143376          0x0\n\t...\n\t26 260           1              143576          0x0\n\t27 270           1              143584          0x0\n\nNow another write at 1126400(275 cluster) whiich will write at the gap\nbetween 271 and 280 will trigger ocfs2_add_branch, but the result after\nthe function looks like:\n\tTree Depth: 1   Count: 19   Next Free Rec: 2\n\t## Offset        Clusters       Block#\n\t0  0             280            86183\n\t1  271           0             143592\nSo the extent record is intersected and make the following operation bug out.\n\nThis patch just try to remove the gap before we add the new branch, so that\nthe root(branch) rightmost rec will cover the same right position. So in the\nabove case, before adding branch the tree will be changed to\n\tTree Depth: 1   Count: 19   Next Free Rec: 1\n\t## Offset        Clusters       Block#\n\t0  0             271            86183\n\tSubAlloc Bit: 7   SubAlloc Slot: 0\n\tBlknum: 86183   Next Leaf: 0\n\tCRC32: 00000000   ECC: 0000\n\tTree Depth: 0   Count: 28   Next Free Rec: 28\n\t## Offset        Clusters       Block#          Flags\n\t0  0             1              143368          0x0\n\t1  10            1              143376          0x0\n\t...\n\t26 260           1              143576          0x0\n\t27 270           1              143584          0x0\nAnd after branch add, the tree looks like\n\tTree Depth: 1   Count: 19   Next Free Rec: 2\n\t## Offset        Clusters       Block#\n\t0  0             271            86183\n\t1  271           0             143592\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nAcked-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "9c7cb99a8202452d3e0440a5505c5c6d262771d9",
      "tree": "56d2fe83150f7bea3446b28bfa3094066c5f26b5",
      "parents": [
        "0a8eba9b7f7aa3ad0305627c99ad4d6deedd871d",
        "c3a7abf06ce719a51139e62a034590be99abbc2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:13:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:13:49 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: (22 commits)\n  nilfs2: support contiguous lookup of blocks\n  nilfs2: add sync_page method to page caches of meta data\n  nilfs2: use device\u0027s backing_dev_info for btree node caches\n  nilfs2: return EBUSY against delete request on snapshot\n  nilfs2: modify list of unsupported features in caveats\n  nilfs2: enable sync_page method\n  nilfs2: set bio unplug flag for the last bio in segment\n  nilfs2: allow future expansion of metadata read out via get info ioctl\n  NILFS2: Pagecache usage optimization on NILFS2\n  nilfs2: remove nilfs_btree_operations from btree mapping\n  nilfs2: remove nilfs_direct_operations from direct mapping\n  nilfs2: remove bmap pointer operations\n  nilfs2: remove useless b_low and b_high fields from nilfs_bmap struct\n  nilfs2: remove pointless NULL check of bpop_commit_alloc_ptr function\n  nilfs2: move get block functions in bmap.c into btree codes\n  nilfs2: remove nilfs_bmap_delete_block\n  nilfs2: remove nilfs_bmap_put_block\n  nilfs2: remove header file for segment list operations\n  nilfs2: eliminate removal list of segments\n  nilfs2: add sufile function that can modify multiple segment usages\n  ...\n"
    },
    {
      "commit": "df59c0ad05182329688e514e5a9c3836fa208ea3",
      "tree": "bc46408a925f85eabccc979b84ac3dd7559cf0e7",
      "parents": [
        "dc577d554a274b79a6ad05e9e1ac20c320200599"
      ],
      "author": {
        "name": "Alexey Zaytsev",
        "email": "alexey.zaytsev@gmail.com",
        "time": "Wed Jun 10 12:56:56 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Jun 15 10:09:30 2009 -0500"
      },
      "message": "[SCSI] compat: don\u0027t perform unneeded copy in sg_io code\n\nThe members from \u0027status\u0027 in struct sg_io_hdr to the last are used to\ntransfer information from kernel to user space.  The values that user\nspace sets are just ignored.\n\nSigned-off-by: Alexey Zaytsev \u003calexey.zaytsev@gmail.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "4159175058987cb68aefd0e9eec2598b795363b4",
      "tree": "452a3ef5f8f2ae4c79095519078383fe766d69ab",
      "parents": [
        "de9a55b841132f7ae097f6e31ccebad2d5030cf5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 15 03:41:23 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 15 03:41:23 2009 -0400"
      },
      "message": "ext4: Don\u0027t update ctime for non-extent-mapped inodes\n\nThe VFS handles updating ctime, so we don\u0027t need to update the inode\u0027s\nctime in ext4_splace_branch() to update the direct or indirect blocks.\nThis was harmless when we did this in ext3, but in ext4, thanks to\ndelayed allocation, updating the ctime in ext4_splice_branch() can\ncause the ctime to mysteriously jump when the blocks are finally\nallocated.\n\nThanks to Björn Steinbrink for pointing out this problem on the git\nmailing list.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0a8eba9b7f7aa3ad0305627c99ad4d6deedd871d",
      "tree": "c714028520de3facd053e33abc280dbd214df8fd",
      "parents": [
        "45e3e1935e2857c54783291107d33323b3ef33c8"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Sun Jun 14 22:56:48 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 14 17:58:25 2009 -0700"
      },
      "message": "ramfs: ignore unknown mount options\n\nOn systems where CONFIG_SHMEM is disabled, mounting tmpfs filesystems can\nfail when tmpfs options are used.  This is because tmpfs creates a small\nwrapper around ramfs which rejects unknown options, and ramfs itself only\nsupports a tiny subset of what tmpfs supports.  This makes it pretty hard\nto use the same userspace systems across different configuration systems.\nAs such, ramfs should ignore the tmpfs options when tmpfs is merely a\nwrapper around ramfs.\n\nThis used to work before commit c3b1b1cbf0 as previously, ramfs would\nignore all options.  But now, we get:\nramfs: bad mount option: size\u003d10M\nmount: mounting mdev on /dev failed: Invalid argument\n\nAnother option might be to restore the previous behavior, where ramfs\nsimply ignored all unknown mount options ... which is what Hugh prefers.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de9a55b841132f7ae097f6e31ccebad2d5030cf5",
      "tree": "9b66c7c68bff923a62d4c2b04114e22a8fa524e1",
      "parents": [
        "0610b6e99939828b77eec020ead0e1f44cba38ca"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jun 14 17:45:34 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jun 14 17:45:34 2009 -0400"
      },
      "message": "ext4: Fix up whitespace issues in fs/ext4/inode.c\n\nThis is a pure cleanup patch.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0610b6e99939828b77eec020ead0e1f44cba38ca",
      "tree": "ede610c64a0456a43618e500c577b35e462f8953",
      "parents": [
        "11013911daea4820147ae6d7094dd7c6894e8651"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 15 03:45:05 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 15 03:45:05 2009 -0400"
      },
      "message": "ext4: Fix 64-bit block type problem on 32-bit platforms\n\nThe function ext4_mb_free_blocks() was using an \"unsigned long\" to\npass a block number; this will cause 64-bit block numbers to get\ntruncated on x86 and other 32-bit platforms.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "489f7ab6c18cdd64a2d444e056d60a0e722f4ad7",
      "tree": "2c7ed6a0042dc15c91ece08c5a3866f610ddca6d",
      "parents": [
        "b322b7816908487c08b89b72f838174c37d8c836",
        "82d27b2b2f3a80ffa7759a49b9cba39e47df476e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 14 13:46:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 14 13:46:25 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (31 commits)\n  trivial: remove the trivial patch monkey\u0027s name from SubmittingPatches\n  trivial: Fix a typo in comment of addrconf_dad_start()\n  trivial: usb: fix missing space typo in doc\n  trivial: pci hotplug: adding __init/__exit macros to sgi_hotplug\n  trivial: Remove the hyphen from git commands\n  trivial: fix ETIMEOUT -\u003e ETIMEDOUT typos\n  trivial: Kconfig: .ko is normally not included in module names\n  trivial: SubmittingPatches: fix typo\n  trivial: Documentation/dell_rbu.txt: fix typos\n  trivial: Fix Pavel\u0027s address in MAINTAINERS\n  trivial: ftrace:fix description of trace directory\n  trivial: unnecessary (void*) cast removal in sound/oss/msnd.c\n  trivial: input/misc: Fix typo in Kconfig\n  trivial: fix grammo in bus_for_each_dev() kerneldoc\n  trivial: rbtree.txt: fix rb_entry() parameters in sample code\n  trivial: spelling fix in ppc code comments\n  trivial: fix typo in bio_alloc kernel doc\n  trivial: Documentation/rbtree.txt: cleanup kerneldoc of rbtree.txt\n  trivial: Miscellaneous documentation typo fixes\n  trivial: fix typo milisecond/millisecond for documentation and source comments.\n  ...\n"
    },
    {
      "commit": "11013911daea4820147ae6d7094dd7c6894e8651",
      "tree": "f8e9f9d2058e0dfc826d4df3d88a7eb18a56b3f3",
      "parents": [
        "f157a4aa98a18bd3817a72bea90d48494e2586e7"
      ],
      "author": {
        "name": "Andreas Dilger",
        "email": "adilger@sun.com",
        "time": "Sat Jun 13 11:45:35 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 11:45:35 2009 -0400"
      },
      "message": "ext4: teach the inode allocator to use a goal inode number\n\nEnhance the inode allocator to take a goal inode number as a\nparemeter; if it is specified, it takes precedence over Orlov or\nparent directory inode allocation algorithms.\n\nThe extents migration function uses the goal inode number so that the\nextent trees allocated the migration function use the correct flex_bg.\nIn the future, the goal inode functionality will also be used to\nallocate an adjacent inode for the extended attributes.\n\nAlso, for testing purposes the goal inode number can be specified via\n/sys/fs/{dev}/inode_goal.  This can be useful for testing inode\nallocation beyond 2^32 blocks on very large filesystems.\n\nSigned-off-by: Andreas Dilger \u003cadilger@sun.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f157a4aa98a18bd3817a72bea90d48494e2586e7",
      "tree": "105547639a67296b4ea7acdc35c9e65ee2a85fd8",
      "parents": [
        "8a8a2050c844d9de224ff591e91bda3f77bd6eda"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 11:09:42 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 11:09:42 2009 -0400"
      },
      "message": "ext4: Use a hash of the topdir directory name for the Orlov parent group\n\nInstead of using a random number to determine the goal parent grop for\nthe Orlov top directories, use a hash of the directory name.  This\nallows for repeatable results when trying to benchmark filesystem\nlayout algorithms.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4ab2f15b7f709c3626a7eed075a7225b4c775c7e",
      "tree": "bfefc592c4c2eb176162134c615132e75f810486",
      "parents": [
        "bc0b0d6d69ee9022f18ae264e62beb30ddeb322a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 10:09:36 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 10:09:36 2009 -0400"
      },
      "message": "ext4: move the abort flag from s_mount_opts to s_mount_flags\n\nWe\u0027re running out of space in the mount options word, and\nEXT4_MOUNT_ABORT isn\u0027t really a mount option, but a run-time flag.  So\nmove it to become EXT4_MF_FS_ABORTED in s_mount_flags.\n\nAlso remove bogus ext2_fs.h / ext4.h simultaneous #include protection,\nwhich can never happen.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bc0b0d6d69ee9022f18ae264e62beb30ddeb322a",
      "tree": "fb1d04af657b6de21fa441c1d14fc296f32c723e",
      "parents": [
        "7f4520cc6242780ce720aa440ad4b391f998b558"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 10:09:48 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 10:09:48 2009 -0400"
      },
      "message": "ext4: update the s_last_mounted field in the superblock\n\nThis field can be very helpful when a system administrator is trying\nto sort through large numbers of block devices or filesystem images.\nWhat is stored in this field can be ambiguous if multiple filesystem\nnamespaces are in play; what we store in practice is the mountpoint\ninterpreted by the process\u0027s namespace which first opens a file in the\nfilesystem.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7f4520cc6242780ce720aa440ad4b391f998b558",
      "tree": "c8f1d99e019f2e29a967851031f4a60bf7ab1467",
      "parents": [
        "748de6736c1e482e111f9d1b5a5d5b1787600cad"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 10:09:41 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 10:09:41 2009 -0400"
      },
      "message": "ext4: change s_mount_opt to be an unsigned int\n\nWe can only fit 32 options in s_mount_opt because an unsigned long is\n32-bits on a x86 machine.  So use an unsigned int to save space on\n64-bit platforms.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "748de6736c1e482e111f9d1b5a5d5b1787600cad",
      "tree": "9e5bd6085cd0eea0453c2a8bbce1422f291f059f",
      "parents": [
        "8b0f9e8f78bd0a65fa001bf18f2c47eef2893a10"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Wed Jun 17 19:24:03 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jun 17 19:24:03 2009 -0400"
      },
      "message": "ext4: online defrag -- Add EXT4_IOC_MOVE_EXT ioctl\n\nThe EXT4_IOC_MOVE_EXT exchanges the blocks between orig_fd and donor_fd,\nand then write the file data of orig_fd to donor_fd.\next4_mext_move_extent() is the main fucntion of ext4 online defrag,\nand this patch includes all functions related to ext4 online defrag.\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: Takashi Sato \u003ct-sato@yk.jp.nec.com\u003e\nSigned-off-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fd40261354802b0f05f6f67121235aa002e87069",
      "tree": "935f23fa1528f6fe5a078383c9343907ea27fbb3",
      "parents": [
        "f3ad116588151b3371ae4e092290e4f48e62b8bb",
        "e83f1eb6bfc4004c19a99ee5f5aa65bd3fbecec3"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 21:28:59 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 21:28:59 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://oss.sgi.com/xfs/xfs into for-linus\n"
    },
    {
      "commit": "e83f1eb6bfc4004c19a99ee5f5aa65bd3fbecec3",
      "tree": "24e6783973cb580a1074c4689b4978bff29c2167",
      "parents": [
        "493b87e5ed352cf548e6456ddfc36576e28278ea"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 12 11:19:11 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 21:15:31 2009 -0500"
      },
      "message": "xfs: fix small mismerge in xfs_vn_mknod\n\nIdentation got messed up when merging the current_umask changes with\nthe generic ACL support.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "493b87e5ed352cf548e6456ddfc36576e28278ea",
      "tree": "50d7419e1de1f5818906f0e2bb801b616cfa3dc6",
      "parents": [
        "7747a0b0af5976ba3828796b4f7a7adc3bb76dbd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 12 11:34:55 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 21:15:12 2009 -0500"
      },
      "message": "xfs: fix warnings with CONFIG_XFS_QUOTA disabled\n\nFix warnings about unitialized dquot variables by making sure\nxfs_qm_vop_dqalloc touches it even when quotas are disabled.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "f3ad116588151b3371ae4e092290e4f48e62b8bb",
      "tree": "d652861a54132e35de2a80631f671cd7be0b26f6",
      "parents": [
        "d645727bdc2aed8e2e0e9496248f735481b5049a",
        "420118caa32c8ccdf9fce5a623b9de3f951573c5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 18:21:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 18:21:19 2009 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/configfs\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/configfs:\n  configfs: Rework configfs_depend_item() locking and make lockdep happy\n  configfs: Silence lockdep on mkdir() and rmdir()\n"
    },
    {
      "commit": "c53567ad4528b6efefc3fc22a354d20f6226a098",
      "tree": "faa289a41715e0a9a174623a76c7d52b10d4a6df",
      "parents": [
        "4ddbac98980fe0a42cf57af5d1032e024aced6a1",
        "748285ccf7ea76d3d76d0d5f2945ad6fb91f5329"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 13:17:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 13:17:12 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: use more NOFS allocation\n  dlm: connect to nodes earlier\n  dlm: fix use count with multiple joins\n  dlm: Make name input parameter of {,dlm_}new_lockspace() const\n"
    },
    {
      "commit": "c9b8af00ff71f86ff3d092cc60ca673e1d0eae5b",
      "tree": "25cc016481cc693552bebb4040041817280c2ccf",
      "parents": [
        "c59a264c9e932c828d533497e286b89e43c8d1be",
        "82681a318f9f028ea64e61f24bbd9ac535531921"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:50:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:50:42 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (154 commits)\n  [SCSI] osd: Remove out-of-tree left overs\n  [SCSI] libosd: Use REQ_QUIET requests.\n  [SCSI] osduld: use filp_open() when looking up an osd-device\n  [SCSI] libosd: Define an osd_dev wrapper to retrieve the request_queue\n  [SCSI] libosd: osd_req_{read,write} takes a length parameter\n  [SCSI] libosd: Let _osd_req_finalize_data_integrity receive number of out_bytes\n  [SCSI] libosd: osd_req_{read,write}_kern new API\n  [SCSI] libosd: Better printout of OSD target system information\n  [SCSI] libosd: OSD2r05: Attribute definitions\n  [SCSI] libosd: OSD2r05: Additional command enums\n  [SCSI] mpt fusion: fix up doc book comments\n  [SCSI] mpt fusion: Added support for Broadcast primitives Event handling\n  [SCSI] mpt fusion: Queue full event handling\n  [SCSI] mpt fusion: RAID device handling and Dual port Raid support is added\n  [SCSI] mpt fusion: Put IOC into ready state if it not already in ready state\n  [SCSI] mpt fusion: Code Cleanup patch\n  [SCSI] mpt fusion: Rescan SAS topology added\n  [SCSI] mpt fusion: SAS topology scan changes, expander events\n  [SCSI] mpt fusion: Firmware event implementation using seperate WorkQueue\n  [SCSI] mpt fusion: rewrite of ioctl_cmds internal generated function\n  ...\n"
    },
    {
      "commit": "6cb8a911745616eee0bdd97a2e82eb9723e9599a",
      "tree": "f5a95d10443653009ee0db290657b938c5215695",
      "parents": [
        "7f3591cfacf2d79c4f42238e46c7d053da8e020d",
        "3ea400581f2b595afd91207bbd79c11cb38598e0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:43:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:43:44 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw:\n  GFS2: Remove lock_kernel from gfs2_put_super()\n  GFS2: Add tracepoints\n"
    },
    {
      "commit": "7f3591cfacf2d79c4f42238e46c7d053da8e020d",
      "tree": "f2e9ed7b6b0bc176facaa49846734790023a6b16",
      "parents": [
        "16ffc3eeaa00d513b0076b7b2b96419f28acc912",
        "d1f0132e76a11b05167313c606a853953f416081"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:32:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:32:26 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest: (31 commits)\n  lguest: add support for indirect ring entries\n  lguest: suppress notifications in example Launcher\n  lguest: try to batch interrupts on network receive\n  lguest: avoid sending interrupts to Guest when no activity occurs.\n  lguest: implement deferred interrupts in example Launcher\n  lguest: remove obsolete LHREQ_BREAK call\n  lguest: have example Launcher service all devices in separate threads\n  lguest: use eventfds for device notification\n  eventfd: export eventfd_signal and eventfd_fget for lguest\n  lguest: allow any process to send interrupts\n  lguest: PAE fixes\n  lguest: PAE support\n  lguest: Add support for kvm_hypercall4()\n  lguest: replace hypercall name LHCALL_SET_PMD with LHCALL_SET_PGD\n  lguest: use native_set_* macros, which properly handle 64-bit entries when PAE is activated\n  lguest: map switcher with executable page table entries\n  lguest: fix writev returning short on console output\n  lguest: clean up length-used value in example launcher\n  lguest: Segment selectors are 16-bit long. Fix lg_cpu.ss1 definition.\n  lguest: beyond ARRAY_SIZE of cpu-\u003earch.gdt\n  ...\n"
    },
    {
      "commit": "c34752bc8b3196aee3115d1aa41972604ab0aea8",
      "tree": "db93341ab4043e1c21d83f0b7dfdbc1798b88845",
      "parents": [
        "65d52cc9d47975f4fbd0a50e62f4a49be2c0514a",
        "151060ac13144208bd7601d17e4c92c59b98072f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:31:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:31:20 2009 -0700"
      },
      "message": "Merge branch \u0027cuse\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027cuse\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  CUSE: implement CUSE - Character device in Userspace\n  fuse: export symbols to be used by CUSE\n  fuse: update fuse_conn_init() and separate out fuse_conn_kill()\n  fuse: don\u0027t use inode in fuse_file_poll\n  fuse: don\u0027t use inode in fuse_do_ioctl() helper\n  fuse: don\u0027t use inode in fuse_sync_release()\n  fuse: create fuse_do_open() helper for CUSE\n  fuse: clean up args in fuse_finish_open() and fuse_release_fill()\n  fuse: don\u0027t use inode in helpers called by fuse_direct_io()\n  fuse: add members to struct fuse_file\n  fuse: prepare fuse_direct_io() for CUSE\n  fuse: clean up fuse_write_fill()\n  fuse: use struct path in release structure\n  fuse: misc cleanups\n"
    },
    {
      "commit": "d614aec4752f8c61b2e7cb77806b6bd59aa50836",
      "tree": "3b0cfb3085c43415931dbf18666d582fb8ae3c75",
      "parents": [
        "db8e7f10ed67933ca272f4030eb7057b7f13de07",
        "ad7c52d0988a8965989dc06d630c52a5bde849d5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:29:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:29:42 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6\n\n* \u0027for-2.6.31\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (29 commits)\n  ide: re-implement ide_pci_init_one() on top of ide_pci_init_two()\n  ide: unexport ide_find_dma_mode()\n  ide: fix PowerMac bootup oops\n  ide: skip probe if there are no devices on the port (v2)\n  sl82c105: add printk() logging facility\n  ide-tape: fix proc warning\n  ide: add IDE_DFLAG_NIEN_QUIRK device flag\n  ide: respect quirk_drives[] list on all controllers\n  hpt366: enable all quirks for devices on quirk_drives[] list\n  hpt366: sync quirk_drives[] list with pdc202xx_{new,old}.c\n  ide: remove superfluous SELECT_MASK() call from do_rw_taskfile()\n  ide: remove superfluous SELECT_MASK() call from ide_driveid_update()\n  icside: remove superfluous -\u003emaskproc method\n  ide-tape: fix IDE_AFLAG_* atomic accesses\n  ide-tape: change IDE_AFLAG_IGNORE_DSC non-atomically\n  pdc202xx_old: kill resetproc() method\n  pdc202xx_old: don\u0027t call pdc202xx_reset() on IRQ timeout\n  pdc202xx_old: use ide_dma_test_irq()\n  ide: preserve Host Protected Area by default (v2)\n  ide-gd: implement block device -\u003eset_capacity method (v2)\n  ...\n"
    },
    {
      "commit": "76d93ff344f547c633fd7b2ee6511bad82c4616f",
      "tree": "6e1dc59a1747f579abc4d726135d127f3b4e021d",
      "parents": [
        "27af1da4b58675d5c6bacf9b7de9c2746687d272"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Wed Apr 22 13:38:58 2009 +0530"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jun 12 18:01:47 2009 +0200"
      },
      "message": "trivial: fix typo in bio_alloc kernel doc\n\nFix typo in bio_alloc kernel doc.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    }
  ],
  "next": "ab2274af0569a43c6da390e969759d1138799839"
}
