)]}'
{
  "log": [
    {
      "commit": "de14569f94513279e3d44d9571a421e9da1759ae",
      "tree": "9cc06497397728a13cc53150c574fd6d9896b7c5",
      "parents": [
        "30150f8d7b76f25b1127a5079528b7a17307f995"
      ],
      "author": {
        "name": "Vladimir Saveliev",
        "email": "vs@namesys.com",
        "time": "Mon Jan 22 20:40:46 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 23 07:52:06 2007 -0800"
      },
      "message": "[PATCH] resierfs: avoid tail packing if an inode was ever mmapped\n\nThis patch fixes a confusion reiserfs has for a long time.\n\nOn release file operation reiserfs used to try to pack file data stored in\nlast incomplete page of some files into metadata blocks.  After packing the\npage got cleared with clear_page_dirty.  It did not take into account that\nthe page may be mmaped into other process\u0027s address space.  Recent\nreplacement for clear_page_dirty cancel_dirty_page found the confusion with\nsanity check that page has to be not mapped.\n\nThe patch fixes the confusion by making reiserfs avoid tail packing if an\ninode was ever mmapped.  reiserfs_mmap and reiserfs_file_release are\nserialized with mutex in reiserfs specific inode.  reiserfs_mmap locks the\nmutex and sets a bit in reiserfs specific inode flags.\nreiserfs_file_release checks the bit having the mutex locked.  If bit is\nset - tail packing is avoided.  This eliminates a possibility that mmapped\npage gets cancel_page_dirty-ed.\n\nSigned-off-by: Vladimir Saveliev \u003cvs@namesys.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Chris Mason \u003cmason@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cda9205da24aeaa8fb086b0fb85cdf39571ecc3f",
      "tree": "c302c3d0b0558d3fc5ac0b5750e4f8150517ece5",
      "parents": [
        "15c945c3d0913d73a7d57d7a0a3c4e2902598cc6"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Mon Jan 22 20:40:43 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 23 07:52:06 2007 -0800"
      },
      "message": "[PATCH] fix blk_direct_IO bio preparation\n\nFor large size DIO that needs multiple bio, one full page worth of data was\nlost at the boundary of bio\u0027s maximum sector or segment limits.  After a\nbio is full and got submitted.  The outer while (nbytes) { ...  } loop will\nallocate a new bio and just march on to index into next page.  It just\nforgets about the page that bio_add_page() rejected when previous bio is\nfull.  Fix it by put the rejected page back to pvec so we pick it up again\nfor the next bio.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "790816dd54e22827f63c8cbb30bd623d3d45e594",
      "tree": "a67e4ee5302857b60a9ee6ad158123d2af0fd088",
      "parents": [
        "58d9ce7d751fa11c6c8ea5dcd4d63b320aae1363"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Jan 22 20:40:35 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 23 07:52:05 2007 -0800"
      },
      "message": "[PATCH] blockdev direct_io: fix signedness bug\n\nsize_t is unsigned.  IO errors aren\u0027t getting through.\n\nCc: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebcccd14b73831fa7fbc197e1d2b9c710a65731e",
      "tree": "88af3e74135bdb3d0af7bc9ef48de0c2f879fcbb",
      "parents": [
        "e00154891137e3b0659556b877d45a16cabd700c",
        "9cdf083f981b8d37b3212400a359368661385099"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jan 22 19:32:13 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jan 22 19:32:13 2007 -0800"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6: (84 commits)\n  [JFFS2] debug.h: include \u003clinux/sched.h\u003e for current-\u003epid\n  [MTD] OneNAND: Handle DDP chip boundary during read-while-load\n  [MTD] OneNAND: return ecc error code only when 2-bit ecc occurs\n  [MTD] OneNAND: Implement read-while-load\n  [MTD] OneNAND: fix onenand_wait bug in read ecc error\n  [MTD] OneNAND: release CPU in cycles\n  [MTD] OneNAND: add subpage write support\n  [MTD] OneNAND: fix onenand_wait bug\n  [JFFS2] use the ref_offset macro\n  [JFFS2] Reschedule in loops\n  [JFFS2] Fix error-path leak in summary scan\n  [JFFS2] add cond_resched() when garbage collecting deletion dirent\n  [MTD] Nuke IVR leftovers\n  [MTD] OneNAND: fix oob handling in recent oob patch\n  [MTD] Fix ssfdc blksize typo\n  [JFFS2] replace kmalloc+memset with kzalloc\n  [MTD] Fix SSFDC build for variable blocksize.\n  [MTD] ESB2ROM uses PCI\n  [MTD] of_device-based physmap driver\n  [MTD] Support combined RedBoot FIS directory and configuration area\n  ...\n"
    },
    {
      "commit": "2596627c5c30b45aa206b7b1b864bf00de3c3503",
      "tree": "28efd5977acccb330afd886c440430e22b8916ae",
      "parents": [
        "19e805cb040a81dcfbcf2aa8dbe5d9454c5faf2d",
        "50af94b14c98f5769860a282a397c6f3b135c8a8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jan 22 11:33:40 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jan 22 11:33:40 2007 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2:\n  ocfs2: Add backup superblock info to ocfs2_fs.h\n  ocfs2: cleanup ocfs2_iget() errors\n  ocfs2: Directory c/mtime update fixes\n  ocfs2: Don\u0027t print errors when following symlinks\n"
    },
    {
      "commit": "50af94b14c98f5769860a282a397c6f3b135c8a8",
      "tree": "214c93dc04fd9d78341c7dfa57aac6af4b8edab9",
      "parents": [
        "6a1bd4a5788435b6ef1664383604b43607eb825a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Jan 21 14:44:59 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Jan 21 16:20:10 2007 -0800"
      },
      "message": "ocfs2: Add backup superblock info to ocfs2_fs.h\n\nThis synchronizes us with recent ocfs2-tools changes.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "6a1bd4a5788435b6ef1664383604b43607eb825a",
      "tree": "36f7bdb8075a4193b903de8f71b17512e7b690df",
      "parents": [
        "592282cf2eaa33409c6511ddd3f3ecaa57daeaaa"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Jan 03 17:06:59 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Jan 21 16:19:12 2007 -0800"
      },
      "message": "ocfs2: cleanup ocfs2_iget() errors\n\nGet rid of some error prints in the ocfs2_iget() path from\nocfs2_get_dentry(). NFSD can easily cause us to read stale inodes.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "592282cf2eaa33409c6511ddd3f3ecaa57daeaaa",
      "tree": "fea7fe8403d6b2a96848372a69976b0123a4cf1d",
      "parents": [
        "72bce5078d124a8b13fb167aea028b6e8d91873e"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jan 02 17:59:40 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Jan 21 16:18:49 2007 -0800"
      },
      "message": "ocfs2: Directory c/mtime update fixes\n\nocfs2 wasn\u0027t updating c/mtime on directories during dirent\ncreation/deletion. Fix ocfs2_unlink(), ocfs2_rename() and\n__ocfs2_add_entry() by adding the proper code to update the struct inode and\npush the change out to disk.\n\nThis helps rename/unlink on nfs exported file systems in particular as those\nclients compare directory time values to avoid a full re-reading a directory\nwhich hasn\u0027t changed.\n\nocfs2_rename() loses some superfluous error handling as a result of this\npatch.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "72bce5078d124a8b13fb167aea028b6e8d91873e",
      "tree": "619f89df1e0f12db3acf0c60d244ea2464731bb0",
      "parents": [
        "a8b3485287731978899ced11f24628c927890e78"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Jan 03 17:25:40 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Jan 21 16:18:14 2007 -0800"
      },
      "message": "ocfs2: Don\u0027t print errors when following symlinks\n\nWe shouldn\u0027t print errors returned from vfs_follow_link(). This was causing\nspurious errors to show up in the logs.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "bd62b23cbcc691cc8faa6f4028783f60957b6508",
      "tree": "95a9e54e1366c06ffcbda0ab351804dacf59ac3f",
      "parents": [
        "8331191e56802f0155772a3d56bc2a750acc38e1"
      ],
      "author": {
        "name": "Anton Altaparmakov",
        "email": "aia21@cantab.net",
        "time": "Thu Jan 18 10:28:18 2007 +0000"
      },
      "committer": {
        "name": "Anton Altaparmakov",
        "email": "aia21@cantab.net",
        "time": "Thu Jan 18 10:28:18 2007 +0000"
      },
      "message": "NTFS: Forgot to bump version number in makefile to 2.1.28...\n\nSigned-off-by: Anton Altaparmakov \u003caia21@cantab.net\u003e\n"
    },
    {
      "commit": "8331191e56802f0155772a3d56bc2a750acc38e1",
      "tree": "556f3b8f395d7c66b9eca9d35309644b9f1c027d",
      "parents": [
        "a8b3485287731978899ced11f24628c927890e78"
      ],
      "author": {
        "name": "Anton Altaparmakov",
        "email": "aia21@cantab.net",
        "time": "Thu Jan 18 09:42:48 2007 +0000"
      },
      "committer": {
        "name": "Anton Altaparmakov",
        "email": "aia21@cantab.net",
        "time": "Thu Jan 18 09:42:48 2007 +0000"
      },
      "message": "NTFS: 2.1.28 - Fix deadlock reported by Sergey Vlasov due to ntfs_put_inode().\n\n- Fix deadlock in fs/ntfs/inode.c::ntfs_put_inode().  Thanks to Sergey\n  Vlasov for the report and detailed analysis of the deadlock.  The fix\n  involved getting rid of ntfs_put_inode() altogether and hence NTFS no\n  longer has a -\u003eput_inode super operation.\n\nSigned-off-by: Anton Altaparmakov \u003caia21@cantab.net\u003e\n"
    },
    {
      "commit": "9cdf083f981b8d37b3212400a359368661385099",
      "tree": "aa15a6a08ad87e650dea40fb59b3180bef0d345b",
      "parents": [
        "e499e01d234a31d59679b7b1e1cf628d917ba49a",
        "a8b3485287731978899ced11f24628c927890e78"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Thu Jan 18 10:34:51 2007 +1100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Thu Jan 18 10:34:51 2007 +1100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "e499e01d234a31d59679b7b1e1cf628d917ba49a",
      "tree": "176b32c989fc852d69090adfc0835028d0854f29",
      "parents": [
        "8fa7a41f65956ac3b6653dc6274c5111c99093ff"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sat Jan 13 08:19:03 2007 +0800"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sat Jan 13 08:19:03 2007 +0800"
      },
      "message": "[JFFS2] debug.h: include \u003clinux/sched.h\u003e for current-\u003epid\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "f73ca1b76c6880b934d3ef566c1592efc80bb759",
      "tree": "c9384ef5ff0ba68817858afdcc330e8707b11ec9",
      "parents": [
        "88bf7b391dca840f03fe25e4ff8fe6b4319fa07b"
      ],
      "author": {
        "name": "David Chinner",
        "email": "dgc@sgi.com",
        "time": "Wed Jan 10 23:15:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Jan 11 18:18:21 2007 -0800"
      },
      "message": "[PATCH] Revert bd_mount_mutex back to a semaphore\n\nRevert bd_mount_mutex back to a semaphore so that xfs_freeze -f /mnt/newtest;\nxfs_freeze -u /mnt/newtest works safely and doesn\u0027t produce lockdep warnings.\n\n(XFS unlocks the semaphore from a different task, by design.  The mutex\ncode warns about this)\n\nSigned-off-by: Dave Chinner \u003cdgc@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e3db7691e9f3dff3289f64e3d98583e28afe03db",
      "tree": "e05542d8d8bb545545c5b535381a8c1fcb369a03",
      "parents": [
        "07031e14c1127fc7e1a5b98dfcc59f434e025104"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 10 23:15:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Jan 11 18:18:21 2007 -0800"
      },
      "message": "[PATCH] NFS: Fix race in nfs_release_page()\n\n    NFS: Fix race in nfs_release_page()\n\n    invalidate_inode_pages2() may find the dirty bit has been set on a page\n    owing to the fact that the page may still be mapped after it was locked.\n    Only after the call to unmap_mapping_range() are we sure that the page\n    can no longer be dirtied.\n    In order to fix this, NFS has hooked the releasepage() method and tries\n    to write the page out between the call to unmap_mapping_range() and the\n    call to remove_mapping(). This, however leads to deadlocks in the page\n    reclaim code, where the page may be locked without holding a reference\n    to the inode or dentry.\n\n    Fix is to add a new address_space_operation, launder_page(), which will\n    attempt to write out a dirty page without releasing the page lock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n\n    Also, the bare SetPageDirty() can skew all sort of accounting leading to\n    other nasties.\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3eb3c740f51c2126b53c2dde974c1c57e634aa7b",
      "tree": "bbc9a1152685d8ed97f231e4ff161d01d58f0fe2",
      "parents": [
        "8edf51a5ee38eb40de5449e131fd36450a229430"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Wed Jan 10 14:45:28 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Jan 10 09:33:59 2007 -0800"
      },
      "message": "[PATCH] fix linux banner format string\n\nRevert previous attempts at messing with the linux banner string and\nsimply use a separate format string for proc.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nAcked-by: Olaf Hering \u003colaf@aepfle.de\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Andrey Borzenkov \u003carvidjaar@mail.ru\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "abb536e7ac8719243cfc4b40b39bf3eefd028f82",
      "tree": "82b84bffa39ae9a4f469e3da751934ac8fadd861",
      "parents": [
        "a2166b933ef9099b4fa6860b165e6dac553a97aa"
      ],
      "author": {
        "name": "Kyungmin Park",
        "email": "kyungmin.park@samsung.com",
        "time": "Fri Dec 22 16:39:30 2006 +0900"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind@infradead.org",
        "time": "Wed Jan 10 14:03:20 2007 +0200"
      },
      "message": "[JFFS2] use the ref_offset macro\n\nDon\u0027t use ref-\u003eflash_offset directly in debugging code, use the ref_offset macro instead.\n\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\n"
    },
    {
      "commit": "a2166b933ef9099b4fa6860b165e6dac553a97aa",
      "tree": "6b9828492a1edb156e981082b931f16f832baa1f",
      "parents": [
        "85de3d9bc779c198f8667cffc291b0ecad082b5e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "dedekind@infradead.org",
        "time": "Thu Dec 28 12:01:41 2006 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind@infradead.org",
        "time": "Wed Jan 10 14:01:00 2007 +0200"
      },
      "message": "[JFFS2] Reschedule in loops\n\nMake JFFS2 nicer and teach it to call cond_resched() in loops\nwhich may be quite large.\n\nSigned-off-by: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\n"
    },
    {
      "commit": "90cb28e8f76e57751ffe14abd09c2d53a6aea7c8",
      "tree": "a512f783a9dec262fbff98ff608411d1afd87f97",
      "parents": [
        "d0abc451a685a8d8a5b05db660b06199786981b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Jan 06 13:28:21 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Jan 06 13:28:21 2007 -0800"
      },
      "message": "Revert \"[PATCH] binfmt_elf: randomize PIE binaries (2nd try)\"\n\nThis reverts commit 59287c0913cc9a6c75712a775f6c1c1ef418ef3b.\n\nHugh Dickins reports that it causes random failures on x86 with SuSE\n10.2, and points out\n\n  \"Isn\u0027t that randomization, anywhere from 0x10000 to ELF_ET_DYN_BASE,\n   sure to place the ET_DYN from time to time just where the comment\n   says it\u0027s trying to avoid? I assume that somehow results in the error\n   reported.\"\n\n(where the comment in question is the existing comment in the source\ncode about mmap/brk clashes).\n\nSuggested-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Marcus Meissner \u003cmeissner@suse.de\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d63b70902befe189ba2672925f28ec3f4db41352",
      "tree": "727b00bf66ebb3d1de20d630f310429fa5063325",
      "parents": [
        "7ba3485947ee7bc89a17f86250fe9b692a615dff"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Fri Jan 05 16:37:04 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:29 2007 -0800"
      },
      "message": "[PATCH] fix garbage instead of zeroes in UFS\n\nLooks like this is the problem, which point Al Viro some time ago:\n\nufs\u0027s get_block callback allocates 16k of disk at a time, and links that\nentire 16k into the file\u0027s metadata.  But because get_block is called for only\na single buffer_head (a 2k buffer_head in this case?) we are only able to tell\nthe VFS that this 2k is buffer_new().\n\nSo when ufs_getfrag_block() is later called to map some more data in the file,\nand when that data resides within the remaining 14k of this fragment,\nufs_getfrag_block() will incorrectly return a !buffer_new() buffer_head.\n\nI don\u0027t see _right_ way to do nullification of whole block, if use inode\npage cache, some pages may be outside of inode limits (inode size), and\nwill be lost; if use blockdev page cache it is possible to zero real data,\nif later inode page cache will be used.\n\nThe simpliest way, as can I see usage of block device page cache, but not only\nmark dirty, but also sync it during \"nullification\".  I use my simple tests\ncollection, which I used for check that create,open,write,read,close works on\nufs, and I see that this patch makes ufs code 18% slower then before.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "be6aab0e9fa6d3c6d75aa1e38ac972d8b4ee82b8",
      "tree": "6601373d683326f034fcce292953673a522db111",
      "parents": [
        "2723f9603a8f8bb2cd8c7b581f7c94b8d75e3837"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Jan 05 16:36:36 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:23 2007 -0800"
      },
      "message": "[PATCH] fix memory corruption from misinterpreted bad_inode_ops return values\n\nCVE-2006-5753 is for a case where an inode can be marked bad, switching\nthe ops to bad_inode_ops, which are all connected as:\n\nstatic int return_EIO(void)\n{\n        return -EIO;\n}\n\n#define EIO_ERROR ((void *) (return_EIO))\n\nstatic struct inode_operations bad_inode_ops \u003d\n{\n        .create         \u003d bad_inode_create\n...etc...\n\nThe problem here is that the void cast causes return types to not be\npromoted, and for ops such as listxattr which expect more than 32 bits of\nreturn value, the 32-bit -EIO is interpreted as a large positive 64-bit\nnumber, i.e. 0x00000000fffffffa instead of 0xfffffffa.\n\nThis goes particularly badly when the return value is taken as a number of\nbytes to copy into, say, a user\u0027s buffer for example...\n\nI originally had coded up the fix by creating a return_EIO_\u003cTYPE\u003e macro\nfor each return type, like this:\n\nstatic int return_EIO_int(void)\n{\n\treturn -EIO;\n}\n#define EIO_ERROR_INT ((void *) (return_EIO_int))\n\nstatic struct inode_operations bad_inode_ops \u003d\n{\n\t.create\t\t\u003d EIO_ERROR_INT,\n...etc...\n\nbut Al felt that it was probably better to create an EIO-returner for each\nactual op signature.  Since so few ops share a signature, I just went ahead\n\u0026 created an EIO function for each individual file \u0026 inode op that returns\na value.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3223ea8cca5936b8e78450dd5b8ba88372e9c0a8",
      "tree": "3b84970d50f9d2408a09cfcfdf886c7db905b314",
      "parents": [
        "6c5f8cc33eb2e10b6ab788bbe259fc142a068627"
      ],
      "author": {
        "name": "James Bursa",
        "email": "james@zamez.org",
        "time": "Fri Jan 05 16:36:28 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:22 2007 -0800"
      },
      "message": "[PATCH] adfs: fix filename handling\n\nFix filenames on adfs discs being terminated at the first character greater\nthan 128 (adfs filenames are Latin 1).  I saw this problem when using a\nloopback adfs image on a 2.6.17-rc5 x86_64 machine, and the patch fixed it\nthere.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "85de3d9bc779c198f8667cffc291b0ecad082b5e",
      "tree": "8e1e3c8342c4915decf39c8b1b3c6e84a5e78f4c",
      "parents": [
        "aba54da3d05e910199ea8255992c244c9abadd91"
      ],
      "author": {
        "name": "Amit Choudhary",
        "email": "amit2030@gmail.com",
        "time": "Tue Jan 02 21:16:10 2007 +0000"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Tue Jan 02 21:16:10 2007 +0000"
      },
      "message": "[JFFS2] Fix error-path leak in summary scan\n\nSigned-off-by: Amit Choudhary \u003camit2030@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "bfff6e92a33dce6121a3d83ef3809e9063b2734e",
      "tree": "14d4a919cac12ef0163308d5ceb49d97ac9b448c",
      "parents": [
        "72836708c6218d91db982ae48c5c62293e78ed7c",
        "92efc15241ceebc23451691971897020e8563a70"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 12:02:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 12:02:53 2006 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2:\n  ocfs2: export heartbeat thread pid via configfs\n  ocfs2: always unmap in ocfs2_data_convert_worker()\n  ocfs2: ignore NULL vfsmnt in ocfs2_should_update_atime()\n  ocfs2: Allow direct I/O read past end of file\n  ocfs2: don\u0027t print error in ocfs2_permission()\n"
    },
    {
      "commit": "131612dfe7923bd0ce5f82d6ed8303a7ef96e574",
      "tree": "37e3988d2039f413102f23fce08203c8aca600bc",
      "parents": [
        "a3f99f8ba8cbd2d4e231b767b3d6236a555da38c"
      ],
      "author": {
        "name": "Dimitri Gorokhovik",
        "email": "dimitri.gorokhovik@free.fr",
        "time": "Fri Dec 29 16:48:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 10:56:42 2006 -0800"
      },
      "message": "[PATCH] ramfs breaks without CONFIG_BLOCK\n\nramfs doesn\u0027t provide the .set_dirty_page a_op, and when the BLOCK layer is\nnot configured in, \u0027set_page_dirty\u0027 makes a call via a NULL pointer.\n\nSigned-off-by: Dimitri Gorokhovik \u003cdimitri.gorokhovik@free.fr\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1ebb1101c556b1915ff041655e629a072e64dcda",
      "tree": "d306821837152a8c772591a9bf136e5e091a7a31",
      "parents": [
        "43cdff92ad47e0ca024c8a07d29f9bb6119e759c"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Fri Dec 29 16:47:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 10:55:54 2006 -0800"
      },
      "message": "[PATCH] Fix lock inversion aio_kick_handler()\n\nlockdep found a AB BC CA lock inversion in retry-based AIO:\n\n1) The task struct\u0027s alloc_lock (A) is acquired in process context with\n   interrupts enabled.  An interrupt might arrive and call wake_up() which\n   grabs the wait queue\u0027s q-\u003elock (B).\n\n2) When performing retry-based AIO the AIO core registers\n   aio_wake_function() as the wake funtion for iocb-\u003eki_wait.  It is called\n   with the wait queue\u0027s q-\u003elock (B) held and then tries to add the iocb to\n   the run list after acquiring the ctx_lock (C).\n\n3) aio_kick_handler() holds the ctx_lock (C) while acquiring the\n   alloc_lock (A) via lock_task() and unuse_mm().  Lockdep emits a warning\n   saying that we\u0027re trying to connect the irq-safe q-\u003elock to the\n   irq-unsafe alloc_lock via ctx_lock.\n\nThis fixes the inversion by calling unuse_mm() in the AIO kick handing path\nafter we\u0027ve released the ctx_lock.  As Ben LaHaise pointed out __put_ioctx\ncould set ctx-\u003emm to NULL, so we must only access ctx-\u003emm while we have the\nlock.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nSigned-off-by: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nAcked-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nCc: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92efc15241ceebc23451691971897020e8563a70",
      "tree": "e9f5c8a43e61f7a9993fb962f3f4158ec46648c5",
      "parents": [
        "7f4a2a97e324e8c826d1d983bc8efb5c59194f02"
      ],
      "author": {
        "name": "Zhen Wei",
        "email": "zwei@novell.com",
        "time": "Fri Dec 08 00:48:17 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 28 16:40:32 2006 -0800"
      },
      "message": "ocfs2: export heartbeat thread pid via configfs\n\nThe patch allows the ocfs2 heartbeat thread to prioritize I/O which may\nhelp cut down on spurious fencing. Most of this will be in the tools -\nwe can have a pid configfs attribute and let userspace (ocfs2_hb_ctl)\ncalls the ioprio_set syscall after starting heartbeat, but only cfq\nscheduler supports I/O priorities now.\n\nSigned-off-by: Zhen Wei \u003czwei@novell.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "7f4a2a97e324e8c826d1d983bc8efb5c59194f02",
      "tree": "649129bc73b4de1dee662250892acf883cf45ba2",
      "parents": [
        "6c2aad0567e693f9588d0a0683f96ed872fb4641"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Dec 11 11:06:36 2006 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 28 16:38:59 2006 -0800"
      },
      "message": "ocfs2: always unmap in ocfs2_data_convert_worker()\n\nMmap-heavy clustered workloads were sometimes finding stale data on mmap\nreads. The solution is to call unmap_mapping_range() on any down convert of\na data lock.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "6c2aad0567e693f9588d0a0683f96ed872fb4641",
      "tree": "4f28fb78c9565c74bc24f93675ec3f0dc6af0217",
      "parents": [
        "564f8a3228879d6962edb3432d01bcd7499a67ec"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Dec 19 15:25:52 2006 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 28 16:38:32 2006 -0800"
      },
      "message": "ocfs2: ignore NULL vfsmnt in ocfs2_should_update_atime()\n\nThis can come from NFSD.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "564f8a3228879d6962edb3432d01bcd7499a67ec",
      "tree": "6e3a1b840e3061e7a1bc4df56287a99c2f513a47",
      "parents": [
        "0333394bff439c3fb09264303de42e7038b3e709"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 14 13:01:05 2006 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 28 16:38:08 2006 -0800"
      },
      "message": "ocfs2: Allow direct I/O read past end of file\n\nocfs2_direct_IO_get_blocks() was incorrectly returning -EIO for a direct I/O\nread whose start block was past the end of the file allocation tree. Fix\nthings so that we return a hole instead. do_direct_IO() will then notice\nthat the range start is past eof and return a short read.\n\nWhile there, remove the unused vbo_max variable.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "0333394bff439c3fb09264303de42e7038b3e709",
      "tree": "c42710ccdbfa6e218fdf1bd880471682b2ed19d3",
      "parents": [
        "3bf8ba38f38d3647368e4edcf7d019f9f8d9184a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 14 15:29:25 2006 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 28 16:37:20 2006 -0800"
      },
      "message": "ocfs2: don\u0027t print error in ocfs2_permission()\n\nErrors from generic_permission() can happen in valid cases and shouldn\u0027t be\nreported.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "cb876f451455b6187a7d69de2c112c45ec4b7f99",
      "tree": "59a125ef58e49ed5b1a5e6b0ec70df05d18c2bd3",
      "parents": [
        "8d1c481960ba833362aa78245fdff12e3804f8b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 23 16:19:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 23 16:19:07 2006 -0800"
      },
      "message": "Fix up CIFS for \"test_clear_page_dirty()\" removal\n\nThis also adds he required page \"writeback\" flag handling, that cifs\nhasn\u0027t been doing and that the page dirty flag changes made obvious.\n\nAcked-by: Steve French \u003csmfltc@us.ibm.com\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ffaa82008f1aad52a6d3979f49d2a76c2928b60f",
      "tree": "82ababcc23d02c48d59a52ca9f5c75c23bc7f108",
      "parents": [
        "8368e328dfe1c534957051333a87b3210a12743b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 23 09:32:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 23 09:32:45 2006 -0800"
      },
      "message": "Fix reiserfs after \"test_clear_page_dirty()\" removal\n\nThanks to Len Brown for testing this fix, since while they have in the\npast, none of my machines run reiserfs at the moment.\n\nCc: Vladimir V. Saveliev \u003cvs@namesys.com\u003e\nAcked-by: Len Brown \u003clenb@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6f5a9da1af5a8c286575c30c2706dc1fbef9164b",
      "tree": "42678c62fe6196d8d9fb7917c1f0e890fb0f50e4",
      "parents": [
        "6d3a25f1fb75206ae8b2b1cdd1431b3852e1a45a"
      ],
      "author": {
        "name": "Hisashi Hifumi",
        "email": "hifumi.hisashi@oss.ntt.co.jp",
        "time": "Fri Dec 22 01:11:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:51 2006 -0800"
      },
      "message": "[PATCH] jbd: wait for already submitted t_sync_datalist buffer to complete\n\nIn the current jbd code, if a buffer on BJ_SyncData list is dirty and not\nlocked, the buffer is refiled to BJ_Locked list, submitted to the IO and\nwaited for IO completion.\n\nBut the fsstress test showed the case that when a buffer was already\nsubmitted to the IO just before the buffer_dirty(bh) check, the buffer was\nnot waited for IO completion.\n\nFollowing patch solves this problem.  If it is assumed that a buffer is\nsubmitted to the IO before the buffer_dirty(bh) check and still being\nwritten to disk, this buffer is refiled to BJ_Locked list.\n\nSigned-off-by: Hisashi Hifumi \u003chifumi.hisashi@oss.ntt.co.jp\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: \"Stephen C. Tweedie\" \u003csct@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "01b2d93ca4c495f056471189ac6c4e6ac4cbbccb",
      "tree": "86aa1aabae8207e693e31ee68b526376388a36a3",
      "parents": [
        "31fccf7fe4097e62f038bdfe8f4f68ecaea8ebe7"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Fri Dec 22 01:10:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:50 2006 -0800"
      },
      "message": "[PATCH] fdtable: Provide free_fdtable() wrapper\n\nChristoph Hellwig has expressed concerns that the recent fdtable changes\nexpose the details of the RCU methodology used to release no-longer-used\nfdtable structures to the rest of the kernel.  The trivial patch below\naddresses these concerns by introducing the appropriate free_fdtable()\ncalls, which simply wrap the release RCU usage.  Since free_fdtable() is a\none-liner, it makes sense to promote it to an inline helper.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "163ca88b9c5858909ee3f8801ae0096b5f94e835",
      "tree": "07dc9cae76a3a1c0b7f80d47b22dc4efc686959b",
      "parents": [
        "9127d4b1d9b2e8fba8e7fbc7f88ea93e5eb01396"
      ],
      "author": {
        "name": "Josh Boyer",
        "email": "jwboyer@gmail.com",
        "time": "Fri Dec 22 01:09:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:48 2006 -0800"
      },
      "message": "[PATCH] Make JFFS depend on CONFIG_BROKEN\n\nMark JFFS as broken and provide a warning to users that it is deprecated\nand scheduled for removal in 2.6.21\n\nSigned-off-by: Josh Boyer \u003cjwboyer@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ba3ff12fca318225cb978c6181b83d38dcbc5b09",
      "tree": "fe1ae914a197aa6e74a7c1281bf38888e2eac3d5",
      "parents": [
        "ef8142a525c58dec325e8dd9a7bf92fb240d05c7"
      ],
      "author": {
        "name": "Michael Halcrow",
        "email": "mhalcrow@us.ibm.com",
        "time": "Fri Dec 22 01:08:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:48 2006 -0800"
      },
      "message": "[PATCH] fsstack: Remove inode copy\n\nTrevor found a file size problem in eCryptfs in recent kernels, and he\ntracked it down to an fsstack change.\n\nThis was the eCryptfs copy_attr_all:\n\n\u003e -void ecryptfs_copy_attr_all(struct inode *dest, const struct inode *src)\n\u003e -{\n\u003e -       dest-\u003ei_mode \u003d src-\u003ei_mode;\n\u003e -       dest-\u003ei_nlink \u003d src-\u003ei_nlink;\n\u003e -       dest-\u003ei_uid \u003d src-\u003ei_uid;\n\u003e -       dest-\u003ei_gid \u003d src-\u003ei_gid;\n\u003e -       dest-\u003ei_rdev \u003d src-\u003ei_rdev;\n\u003e -       dest-\u003ei_atime \u003d src-\u003ei_atime;\n\u003e -       dest-\u003ei_mtime \u003d src-\u003ei_mtime;\n\u003e -       dest-\u003ei_ctime \u003d src-\u003ei_ctime;\n\u003e -       dest-\u003ei_blkbits \u003d src-\u003ei_blkbits;\n\u003e -       dest-\u003ei_flags \u003d src-\u003ei_flags;\n\u003e -}\n\nThis is the fsstack copy_attr_all:\n\n\u003e +void fsstack_copy_attr_all(struct inode *dest, const struct inode *src,\n\u003e +                               int (*get_nlinks)(struct inode *))\n\u003e +{\n\u003e +       if (!get_nlinks)\n\u003e +               dest-\u003ei_nlink \u003d src-\u003ei_nlink;\n\u003e +       else\n\u003e +               dest-\u003ei_nlink \u003d (*get_nlinks)(dest);\n\u003e +\n\u003e +       dest-\u003ei_mode \u003d src-\u003ei_mode;\n\u003e +       dest-\u003ei_uid \u003d src-\u003ei_uid;\n\u003e +       dest-\u003ei_gid \u003d src-\u003ei_gid;\n\u003e +       dest-\u003ei_rdev \u003d src-\u003ei_rdev;\n\u003e +       dest-\u003ei_atime \u003d src-\u003ei_atime;\n\u003e +       dest-\u003ei_mtime \u003d src-\u003ei_mtime;\n\u003e +       dest-\u003ei_ctime \u003d src-\u003ei_ctime;\n\u003e +       dest-\u003ei_blkbits \u003d src-\u003ei_blkbits;\n\u003e +       dest-\u003ei_flags \u003d src-\u003ei_flags;\n\u003e +\n\u003e +       fsstack_copy_inode_size(dest, src);\n\u003e +}\n\nThe addition of copy_inode_size breaks eCryptfs, since eCryptfs needs to\ninterpolate the file sizes (eCryptfs has extra space in the lower file for\nthe header).  The setting of the upper inode size occurs elsewhere in\neCryptfs, and the new copy_attr_all now undoes what eCryptfs was doing\nright beforehand.\n\nI see three ways of going forward from here.  (1) Something like this patch\nneeds to go in (assuming it jives with Unionfs), (2) we need to make a\nchange to the fsstack API for more fine-grained control over copying\nattributes (e.g., by also including a callback function for calculating the\nright file size, which will require some more work on both eCryptfs and\nUnionfs), or (3) the fsstack patch on eCryptfs (commit\n0cc72dc7f050188d8d7344b1dd688cbc68d3cd30 made on Fri Dec 8 02:36:31 2006\n-0800) needs to be yanked in 2.6.20.\n\nI think the simplest solution, from eCryptfs\u0027 perspective, is to just\nremove the inode size copy.\n\nRemove inode size copy in general fsstack attr copy code. Stacked\nfilesystems may need to interpolate the inode size, since the file\nsize in the lower file may be different than the file size in the\nstacked layer.\n\nSigned-off-by: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nAcked-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3b2b96abbf321891bdde5412d23bc4123c6cccec",
      "tree": "1b90419a0e06d2713752ed4261b7c836f7c86cc1",
      "parents": [
        "99eea6a105106a94758724ccce996607f60bc0f2"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Dec 22 01:07:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:47 2006 -0800"
      },
      "message": "[PATCH] fs/sysv/: proper prototypes for 2 functions\n\nAdd proper prototypes for sysv_{init,destroy}_icache() in sysv.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "921320210bd2ec4f17053d283355b73048ac0e56",
      "tree": "d2a0b5d60d2f3518e717038dd1eec5eaf4fab13b",
      "parents": [
        "9280f6822c2d7112b47107251fce307aefb31f35"
      ],
      "author": {
        "name": "David Chinner",
        "email": "dgc@sgi.com",
        "time": "Thu Dec 21 10:24:01 2006 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 21 10:01:08 2006 -0800"
      },
      "message": "[PATCH] Fix XFS after clear_page_dirty() removal\n\nXFS appears to call clear_page_dirty to get the mapping tree dirty tag\nset correctly at the same time the page dirty flag is cleared.  I note\nthat this can be done by set_page_writeback() if we clear the dirty flag\non the page first when we are writing back the entire page.\n\nHence it seems to me that the XFS call to clear_page_dirty() could\neasily be substituted by clear_page_dirty_for_io() followed by a call to\nset_page_writeback() to get the mapping tree tags set correctly after\nthe page has been marked clean.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9280f6822c2d7112b47107251fce307aefb31f35",
      "tree": "85b972529c22c2089c38290d5cd4717aab13d2e4",
      "parents": [
        "d0e671a932cb9c653b27393cec26aec012a8d97e"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Dec 21 15:18:23 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 21 09:25:08 2006 -0800"
      },
      "message": "[PATCH] fuse: remove clear_page_dirty() call\n\nThe use by FUSE was just a remnant of an optimization from the time\nwhen writable mappings were supported.\n\nNow FUSE never actually allows the creation of dirty pages, so this\ninvocation of clear_page_dirty() is effectively a no-op.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d0e671a932cb9c653b27393cec26aec012a8d97e",
      "tree": "9625f4462e2e0f6a5756b20a074dcf039761e554",
      "parents": [
        "fba2591bf4e418b6c3f9f8794c9dd8fe40ae7bd9"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@linux.vnet.ibm.com",
        "time": "Wed Dec 20 15:55:35 2006 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 21 09:24:03 2006 -0800"
      },
      "message": "[PATCH] Fix JFS after clear_page_dirty() removal\n\nThis patch removes some questionable code that attempted to make a\nno-longer-used page easier to reclaim.\n\nCalling metapage_writepage against such a page will not result in any\nI/O being performed, so removing this code shouldn\u0027t be a big deal.\n\n[ It\u0027s likely that we could have just replaced the \"clear_page_dirty()\"\n  call with a call to \"cancel_dirty_page()\" instead, but in the\n  meantime this is cleaner and simpler anyway, so unless there is some\n  overriding reason (and Dave implies there isn\u0027t) I\u0027ll just use this\n  patch as-is.\t\t\t- Linus ]\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fba2591bf4e418b6c3f9f8794c9dd8fe40ae7bd9",
      "tree": "d6909973e402b3171ee409f660b33df2fad029ba",
      "parents": [
        "46d2277c796f9f4937bfa668c40b2e3f43e93dd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 20 13:46:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 21 09:19:57 2006 -0800"
      },
      "message": "VM: Remove \"clear_page_dirty()\" and \"test_clear_page_dirty()\" functions\n\nThey were horribly easy to mis-use because of their tempting naming, and\nthey also did way more than any users of them generally wanted them to\ndo.\n\nA dirty page can become clean under two circumstances:\n\n (a) when we write it out.  We have \"clear_page_dirty_for_io()\" for\n     this, and that function remains unchanged.\n\n     In the \"for IO\" case it is not sufficient to just clear the dirty\n     bit, you also have to mark the page as being under writeback etc.\n\n (b) when we actually remove a page due to it becoming inaccessible to\n     users, notably because it was truncate()\u0027d away or the file (or\n     metadata) no longer exists, and we thus want to cancel any\n     outstanding dirty state.\n\nFor the (b) case, we now introduce \"cancel_dirty_page()\", which only\ntouches the page state itself, and verifies that the page is not mapped\n(since cancelling writes on a mapped page would be actively wrong as it\nis still accessible to users).\n\nSome filesystems need to be fixed up for this: CIFS, FUSE, JFS,\nReiserFS, XFS all use the old confusing functions, and will be fixed\nseparately in subsequent commits (with some of them just removing the\noffending logic, and others using clear_page_dirty_for_io()).\n\nThis was confirmed by Martin Michlmayr to fix the apt database\ncorruption on ARM.\n\nCc: Martin Michlmayr \u003ctbm@cyrius.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Andrei Popa \u003candrei.popa@i-neo.ro\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Gordon Farquharson \u003cgordonfarquharson@gmail.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "46d2277c796f9f4937bfa668c40b2e3f43e93dd0",
      "tree": "cfde4d8c4b1d721455c978a53e70a55a6c73c3ef",
      "parents": [
        "9bfb18392ef586467277fa25d8f3a7a93611f6df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Dec 19 15:21:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 21 09:04:31 2006 -0800"
      },
      "message": "Clean up and make try_to_free_buffers() not race with dirty pages\n\nThis is preparatory work in our continuing saga on some hard-to-trigger\nfile corruption with shared writable mmap() after the dirty page\ntracking changes (commit d08b3851da41d0ee60851f2c75b118e1f7a5fc89 etc)\nwere merged.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5ccac88eeb5659c716af8e695e2943509c80d172",
      "tree": "396ef0d405c27e7c22f993c69af752ef3142a125",
      "parents": [
        "ba6d8b1eba88665d12edd53385d3e26fce5613a3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Dec 18 13:31:18 2006 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 21 00:16:03 2006 -0800"
      },
      "message": "[PATCH] fix leaks on pipe(2) failure exits\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aba54da3d05e910199ea8255992c244c9abadd91",
      "tree": "fc634ff11819f2f94ef23478d6471757dc21c6d6",
      "parents": [
        "0bf3a9d82adc62fb05e3f108ddd46eb088960f26"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "dedekind@infradead.org",
        "time": "Tue Dec 19 15:45:23 2006 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Tue Dec 19 14:20:16 2006 +0000"
      },
      "message": "[JFFS2] add cond_resched() when garbage collecting deletion dirent\n\nWe observe soft lockups when doing heavy test which creates\ndirectory with a lot of direntries and deletes them. This\ncycle is the reason fo this. Make it nicer and add cond_resched()\ninside of it.\n\nSigned-off-by: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "1003f06953472ecc34f12d9867670f475a8c1af6",
      "tree": "49c512b471141d7c63a6941d02d1175ccb25dad6",
      "parents": [
        "c80e7c83d56866a735236b45441f024b589f9e88"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Dec 12 10:16:25 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Dec 15 12:51:51 2006 -0500"
      },
      "message": "[GFS2] Fix Kconfig\n\nHere is a patch to fix up the Kconfig so that we don\u0027t land up with\nproblems when people disable the NET subsystem.  Thanks for all the hints and\nsuggestions that people have sent me regarding this.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Aleksandr Koltsoff \u003cczr@iki.fi\u003e\nCc: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Chris Zubrzycki \u003cchris@middle--earth.org\u003e\nCc: Patrick Caulfield \u003cpcaulfie@redhat.com\u003e\n"
    },
    {
      "commit": "c80e7c83d56866a735236b45441f024b589f9e88",
      "tree": "071fd93450d534c20594ab8b72def41ea5c61270",
      "parents": [
        "d1998ef38a13c4e74c69df55ccd38b0440c429b2"
      ],
      "author": {
        "name": "Patrick Caulfield",
        "email": "pcaulfie@redhat.com",
        "time": "Fri Dec 08 14:31:12 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Dec 15 12:51:22 2006 -0500"
      },
      "message": "[DLM] fix compile warning\n\nThis patch fixes a compile warning in lowcomms-tcp.c indicating that\nkmem_cache_t is deprecated.\n\nSigned-Off-By: Patrick Caulfield \u003cpcaulfie@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "29a7f3ada7fea5510504c5359c3f70d109aeb055",
      "tree": "fde6accdce93eece0b513a0ad129dba870acb912",
      "parents": [
        "65c333367b1aea57d58168ad3dc1df27b0227401"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "compudj@krystal.dyndns.org",
        "time": "Fri Nov 24 13:51:14 2006 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 13 15:38:45 2006 -0800"
      },
      "message": "DebugFS : file/directory removal fix\n\nFix file and directory removal in debugfs. Add inotify support for file removal.\n\nThe following scenario :\ncreate dir a\ncreate dir a/b\n\ncd a/b (some process goes in cwd a/b)\n\nrmdir a/b\nrmdir a\n\nfails due to the fact that \"a\" appears to be non empty. It is because\nthe \"b\" dentry is not deleted from \"a\" and still in use. The same\nproblem happens if \"b\" is a file. d_delete is nice enough to know when\nit needs to unhash and free the dentry if nothing else is using it or,\nif someone is using it, to remove it from the hash queues and wait for\nit to be deleted when it has no users.\n\nThe nice side-effect of this fix is that it calls the file removal\nnotification.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "65c333367b1aea57d58168ad3dc1df27b0227401",
      "tree": "a90a34d43c815d99de4d40eac372fb98d4dbffd7",
      "parents": [
        "63223a0654c2a473ae64835819b87826cb7415ee"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "compudj@krystal.dyndns.org",
        "time": "Fri Nov 24 13:50:09 2006 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 13 15:38:45 2006 -0800"
      },
      "message": "DebugFS : more file/directory creation error handling\n\nCorrect dentry count to handle creation errors.\n\nThis patch puts a dput at the file creation instead of the file removal :\nlookup_one_len already returns a dentry with reference count of 1. Then,\nthe dget() in simple_mknod increments it when the dentry is associated\nwith a file. In a scenario where simple_create or simple_mkdir returns\nan error, this would lead to an unwanted increment of the reference\ncounter, therefore making file removal impossible.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "63223a0654c2a473ae64835819b87826cb7415ee",
      "tree": "8c8d74c7bb4cd9b9f538d4701d92b2e6a3cca496",
      "parents": [
        "bafb232ec42aa6862798236009e8e5233d05ab36"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "compudj@krystal.dyndns.org",
        "time": "Fri Nov 24 13:48:19 2006 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 13 15:38:45 2006 -0800"
      },
      "message": "DebugFS : file/directory creation error handling\n\nFix error handling of file and directory creation in DebugFS.\n\nThe error path should release the file system because no _remove will be called\nfor this erroneous creation.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "bafb232ec42aa6862798236009e8e5233d05ab36",
      "tree": "498330fe4ef98ef06ff4692f6d1d1c9a900ecee5",
      "parents": [
        "4f36557fbe4ab59feb2783cdb5d049cb8c3f34f3"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "compudj@krystal.dyndns.org",
        "time": "Fri Nov 24 13:46:30 2006 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 13 15:38:45 2006 -0800"
      },
      "message": "DebugFS : coding style fixes\n\nMinor coding style fixes along the way : 80 cols and a white space.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "4f36557fbe4ab59feb2783cdb5d049cb8c3f34f3",
      "tree": "f45a5b1057f7650f25b7b5d6d87d0d624a10596d",
      "parents": [
        "44c53c4ff01a3551e9d73604eba42e372e9d0c1a"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "compudj@krystal.dyndns.org",
        "time": "Fri Nov 24 13:45:37 2006 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 13 15:38:45 2006 -0800"
      },
      "message": "DebugFS : inotify create/mkdir support\n\nAdd inotify create and mkdir events to DebugFS.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "5cbded585d129d0226cb48ac4202b253c781be26",
      "tree": "fb24edc194a57ee81a3bf8a4dd8a95030dd0ad22",
      "parents": [
        "0743b86800cf1dfbf96df4a438938127bbe4476c"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Wed Dec 13 00:35:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:58 2006 -0800"
      },
      "message": "[PATCH] getting rid of all casts of k[cmz]alloc() calls\n\nRun this:\n\n\t#!/bin/sh\n\tfor f in $(grep -Erl \"\\([^\\)]*\\) *k[cmz]alloc\" *) ; do\n\t  echo \"De-casting $f...\"\n\t  perl -pi -e \"s/ ?\u003d ?\\([^\\)]*\\) *(k[cmz]alloc) *\\(/ \u003d \\1\\(/\" $f\n\tdone\n\nAnd then go through and reinstate those cases where code is casting pointers\nto non-pointers.\n\nAnd then drop a few hunks which conflicted with outstanding work.\n\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e, Ian Molton \u003cspyro@f2s.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Karsten Keil \u003ckkeil@suse.de\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Jaroslav Kysela \u003cperex@suse.cz\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f988443a84528bd30c2f474efa5e2c511959f19b",
      "tree": "40c2cfaaa7381e0dd1f5315c5b55979f40799e04",
      "parents": [
        "dd08d6ea443abafe9455997d2889719364b8794b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Dec 13 00:35:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:54 2006 -0800"
      },
      "message": "[PATCH] knfsd: Fix up some bit-rot in exp_export\n\nThe nfsservctl system call isn\u0027t used but recent nfs-utils releases for\nexporting filesystems, and consequently the code that is uses - exp_export -\nhas suffered some bitrot.\n\nParticular:\n  - some newly added fields in \u0027struct svc_export\u0027 are being initialised\n    properly.\n  - the return value is now always -ENOMEM ...\n\nThis patch fixes both these problems.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "27d630ece08ae15e35d54201665c247a9fae584c",
      "tree": "f679628de2d82d809303d1ca838afececed4ebaf",
      "parents": [
        "eeac294ebd9254a937d90b00c48863e3af229047"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:54 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd4: simplify filehandle check\n\nKill another big \"if\" clause.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eeac294ebd9254a937d90b00c48863e3af229047",
      "tree": "488ef0b8e4bb656423c03461ec1d4087c383c9b5",
      "parents": [
        "b591480bbe1a7f0e90533bce8ea86efecc84648e"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:54 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd4: simplify migration op check\n\nI\u0027m not too fond of these big if conditions.  Replace them by checks of a flag\nin the operation descriptor.  To my eye this makes the code a bit more\nself-documenting, and makes the complicated part of the code (proc_compound) a\nlittle more compact.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b591480bbe1a7f0e90533bce8ea86efecc84648e",
      "tree": "43d75e2978ecf85bab894ec6afce8cc06c5480c1",
      "parents": [
        "c954e2a5d1c9662991a41282297ddebcadee0578"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:54 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd4: reorganize compound ops\n\nDefine an op descriptor struct, use it to simplify nfsd4_proc_compound().\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c954e2a5d1c9662991a41282297ddebcadee0578",
      "tree": "21d3a470d6f76365a27224926e218da788d16b04",
      "parents": [
        "7191155bd3abbbf62368a0528f7610741d007a58"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:54 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd4: make verify and nverify wrappers\n\nMake wrappers for verify and nverify, for consistency with other ops.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7191155bd3abbbf62368a0528f7610741d007a58",
      "tree": "9f4b2e6306184f5c77d9284356b3056a6640338b",
      "parents": [
        "a4f1706a9bd94d0e33e853a7e9f40b2650d54fbf"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:54 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd4: don\u0027t inline nfsd4 compound op functions\n\nThe inlining contributes to bloating the stack of nfsd4_compound, and I want\nto change the compound op functions to function pointers anyway.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a4f1706a9bd94d0e33e853a7e9f40b2650d54fbf",
      "tree": "66c2bb36ac0b9da3edb13bcee77a46ab576a5e89",
      "parents": [
        "d9e626f1e23358487595c2d3901126d00f9de7e0"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:54 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd4: move replay_owner to cstate\n\nTuck away the replay_owner in the cstate while we\u0027re at it.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d9e626f1e23358487595c2d3901126d00f9de7e0",
      "tree": "ed81307f281929d4cbf7e5c5d56168f40c72f78d",
      "parents": [
        "ca3643171bc6e08b7c4d1f9a2ce659541a01a7fe"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:54 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd4: remove spurious replay_owner check\n\nOK, this is embarassing--I\u0027ve even looked back at the history, and cannot for\nthe life of me figure out why I added this check.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ca3643171bc6e08b7c4d1f9a2ce659541a01a7fe",
      "tree": "2128accc9584e7dd69f6b62c62ef6631f5da231f",
      "parents": [
        "01f3bd1f03599470e4695392b6ae055ed8506978"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:54 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd4: pass saved and current fh together into nfsd4 operations\n\nPass the saved and current filehandles together into all the nfsd4 compound\noperations.\n\nI want a unified interface to these operations so we can just call them by\npointer and throw out the huge switch statement.\n\nAlso I\u0027ll eventually want a structure like this--that holds the state used\nduring compound processing--for deferral.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e0bb89ef031f76dcb9c9d920d18b13948f1418da",
      "tree": "6016032b160db2cf697eea19cd0f12ace946c7cc",
      "parents": [
        "021d3a72459191a76e8e482ee4937ba6bc9fd712"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:54 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd: don\u0027t drop silently on upcall deferral\n\nTo avoid tying up server threads when nfsd makes an upcall (to mountd, to get\nexport options, to idmapd, for nfsv4 name\u003c-\u003eid mapping, etc.), we temporarily\n\"drop\" the request and save enough information so that we can revisit it\nlater.\n\nCertain failures during the deferral process can cause us to really drop the\nrequest and never revisit it.\n\nThis is often less than ideal, and is unacceptable in the NFSv4 case--rfc 3530\nforbids the server from dropping a request without also closing the\nconnection.\n\nAs a first step, we modify the deferral code to return -ETIMEDOUT (which is\ntranslated to nfserr_jukebox in the v3 and v4 cases, and remains a drop in the\nv2 case).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "021d3a72459191a76e8e482ee4937ba6bc9fd712",
      "tree": "91ce9262bac94a50f069016dae9ef8b4d88c8816",
      "parents": [
        "6899320c2cefe5ae6b606f820ba8b762ba21f34a"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:54 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd4: handling more nfsd_cross_mnt errors in nfsd4 readdir\n\nThis patch on its own causes no change in behavior, since nfsd_cross_mnt()\nonly returns -EAGAIN; but in the future I\u0027d like it to also be able to return\n-ETIMEDOUT, so we may as well handle any possible error here.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6899320c2cefe5ae6b606f820ba8b762ba21f34a",
      "tree": "a31bc8a2f916643d3f29ed4acf262ab667f491aa",
      "parents": [
        "4b41bd85d5f93af37c2730df172aeb54280be7c3"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:54 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd: simplify exp_pseudoroot\n\nNote there\u0027s no need for special handling of -EAGAIN here; nfserrno() does\nwhat we want already.  So this is a pure cleanup with no change in\nfunctionality.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b41bd85d5f93af37c2730df172aeb54280be7c3",
      "tree": "2560c8645658706c386dddb498c6a824cfa2345b",
      "parents": [
        "e57101991156aaba97c630f38e880f0d4012edcd"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:53 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd: make exp_rootfh handle exp_parent errors\n\nSince exp_parent can fail by returning an error (-EAGAIN) in addition to by\nreturning NULL, we should check for that case in exp_rootfh.\n\n(TODO: we should check that userland handles these errors too.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e57101991156aaba97c630f38e880f0d4012edcd",
      "tree": "5d0a405f254e8e17663746abdc9e5a75428ecc1f",
      "parents": [
        "b797b5beac966df5c5d96c0d39fe366f57135343"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:53 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd4: clarify units of COMPOUND_SLACK_SPACE\n\nA comment here incorrectly states that \"slack_space\" is measured in words, not\nbytes.  Remove the comment, and adjust a variable name and a few comments to\nclarify the situation.\n\nThis is pure cleanup; there should be no change in functionality.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "451c11a161168fbdbba17573d4b062fdd2a4c2c4",
      "tree": "1ee261fe5b9dd5b439096b71d5335e78441f296b",
      "parents": [
        "b21a323710e77a27b2f66af901bd3640c30aba6e"
      ],
      "author": {
        "name": "J.Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Wed Dec 13 00:35:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:53 2006 -0800"
      },
      "message": "[PATCH] knfsd: nfsd4: remove a dprink from nfsd4_lock\n\nThis dprintk is printing the wrong error now, but it\u0027s probably an unnecessary\ndprintk anyway; just remove it.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "029530f810dd5147f7e59b939eb22cfbe0beea12",
      "tree": "5d0a6bc82fd1b52ad5a640660952be9254971c60",
      "parents": [
        "69688262fb94e92a32f188b79c02dc32016d4927"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Dec 13 00:35:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:53 2006 -0800"
      },
      "message": "[PATCH] one more EXPORT_UNUSED_SYMBOL removal\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "69688262fb94e92a32f188b79c02dc32016d4927",
      "tree": "8574331ba1947cc3479d74e6e6731ec6701ab282",
      "parents": [
        "1de241268d7b6bea05d64f9269bf9aa90be49ff1"
      ],
      "author": {
        "name": "Tigran Aivazian",
        "email": "tigran@aivazian.fsnet.co.uk",
        "time": "Wed Dec 13 00:35:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:53 2006 -0800"
      },
      "message": "[PATCH] update Tigran\u0027s email addresses\n\nAs Adrian pointed out recently, there were still a couple of places where\nI should have fixed my email address.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1de241268d7b6bea05d64f9269bf9aa90be49ff1",
      "tree": "c50ef7b5a4480cac82f92c4131d0c7357a86c15b",
      "parents": [
        "2154227a2c6cf04e28576b59c684123eb0e81958"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Dec 13 00:35:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:53 2006 -0800"
      },
      "message": "[PATCH] ncpfs: ensure we free wdog_pid on parse_option or fill_inode failure\n\nThis took a little refactoring but now errors are handled cleanly.  When\nthis code used pid_t values this wasn\u0027t necessary because you can\u0027t\nleak a pid_t.\n\nThanks to Peter Vandrovec for spotting this.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Peter Vandrovec \u003cvandrove@vc.cvut.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2154227a2c6cf04e28576b59c684123eb0e81958",
      "tree": "a568074140eb7b63886a468315cb25224901a7bc",
      "parents": [
        "a71113da44063b587b5a4c2fc94c948a14f2bb43"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Dec 13 00:35:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:53 2006 -0800"
      },
      "message": "[PATCH] ncpfs: Use struct pid to track the userspace watchdog process\n\nThis patch converts the tracking of the user space watchdog process from using\na pid_t to use struct pid.  This makes us safe from pid wrap around issues and\nprepares the way for the pid namespace.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Petr Vandrovec \u003cVANDROVE@vc.cvut.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a71113da44063b587b5a4c2fc94c948a14f2bb43",
      "tree": "c2b804232dcda3e403d43977e7329c21e787e242",
      "parents": [
        "3cec556a84be02bcd8755422eec61f1b9bee4e2f"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Dec 13 00:35:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:53 2006 -0800"
      },
      "message": "[PATCH] smbfs: Make conn_pid a struct pid\n\nsmbfs keeps track of the user space server process in conn_pid.  This converts\nthat track to use a struct pid instead of pid_t.  This keeps us safe from pid\nwrap around issues and prepares the way for the pid namespace.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e8c5c045d790e7018c56f1a998a2d240b732ea3c",
      "tree": "d64de6d21d715d163244a1caeedd617955eaad5e",
      "parents": [
        "905f3ed62515f233fea09dc5ad68bbcff4903520"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Wed Dec 13 00:35:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:52 2006 -0800"
      },
      "message": "[PATCH] lockd endianness annotations\n\nAnnotated, all places switched to keeping status net-endian.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cd86128088554d64fea1679191509f00e6353c5b",
      "tree": "a828960f4bd44ef1682d88618e58c6ccd2367bc1",
      "parents": [
        "90aef12e6dd609e1ad7fb70044eedc78ca55ee5e"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Wed Dec 13 00:34:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:52 2006 -0800"
      },
      "message": "[PATCH] Fix numerous kcalloc() calls, convert to kzalloc()\n\nAll kcalloc() calls of the form \"kcalloc(1,...)\" are converted to the\nequivalent kzalloc() calls, and a few kcalloc() calls with the incorrect\nordering of the first two arguments are fixed.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: Adam Belay \u003cambx1@neo.rr.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "90aef12e6dd609e1ad7fb70044eedc78ca55ee5e",
      "tree": "35ff39f80d010c548df660d3a3e53c5861741777",
      "parents": [
        "74c383f1400f559562aa517d6d62f77245bddf52"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Dec 13 00:34:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:51 2006 -0800"
      },
      "message": "[PATCH] Use activate_mm() in fs/aio.c:use_mm()\n\nactivate_mm() is not the right thing to be using in use_mm().  It should be\nswitch_mm().\n\nOn normal x86, they\u0027re synonymous, but for the Xen patches I\u0027m adding a\nhook which assumes that activate_mm is only used the first time a new mm\nis used after creation (I have another hook for dealing with dup_mm).  I\nthink this use of activate_mm() is the only place where it could be used\na second time on an mm.\n\n\u003eFrom a quick look at the other architectures I think this is OK (most\nsimply implement one in terms of the other), but some are doing some\nsubtly different stuff between the two.\n\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e61c90188b9956edae1105eef361d8981a352fcd",
      "tree": "7de9cc41910c55e32aba0f8cc07f73923b7cb515",
      "parents": [
        "7e913c53609d5e8374f55d6f29c0bcd6650a2362"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Wed Dec 13 00:34:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:50 2006 -0800"
      },
      "message": "[PATCH] optimize o_direct on block devices\n\nImplement block device specific .direct_IO method instead of going through\ngeneric direct_io_worker for block device.\n\ndirect_io_worker() is fairly complex because it needs to handle O_DIRECT on\nfile system, where it needs to perform block allocation, hole detection,\nextents file on write, and tons of other corner cases.  The end result is\nthat it takes tons of CPU time to submit an I/O.\n\nFor block device, the block allocation is much simpler and a tight triple\nloop can be written to iterate each iovec and each page within the iovec in\norder to construct/prepare bio structure and then subsequently submit it to\nthe block layer.  This significantly speeds up O_D on block device.\n\n[akpm@osdl.org: small speedup]\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7e913c53609d5e8374f55d6f29c0bcd6650a2362",
      "tree": "77082566215aa8c8a43e2217819e35ce39ffbe63",
      "parents": [
        "47ae32d6a54955a041cdc30b06d0bb16e75f68d5"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Dec 13 00:34:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:50 2006 -0800"
      },
      "message": "[PATCH] ocfs2: relative atime support\n\nUpdate ocfs2_should_update_atime() to understand the MNT_RELATIME flag and\nto test against mtime / ctime accordingly.\n\n[akpm@osdl.org: cleanups]\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Valerie Henson \u003cval_henson@linux.intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47ae32d6a54955a041cdc30b06d0bb16e75f68d5",
      "tree": "b28623f98ae536342d35443c6548c373df342e7f",
      "parents": [
        "b227613841d4d211a10c5860acc73e133b613bc0"
      ],
      "author": {
        "name": "Valerie Henson",
        "email": "val_henson@linux.intel.com",
        "time": "Wed Dec 13 00:34:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:50 2006 -0800"
      },
      "message": "[PATCH] relative atime\n\nAdd \"relatime\" (relative atime) support.  Relative atime only updates the\natime if the previous atime is older than the mtime or ctime.  Like\nnoatime, but useful for applications like mutt that need to know when a\nfile has been read since it was last modified.\n\nA corresponding patch against mount(8) is available at\nhttp://userweb.kernel.org/~akpm/mount-relative-atime.txt\n\nSigned-off-by: Valerie Henson \u003cval_henson@linux.intel.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Karel Zak \u003ckzak@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b227613841d4d211a10c5860acc73e133b613bc0",
      "tree": "273f9672954f65edb0098da6f65a27a30ad46bbc",
      "parents": [
        "1c0350bd0c9b59957760e67516973db35bafa050"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Dec 13 00:34:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:50 2006 -0800"
      },
      "message": "[PATCH] touch_atime() cleanup\n\nSimplify touch_atime() layout.\n\nCc: Valerie Henson \u003cval_henson@linux.intel.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d4c3cca941b64a938eaa9734585a93547c6be323",
      "tree": "48b78bda9d4da9c3bdfb30548cb65f0bc4015733",
      "parents": [
        "426d62e2158c2fd3aa1ed1fd62122afd2ccb89ae"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Dec 13 00:34:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:47 2006 -0800"
      },
      "message": "[PATCH] constify pipe_buf_operations\n\n- pipe/splice should use const pipe_buf_operations and file_operations\n\n- struct pipe_inode_info has an unused field \"start\" : get rid of it.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "775ba7ad491a154f99871fe603f03366e84ae159",
      "tree": "7112bd513ff7c60033f4ba07790cab8a7d3195a2",
      "parents": [
        "d9405057c18cdc62eade7106a774d87a3e080875",
        "18b36c7119aa868fdfae6855b86824db238e5ebc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Dec 12 18:51:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Dec 12 18:51:51 2006 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:\n  Fix inotify maintainers entry\n  Fix typo in new debug options.\n  Jon needs a new shift key.\n  fs: Convert kmalloc() + memset() to kzalloc() in fs/.\n  configfs.h: Remove dead macro definitions.\n  kconfig: Standardize \"depends\" -\u003e \"depends on\" in Kconfig files\n  e100: replace kmalloc with kcalloc\n  um: replace kmalloc+memset with kzalloc\n  fix typo in net/ipv4/ip_fragment.c\n  include/linux/compiler.h: reject gcc 3 \u003c gcc 3.2\n  Kconfig: fix spelling error in config KALLSYMS help text\n  Remove duplicate \"have to\" in comment\n  Fix small typo in drivers/serial/icom.c\n  Use consistent casing in help message\n  EXT{2,3,4}_FS: remove outdated part of the help text\n"
    },
    {
      "commit": "b87576d59b5e8bd235e8579fd33b5d5af528b210",
      "tree": "b6074c27635d7cfe82fb3290f25517ec6a522c68",
      "parents": [
        "df4365ce8829e84e8e6fe7d2371ea8f40630e865"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Tue Dec 12 20:07:35 2006 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Dec 12 20:07:35 2006 +0100"
      },
      "message": "fs: Convert kmalloc() + memset() to kzalloc() in fs/.\n\nConvert the single available instance of kmalloc() + memset() to\nkzalloc() in the fs/ directory.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "bef1f40261c8bc5ad2ca70a5a1760b0eb79b6812",
      "tree": "c2799c3f46bb82d3db3be07ed22edc13b4352114",
      "parents": [
        "c48e3fca3f063edb0c8c4d163e880b94c1d9f93d"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Tue Dec 12 20:04:19 2006 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Dec 12 20:04:19 2006 +0100"
      },
      "message": "kconfig: Standardize \"depends\" -\u003e \"depends on\" in Kconfig files\n\nStandardize the miniscule percentage of occurrences of \"depends\" in\nKconfig files to \"depends on\", and update kconfig-language.txt to\nreflect that.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "741441ab7800f1eb031e74fd720f4f8f361678ed",
      "tree": "cd265afa96c3753116f570e483408ed8a94fe1d7",
      "parents": [
        "659dba34807692a6ebd55e7859dff2c7cb1b005d",
        "828ae6afbef03bfe107a4a8cc38798419d6a2765"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Dec 12 10:21:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Dec 12 10:21:01 2006 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2:\n  [patch 3/3] OCFS2 Configurable timeouts - Protocol changes\n  [patch 2/3] OCFS2 Configurable timeouts\n  [patch 1/3] OCFS2 - Expose struct o2nm_cluster\n  ocfs2: Synchronize feature incompat flags in ocfs2_fs.h\n  ocfs2: update mount option documentation\n  ocfs2: local mounts\n"
    },
    {
      "commit": "d23edbd3d596553db4ffac71a6e3745e85aee7cc",
      "tree": "a162bc8fdc2daf78ad30315835c2c1bcf3abc697",
      "parents": [
        "11c302c14d8ddc47504bd3b650bc9e8da7c717b7"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@gmx.de",
        "time": "Tue Dec 12 19:07:45 2006 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Dec 12 19:07:45 2006 +0100"
      },
      "message": "EXT{2,3,4}_FS: remove outdated part of the help text\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "11c302c14d8ddc47504bd3b650bc9e8da7c717b7",
      "tree": "71f39a71ed889df3f3f91420dd2074b134ed0e40",
      "parents": [
        "335302618f47b43e1204d24a3edb65a3e5bc8c03",
        "36b12fb709d229f277efbbe710031d5a429b2412"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Dec 12 07:45:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Dec 12 07:45:48 2006 -0800"
      },
      "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 conflicting superblock flags\n"
    },
    {
      "commit": "828ae6afbef03bfe107a4a8cc38798419d6a2765",
      "tree": "aa9cd680db9af2070f124cfd66aad88da279a5b9",
      "parents": [
        "b5dd80304da482d77b2320e1a01a189e656b9770"
      ],
      "author": {
        "name": "Andrew Beekhof",
        "email": "abeekhof@suse.de",
        "time": "Mon Dec 04 14:04:55 2006 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Dec 11 14:26:44 2006 -0800"
      },
      "message": "[patch 3/3] OCFS2 Configurable timeouts - Protocol changes\n\nModify the OCFS2 handshake to ensure essential timeouts are configured\nidentically on all nodes.\n\nOnly allow changes when there are no connected peers\n\nImproves the logic in o2net_advance_rx() which broke now that\nsizeof(struct o2net_handshake) is greater than sizeof(struct o2net_msg)\n\nIncluded is the field for userspace-heartbeat timeout to avoid the need for\nfurther protocol changes.\n\nUses a global spinlock to ensure the decisions to update configfs entries\nare made on the correct value.  The region covered by the spinlock when\nincrementing the counter is much larger as this is the more critical case.\n\nSmall cleanup contributed by Adrian Bunk \u003cbunk@stusta.de\u003e\n\nSigned-off-by: Andrew Beekhof \u003cabeekhof@suse.de\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "8993780a6e44fb4e7ed34e33458506a775356c6e",
      "tree": "afa29f461ab5873eb8270d1b077b927feac1a9a7",
      "parents": [
        "9202f32558601c2c99ddc438eb3218131d00d413"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 11 09:28:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 11 11:34:11 2006 -0800"
      },
      "message": "Make SLES9 \"get_kernel_version\" work on the kernel binary again\n\nAs reported by Andy Whitcroft, at least the SLES9 initrd build process\ndepends on getting the kernel version from the kernel binary.  It does\nthat by simply trawling the binary and looking for the signature of the\n\"linux_banner\" string (the string \"Linux version \" to be exact. Which\nis really broken in itself, but whatever..)\n\nThat got broken when the string was changed to allow /proc/version to\nchange the UTS release information dynamically, and \"get_kernel_version\"\nthus returned \"%s\" (see commit a2ee8649ba6d71416712e798276bf7c40b64e6e5:\n\"[PATCH] Fix linux banner utsname information\").\n\nThis just restores \"linux_banner\" as a static string, which should fix\nthe version finding.  And /proc/version simply uses a different string.\n\nTo avoid wasting even that miniscule amount of memory, the early boot\nstring should really be marked __initdata, but that just causes the same\nbug in SLES9 to re-appear, since it will then find other occurrences of\n\"Linux version \" first.\n\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Steve Fox \u003cdrfickle@us.ibm.com\u003e\nAcked-by: Olaf Hering \u003colaf@aepfle.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "44d306e1508fef6fa7a6eb15a1aba86ef68389a6",
      "tree": "84edb1f4d6e1e2d3926f152bad132e037da9024c",
      "parents": [
        "4c36a5dec25fb344ad76b11860da3a8b50bd1248"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Dec 10 02:21:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] user of the jiffies rounding code: JBD\n\nThis patch introduces a user: of the round_jiffies() function; the \"5 second\"\next3/jbd wakeup.\n\nWhile \"every 5 seconds\" doesn\u0027t sound as a problem, there can be many of these\n(and these timers do add up over all the kernel).  The \"5 second\" wakeup isn\u0027t\nreally timing sensitive; in addition even with rounding it\u0027ll still happen\nevery 5 seconds (with the exception of the very first time, which is likely to\nbe rounded up to somewhere closer to 6 seconds)\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5466b456ed6748e0bfe02831e570004d4c04c1d7",
      "tree": "90afd9e5142edb8f9a6facee7258ed2c556a6d9b",
      "parents": [
        "4fd45812cbe875a620c86a096a5d46c742694b7e"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Sun Dec 10 02:21:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] fdtable: Implement new pagesize-based fdtable allocator\n\nThis patch provides an improved fdtable allocation scheme, useful for\nexpanding fdtable file descriptor entries.  The main focus is on the fdarray,\nas its memory usage grows 128 times faster than that of an fdset.\n\nThe allocation algorithm sizes the fdarray in such a way that its memory usage\nincreases in easy page-sized chunks. The overall algorithm expands the allowed\nsize in powers of two, in order to amortize the cost of invoking vmalloc() for\nlarger allocation sizes. Namely, the following sizes for the fdarray are\nconsidered, and the smallest that accommodates the requested fd count is\nchosen:\n\n    pagesize / 4\n    pagesize / 2\n    pagesize      \u003c- memory allocator switch point\n    pagesize * 2\n    pagesize * 4\n    ...etc...\n\nUnlike the current implementation, this allocation scheme does not require a\nloop to compute the optimal fdarray size, and can be done in efficient\nstraightline code.\n\nFurthermore, since the fdarray overflows the pagesize boundary long before any\nof the fdsets do, it makes sense to optimize run-time by allocating both\nfdsets in a single swoop.  Even together, they will still be, by far, smaller\nthan the fdarray.  The fdtable-\u003eopen_fds is now used as the anchor for the\nfdset memory allocation.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4fd45812cbe875a620c86a096a5d46c742694b7e",
      "tree": "8d2c99caa718da6cda87229076adf708494ff251",
      "parents": [
        "bbea9f69668a3d0cf9feba15a724cd02896f8675"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Sun Dec 10 02:21:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] fdtable: Remove the free_files field\n\nAn fdtable can either be embedded inside a files_struct or standalone (after\nbeing expanded).  When an fdtable is being discarded after all RCU references\nto it have expired, we must either free it directly, in the standalone case,\nor free the files_struct it is contained within, in the embedded case.\n\nCurrently the free_files field controls this behavior, but we can get rid of\nit entirely, as all the necessary information is already recorded.  We can\ndistinguish embedded and standalone fdtables using max_fds, and if it is\nembedded we can divine the relevant files_struct using container_of().\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bbea9f69668a3d0cf9feba15a724cd02896f8675",
      "tree": "bc58506e4daba4a04309181a5501ae4eb5424783",
      "parents": [
        "f3d19c90fb117a5f080310a4592929aa8e1ad8e9"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Sun Dec 10 02:21:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] fdtable: Make fdarray and fdsets equal in size\n\nCurrently, each fdtable supports three dynamically-sized arrays of data: the\nfdarray and two fdsets.  The code allows the number of fds supported by the\nfdarray (fdtable-\u003emax_fds) to differ from the number of fds supported by each\nof the fdsets (fdtable-\u003emax_fdset).\n\nIn practice, it is wasteful for these two sizes to differ: whenever we hit a\nlimit on the smaller-capacity structure, we will reallocate the entire fdtable\nand all the dynamic arrays within it, so any delta in the memory used by the\nlarger-capacity structure will never be touched at all.\n\nRather than hogging this excess, we shouldn\u0027t even allocate it in the first\nplace, and keep the capacities of the fdarray and the fdsets equal.  This\npatch removes fdtable-\u003emax_fdset.  As an added bonus, most of the supporting\ncode becomes simpler.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5eb6c7a2ab413dea1ee6c08dd58263a1c2c2efa3",
      "tree": "f1e2f7994321290f4e6e641894cc21176c16767b",
      "parents": [
        "8459d86aff04fa53c2ab6a6b9f355b3063cc8014"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Sun Dec 10 02:21:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:21 2006 -0800"
      },
      "message": "[PATCH] dio: lock refcount operations\n\nThe wait_for_more_bios() function name was poorly chosen.  While looking to\nclean it up it I noticed that the dio struct refcounting between the bio\ncompletion and dio submission paths was racey.\n\nThe bio submission path was simply freeing the dio struct if\natomic_dec_and_test() indicated that it dropped the final reference.\n\nThe aio bio completion path was dereferencing its dio struct pointer *after\ndropping its reference* based on the remaining number of references.\n\nThese two paths could race and result in the aio bio completion path\ndereferencing a freed dio, though this was not observed in the wild.\n\nThis moves the refcount under the bio lock so that bio completion can drop\nits reference and decide to wake all in one atomic step.\n\nOnce testing and waking is locked dio_await_one() can test its sleeping\ncondition and mark itself uninterruptible under the lock.  It gets simpler\nand wait_for_more_bios() disappears.\n\nThe addition of the interrupt masking spin lock acquiry in dio_bio_submit()\nlooks alarming.  This lock acquiry existed in that path before the recent\ndio completion patch set.  We shouldn\u0027t expect significant performance\nregression from returning to the behaviour that existed before the\ncompletion clean up work.\n\nThis passed 4k block ext3 O_DIRECT fsx and aio-stress on an SMP machine.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: \u003cxfs-masters@oss.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8459d86aff04fa53c2ab6a6b9f355b3063cc8014",
      "tree": "c0584c4907f0d63a18998b7cbffdf7900609606b",
      "parents": [
        "20258b2b397031649e4a41922fe803d57017df84"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Sun Dec 10 02:21:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:21 2006 -0800"
      },
      "message": "[PATCH] dio: only call aio_complete() after returning -EIOCBQUEUED\n\nThe only time it is safe to call aio_complete() is when the -\u003eki_retry\nfunction returns -EIOCBQUEUED to the AIO core.  direct_io_worker() has\nhistorically done this by relying on its caller to translate positive return\ncodes into -EIOCBQUEUED for the aio case.  It did this by trying to keep\nconditionals in sync.  direct_io_worker() knew when finished_one_bio() was\ngoing to call aio_complete().  It would reverse the test and wait and free the\ndio in the cases it thought that finished_one_bio() wasn\u0027t going to.\n\nNot surprisingly, it ended up getting it wrong.  \u0027ret\u0027 could be a negative\nerrno from the submission path but it failed to communicate this to\nfinished_one_bio().  direct_io_worker() would return \u003c 0, it\u0027s callers\nwouldn\u0027t raise -EIOCBQUEUED, and aio_complete() would be called.  In the\nfuture finished_one_bio()\u0027s tests wouldn\u0027t reflect this and aio_complete()\nwould be called for a second time which can manifest as an oops.\n\nThe previous cleanups have whittled the sync and async completion paths down\nto the point where we can collapse them and clearly reassert the invariant\nthat we must only call aio_complete() after returning -EIOCBQUEUED.\ndirect_io_worker() will only return -EIOCBQUEUED when it is not the last to\ndrop the dio refcount and the aio bio completion path will only call\naio_complete() when it is the last to drop the dio refcount.\ndirect_io_worker() can ensure that it is the last to drop the reference count\nby waiting for bios to drain.  It does this for sync ops, of course, and for\npartial dio writes that must fall back to buffered and for aio ops that saw\nerrors during submission.\n\nThis means that operations that end up waiting, even if they were issued as\naio ops, will not call aio_complete() from dio.  Instead we return the return\ncode of the operation and let the aio core call aio_complete().  This is\npurposely done to fix a bug where AIO DIO file extensions would call\naio_complete() before their callers have a chance to update i_size.\n\nNow that direct_io_worker() is explicitly returning -EIOCBQUEUED its callers\nno longer have to translate for it.  XFS needs to be careful not to free\nresources that will be used during AIO completion if -EIOCBQUEUED is returned.\n We maintain the previous behaviour of trying to write fs metadata for O_SYNC\naio+dio writes.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: \u003cxfs-masters@oss.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "20258b2b397031649e4a41922fe803d57017df84",
      "tree": "9c5fc96367b4938474cee2789d3c98c5e37586bf",
      "parents": [
        "0273201e693fd62381f6b1e85b15ffc117d8a46e"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Sun Dec 10 02:21:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:21 2006 -0800"
      },
      "message": "[PATCH] dio: remove duplicate bio wait code\n\nNow that we have a single refcount and waiting path we can reuse it in the\nasync \u0027should_wait\u0027 path.  It continues to rely on the fragile link between\nthe conditional in dio_complete_aio() which decides to complete the AIO and\nthe conditional in direct_io_worker() which decides to wait and free.\n\nBy waiting before dropping the reference we stop dio_bio_end_aio() from\ncalling dio_complete_aio() which used to wake up the waiter after seeing the\nreference count drop to 0.  We hoist this wake up into dio_bio_end_aio() which\nnow notices when it\u0027s left a single remaining reference that is held by the\nwaiter.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0273201e693fd62381f6b1e85b15ffc117d8a46e",
      "tree": "2dff76f33cbcaf7b7d88187da122d7aa98268b11",
      "parents": [
        "17a7b1d74b1207f8f1af40b5d184989076d08f8b"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Sun Dec 10 02:20:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:21 2006 -0800"
      },
      "message": "[PATCH] dio: formalize bio counters as a dio reference count\n\nPreviously we had two confusing counts of bio progress.  \u0027bio_count\u0027 was\ndecremented as bios were processed and freed by the dio core.  It was used to\nindicate final completion of the dio operation.  \u0027bios_in_flight\u0027 reflected\nhow many bios were between submit_bio() and bio-\u003eend_io.  It was used by the\nsync path to decide when to wake up and finish completing bios and was ignored\nby the async path.\n\nThis patch collapses the two notions into one notion of a dio reference count.\n bios hold a dio reference when they\u0027re between submit_bio and bio-\u003eend_io.\n\nSince bios_in_flight was only used in the sync path it is now equivalent to\ndio-\u003erefcount - 1 which accounts for direct_io_worker() holding a reference\nfor the duration of the operation.\n\ndio_bio_complete() -\u003e finished_one_bio() was called from the sync path after\nfinding bios on the list that the bio-\u003eend_io function had deposited.\nfinished_one_bio() can not drop the dio reference on behalf of these bios now\nbecause bio-\u003eend_io already has.  The is_async test in finished_one_bio()\nmeant that it never actually did anything other than drop the bio_count for\nsync callers.  So we remove its refcount decrement, don\u0027t call it from\ndio_bio_complete(), and hoist its call up into the async dio_bio_complete()\ncaller after an explicit refcount decrement.  It is renamed dio_complete_aio()\nto reflect the remaining work it actually does.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "17a7b1d74b1207f8f1af40b5d184989076d08f8b",
      "tree": "18dceaf00a1ae275fb770c83cec0eae81662352a",
      "parents": [
        "6d544bb4d9019c3a0d7ee4af1e4bbbd61a6e16dc"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Sun Dec 10 02:20:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:21 2006 -0800"
      },
      "message": "[PATCH] dio: call blk_run_address_space() once per op\n\nWe only need to call blk_run_address_space() once after all the bios for the\ndirect IO op have been submitted.  This removes the chance of calling\nblk_run_address_space() after spurious wake ups as the sync path waits for\nbios to drain.  It\u0027s also one less difference betwen the sync and async paths.\n\nIn the process we remove a redundant dio_bio_submit() that its caller had\nalready performed.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6d544bb4d9019c3a0d7ee4af1e4bbbd61a6e16dc",
      "tree": "cbf528f4270b60527961633c839ef62cfa69ebdf",
      "parents": [
        "1757128438d41670ded8bc3bc735325cc07dc8f9"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Sun Dec 10 02:20:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:21 2006 -0800"
      },
      "message": "[PATCH] dio: centralize completion in dio_complete()\n\nThere have been a lot of bugs recently due to the way direct_io_worker() tries\nto decide how to finish direct IO operations.  In the worst examples it has\nfailed to call aio_complete() at all (hang) or called it too many times\n(oops).\n\nThis set of patches cleans up the completion phase with the goal of removing\nthe complexity that lead to these bugs.  We end up with one path that\ncalculates the result of the operation after all off the bios have completed.\nWe decide when to generate a result of the operation using that path based on\nthe final release of a refcount on the dio structure.\n\nI tried to progress towards the final state in steps that were relatively easy\nto understand.  Each step should compile but I only tested the final result of\nhaving all the patches applied.\n\nI\u0027ve tested these on low end PC drives with aio-stress, the direct IO tests I\ncould manage to get running in LTP, orasim, and some home-brew functional\ntests.\n\nIn http://lkml.org/lkml/2006/9/21/103 IBM reports success with ext2 and ext3\nrunning DIO LTP tests.  They found that XFS bug which has since been addressed\nin the patch series.\n\nThis patch:\n\nThe mechanics which decide the result of a direct IO operation were duplicated\nin the sync and async paths.\n\nThe async path didn\u0027t check page_errors which can manifest as silently\nreturning success when the final pointer in an operation faults and its\nmatching file region is filled with zeros.\n\nThe sync path and async path differed in whether they passed errors to the\ncaller\u0027s dio-\u003eend_io operation.  The async path was passing errors to it which\ntrips an assertion in XFS, though it is apparently harmless.\n\nThis centralizes the completion phase of dio ops in one place.  AIO will now\nreturn EFAULT consistently and all paths fall back to the previously sync\nbehaviour of passing the number of bytes \u0027transferred\u0027 to the dio-\u003eend_io\ncallback, regardless of errors.\n\ndio_await_completion() doesn\u0027t have to propogate EIO from non-uptodate bios\nnow that it\u0027s being propogated through dio_complete() via dio-\u003eio_error.  This\nlets it return void which simplifies its sole caller.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aba76fdb8a5fefba73d3490563bf7c4da37b1a34",
      "tree": "eefa514957d847d1fea1b8a76755907758867aca",
      "parents": [
        "98c4d57decf97bf8ddfe948a3266aa56b38b1a51"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Dec 10 02:19:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:55:41 2006 -0800"
      },
      "message": "[PATCH] io-accounting: report in procfs\n\nAdd a simple /proc/pid/io to show the IO accounting fields.\n\nMaybe this shouldn\u0027t be merged in mainline - the preferred reporting channel\nis taskstats.  But given the poor state of our userspace support for\ntaskstats, this is useful for developer-testing, at least.  And it improves\nthe changes that the procps developers will wire it up into top(1).  Opinions\nare sought.\n\nThe patch also wires up the existing IO-accounting fields.\n\nIt\u0027s a bit racy on 32-bit machines: if process A reads process B\u0027s\n/proc/pid/io while process B is updating one of those 64-bit counters, process\nA could see an intermediate result.\n\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Chris Sturtivant \u003ccsturtiv@sgi.com\u003e\nCc: Tony Ernst \u003ctee@sgi.com\u003e\nCc: Guillaume Thouvenin \u003cguillaume.thouvenin@bull.net\u003e\nCc: David Wright \u003cdaw@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "98c4d57decf97bf8ddfe948a3266aa56b38b1a51"
}
