)]}'
{
  "log": [
    {
      "commit": "e10154189f001b6428a83f58b03a27954f0f8022",
      "tree": "30b4ac5760c5d310e9cc2cbf8fc4b9c6f9d0e369",
      "parents": [
        "d4bab1b091be4a91a7363118c9ede3cc9a7fefd4",
        "410c17651998944630a95fbb286a50362de2dbb0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 08 10:17:20 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 08 10:17:20 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (62 commits)\n  msi-laptop: depends on RFKILL\n  msi-laptop: Detect 3G device exists by standard ec command\n  msi-laptop: Add resume method for set the SCM load again\n  msi-laptop: Support some MSI 3G netbook that is need load SCM\n  msi-laptop: Add threeg sysfs file for support query 3G state by standard 66/62 ec command\n  msi-laptop: Support standard ec 66/62 command on MSI notebook and nebook\n  Driver core: create lock/unlock functions for struct device\n  sysfs: fix for thinko with sysfs_bin_attr_init()\n  sysfs: Kill unused sysfs_sb variable.\n  sysfs: Pass super_block to sysfs_get_inode\n  driver core: Use sysfs_rename_link in device_rename\n  sysfs: Implement sysfs_rename_link\n  sysfs: Pack sysfs_dirent more tightly.\n  sysfs: Serialize updates to the vfs inode\n  sysfs: windfarm: init sysfs attributes\n  sysfs: Use sysfs_attr_init and sysfs_bin_attr_init on module dynamic attributes\n  sysfs: Document sysfs_attr_init and sysfs_bin_attr_init\n  sysfs: Use sysfs_attr_init and sysfs_bin_attr_init on dynamic attributes\n  sysfs: Use one lockdep class per sysfs attribute.\n  sysfs: Only take active references on attributes.\n  ...\n"
    },
    {
      "commit": "d4014030d2b2508aaf54093a5885f1c8a2275dd7",
      "tree": "1954a7500d9ab035671503fdc39f4609fa240c53",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176"
      ],
      "author": {
        "name": "Christian Kujau",
        "email": "lists@nerdbynature.de",
        "time": "Mon Mar 08 15:03:09 2010 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 08 07:32:34 2010 -0800"
      },
      "message": "FS-Cache: Remove the EXPERIMENTAL flag\n\nRemove the EXPERIMENTAL flag from FS-Cache so that Ubuntu can make use of the\nfacility.\n\nSigned-off-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f4288ec6fcc1a47d1fa0241ec1c6dacd5a09e96",
      "tree": "7112809d470a7e6dc55cd68054896beef24bc184",
      "parents": [
        "fac2622bbad4d7e3a32c53e631e018b80ec631dc"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 12 19:22:28 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:52 2010 -0800"
      },
      "message": "sysfs: Kill unused sysfs_sb variable.\n\nNow that there are no more users we can remove\nthe sysfs_sb variable.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "fac2622bbad4d7e3a32c53e631e018b80ec631dc",
      "tree": "42e4ad2b38c6d40c86eabaff5efff2b0adeb0b40",
      "parents": [
        "2354dcc7218853a6537ec722be40fde9a11c413b"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 12 19:22:27 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:52 2010 -0800"
      },
      "message": "sysfs: Pass super_block to sysfs_get_inode\n\nCurrently sysfs_get_inode magically returns an inode on\nsysfs_sb.  Make the super_block parameter explicit and\nthe code becomes clearer.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7cb32942d91a501b2df944928ccc9e6590ab237b",
      "tree": "7c6ff2a82705d7dda8a566702f3bab981d03bf54",
      "parents": [
        "19c38b632d4554329986021fd66bdea468cf452c"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 12 19:22:25 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:52 2010 -0800"
      },
      "message": "sysfs: Implement sysfs_rename_link\n\nBecause of rename ordering problems we occassionally give false\nwarnings about invalid sysfs operations.  So using sysfs_rename\ncreate a sysfs_rename_link function that doesn\u0027t need strange\nworkarounds.\n\nCc: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nCc: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "19c38b632d4554329986021fd66bdea468cf452c",
      "tree": "a724445bc46a4500ff6c4def2a6de39fc438f8b5",
      "parents": [
        "f8d4f618fed5a4978afada52166bc2efaf7656d1"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@aristanetworks.com",
        "time": "Fri Feb 12 19:22:24 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:52 2010 -0800"
      },
      "message": "sysfs: Pack sysfs_dirent more tightly.\n\nPlacing the 16bit s_mode between a pointer and a long doesn\u0027t pack well\nespecailly on 64bit where we wast 48 bits.  So move s_mode and\ndeclare it as a unsigned short.  This is the sysfs backing store\nafter all we don\u0027t need fields extra large just in case someday\nwe want userspace to be able to use a larger value.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f8d4f618fed5a4978afada52166bc2efaf7656d1",
      "tree": "3247344bc9e2cb39261336f25f345740b22622d0",
      "parents": [
        "b35c74dab64f4c212f36d868419108556c9cf3e2"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@aristanetworks.com",
        "time": "Fri Feb 12 19:22:23 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:52 2010 -0800"
      },
      "message": "sysfs: Serialize updates to the vfs inode\n\nThe vfs depends upon filesystem methods to update the\nvfs inode.   Sysfs adds to the normal number of places\nwhere the vfs inode is updated by also updatng the\nvfs inode in sysfs_refresh_inode.\n\nTypically the inode mutex is used to serialize updates\nto the vfs inode, but grabbing the inode mutex in\nsysfs_permission and sysfs_getattr causes deadlocks,\nbecause sometimes the vfs calls those operations with\nthe inode mutex held.  Therefore sysfs  can not use the\ninode mutex to serial updates to the vfs inode.\n\nThe sysfs_mutex is acquired in all of the routines\nwhere sysfs updates the vfs inode, and with a small\nchange we can consistently protext sysfs vfs inode\nupdates with the sysfs_mutex. To protect the sysfs\nvfs inode updates with the sysfs_mutex simply requires\nextending the scope of sysfs_mutex in sysfs_setattr\nover inode_setattr, and over inode_change_ok (so we\nhave an unchanging inode when we perform the check).\n\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "6992f5334995af474c2b58d010d08bc597f0f2fe",
      "tree": "bef650bfb9355b8d7cbb7a5acb3632c02ec7fbe7",
      "parents": [
        "a2db6842873c8e5a70652f278d469128cb52db70"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Feb 11 15:21:53 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:51 2010 -0800"
      },
      "message": "sysfs: Use one lockdep class per sysfs attribute.\n\nAcknowledge that the logical sysfs rwsem has one instance per\nsysfs attribute with different locking depencencies for different\nattributes.\n\nThere is a sysfs idiom where writing to one sysfs file causes the\naddition or removal of other sysfs files.   Lumping all of the\nsysfs attributes together in one lock class causes lockdep to\ngenerate lots of false positives.\n\nThis introduces the requirement that non-static sysfs attributes\nneed to be initialized with sysfs_attr_init or sysfs_bin_attr_init.\nStrictly speaking this requirement only exists when lockdep is\nenabled, and when lockdep is enabled we get a bit fat warning\nif this requirement is not met.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a2db6842873c8e5a70652f278d469128cb52db70",
      "tree": "0415c6cfb33753c7a20e05d95e3ce485a60b1f41",
      "parents": [
        "e72ceb8ccac5f770b3e696e09bb673dca7024b20"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Feb 11 15:20:00 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:51 2010 -0800"
      },
      "message": "sysfs: Only take active references on attributes.\n\nIf we exclude directories and symlinks from the set of sysfs\ndirents where we need active references we are left with\nsysfs attributes (binary or not).\n\n- Tweak sysfs_deactivate to only do something on attributes\n- Move lockdep initialization into sysfs_file_add_mode to\n  limit it to just attributes.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e72ceb8ccac5f770b3e696e09bb673dca7024b20",
      "tree": "9868803df687838c3c5f6f2265ceb7532b93a5f4",
      "parents": [
        "3c31f07ad0dab02fe17195d32a965d57fd947707"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Feb 11 15:18:38 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:51 2010 -0800"
      },
      "message": "sysfs: Remove sysfs_get/put_active_two\n\nIt turns out that holding an active reference on a directory is\npointless.  The purpose of the active references are to allows us to\nblock when removing sysfs entries that have custom methods so we don\u0027t\nremove modules while running modular code and to keep those custom\nmethods from accessing data structures after the files have been\nremoved.  Further sysfs_remove_dir remove all elements in the\ndirectory before removing the directory itself, so there is no chance\nwe will remove a directory with active children.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "52cf25d0ab7f78eeecc59ac652ed5090f69b619e",
      "tree": "031d1ffb3890bd69c0260c864c512e0be62ac05c",
      "parents": [
        "6c1733aca0b48db4d0e660d54976a1cca25b5eaf"
      ],
      "author": {
        "name": "Emese Revfy",
        "email": "re.emese@gmail.com",
        "time": "Tue Jan 19 02:58:23 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:49 2010 -0800"
      },
      "message": "Driver core: Constify struct sysfs_ops in struct kobj_type\n\nConstify struct sysfs_ops.\n\nThis is part of the ops structure constification\neffort started by Arjan van de Ven et al.\n\nBenefits of this constification:\n\n * prevents modification of data that is shared\n   (referenced) by many other structure instances\n   at runtime\n\n * detects/prevents accidental (but not intentional)\n   modification attempts on archs that enforce\n   read-only kernel data at runtime\n\n * potentially better optimized code as the compiler\n   can assume that the const data cannot be changed\n\n * the compiler/linker move const data into .rodata\n   and therefore exclude them from false sharing\n\nSigned-off-by: Emese Revfy \u003cre.emese@gmail.com\u003e\nAcked-by: David Teigland \u003cteigland@redhat.com\u003e\nAcked-by: Matt Domsch \u003cMatt_Domsch@dell.com\u003e\nAcked-by: Maciej Sosnowski \u003cmaciej.sosnowski@intel.com\u003e\nAcked-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9cd43611ccfb46632bfa7d19f688924ea93f1613",
      "tree": "e11ecee403235ba9d8855892fa7ad55d9b63e221",
      "parents": [
        "985fc176a6c03836454629be2f2a611ccc7c7002"
      ],
      "author": {
        "name": "Emese Revfy",
        "email": "re.emese@gmail.com",
        "time": "Thu Dec 31 14:52:51 2009 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:49 2010 -0800"
      },
      "message": "kobject: Constify struct kset_uevent_ops\n\nConstify struct kset_uevent_ops.\n\nThis is part of the ops structure constification\neffort started by Arjan van de Ven et al.\n\nBenefits of this constification:\n\n * prevents modification of data that is shared\n   (referenced) by many other structure instances\n   at runtime\n\n * detects/prevents accidental (but not intentional)\n   modification attempts on archs that enforce\n   read-only kernel data at runtime\n\n * potentially better optimized code as the compiler\n   can assume that the const data cannot be changed\n\n * the compiler/linker move const data into .rodata\n   and therefore exclude them from false sharing\n\nSigned-off-by: Emese Revfy \u003cre.emese@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1e5289c97bba2d8ee7239a416bc3f28743362cd9",
      "tree": "5a9c422b6dc16e4084866d548c043994da37e3d1",
      "parents": [
        "3f5468c9ae293cbca43e4ffe6ca3b3235189042a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Jan 01 14:43:53 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:48 2010 -0800"
      },
      "message": "sysfs: Cache the last sysfs_dirent to improve readdir scalability v2\n\nWhen sysfs_readdir stops short we now cache the next\nsysfs_dirent to return to user space in filp-\u003eprivate_data.\nThere is no impact on the rest of sysfs by doing this and\nin the common case it allows us to pick up exactly where\nwe left off with no seeking.\n\nAdditionally I drop and regrab the sysfs_mutex around\nfilldir to avoid a page fault abritrarily increasing the\nhold time on the sysfs_mutex.\n\nv2: Returned to using INT_MAX as the EOF condition.\n    seekdir is ambiguous unless all directory entries have\n    a unique f_pos value.\n\nFixes http://bugzilla.kernel.org/show_bug.cgi?id\u003d14949\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1c205ae18db53ff72985dd79f3baaf2dbaba6db7",
      "tree": "ba2947326f34337b33c90391496b6e40089bc2ad",
      "parents": [
        "265d2e2e31c5f6dc1b20ae1653a17fdba706f79e"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Tue Jan 05 12:48:01 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:47 2010 -0800"
      },
      "message": "sysfs: Add sysfs_add/remove_files utility functions\n\nAdding/Removing a whole array of attributes is very common. Add a standard\nutility function to do this with a simple function call, instead of\nrequiring drivers to open code this.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "138860b95359feee49a31fb12be87825e4cd84ac",
      "tree": "5da926eb8558cc2a2e7a3d7b6e4f18892a2f7e6b",
      "parents": [
        "4a31c08d2fecc74a630653828f5388fbb037f8c2"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Mar 04 09:37:12 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 07 15:48:26 2010 -0800"
      },
      "message": "seq_file: fix new kernel-doc warnings\n\nFix kernel-doc notation in new seq-file functions and\ncorrect spelling.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b8fa05719ba4349be80ce929237249b57886a203",
      "tree": "eb2a58ce09dc699e29e15b812f06196587aa64a3",
      "parents": [
        "4da0b66c6e9ea7ba78a19f9f186779826d89f8b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 07 09:54:44 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 07 09:54:44 2010 -0800"
      },
      "message": "Revert \"lib: build list_sort() only if needed\"\n\nThis reverts commit a069c266ae5fdfbf5b4aecf2c672413aa33b2504.\n\nIt turns ou that not only was it missing a case (XFS) that needed it,\nbut perhaps more importantly, people sometimes want to enable new\nmodules that they hadn\u0027t had enabled before, and if such a module uses\nlist_sort(), it can\u0027t easily be inserted any more.\n\nSo rather than add a \"select LIST_SORT\" to the XFS case, just leave it\ncompiled in.  It\u0027s not all _that_ big, after all, and the inconvenience\nisn\u0027t worth it.\n\nRequested-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66b89159c25a47d2177743526c61b5ada7acc39e",
      "tree": "b092b859ca01d7544a666c95f940144b0ef3b35b",
      "parents": [
        "87c7ae06cc50bcbcdcc60d64a959ca0b9b71f892",
        "c2f843f03d658e9ab2a1a455f2c1851fd6a869af"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 13:18:03 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 13:18:03 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/joern/logfs\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/joern/logfs:\n  [LogFS] Change magic number\n  [LogFS] Remove h_version field\n  [LogFS] Check feature flags\n  [LogFS] Only write journal if dirty\n  [LogFS] Fix bdev erases\n  [LogFS] Silence gcc\n  [LogFS] Prevent 64bit divisions in hash_index\n  [LogFS] Plug memory leak on error paths\n  [LogFS] Add MAINTAINERS entry\n  [LogFS] add new flash file system\n\nFixed up trivial conflict in lib/Kconfig, and a semantic conflict in\nfs/logfs/inode.c introduced by write_inode() being changed to use\nwriteback_control\u0027 by commit a9185b41a4f84971b930c519f0c63bd450c4810d\n(\"pass writeback_control to -\u003ewrite_inode\")\n"
    },
    {
      "commit": "66ce3cf84deba6cc71dcf43c9d56a4278e5f712d",
      "tree": "7580bcc42fc7c52620b98d78ebdc654bd7ed83ea",
      "parents": [
        "05c5cb31ec47cacf38db56d9efaa37ca9d473132",
        "9b1f56d60acfd634728f91f34922066c6f80ede6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:32:21 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:32:21 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs: (21 commits)\n  xfs: return inode fork offset in bulkstat for fsr\n  xfs: Increase the default size of the reserved blocks pool\n  xfs: truncate delalloc extents when IO fails in writeback\n  xfs: check for more work before sleeping in xfssyncd\n  xfs: Fix a build warning in xfs_aops.c\n  xfs: fix locking for inode cache radix tree tag updates\n  xfs: remove xfs_ipin/xfs_iunpin\n  xfs: cleanup xfs_iunpin_wait/xfs_iunpin_nowait\n  xfs: kill xfs_lrw.h\n  xfs: factor common xfs_trans_bjoin code\n  xfs: stop passing opaque handles to xfs_log.c routines\n  xfs: split xfs_bmap_btalloc\n  xfs: fix xfs_fsblock_t tracing\n  xfs: fix inode pincount check in fsync\n  xfs: Non-blocking inode locking in IO completion\n  xfs: implement optimized fdatasync\n  xfs: remove wrapper for the fsync file operation\n  xfs: remove wrappers for read/write file operations\n  xfs: merge xfs_lrw.c into xfs_file.c\n  xfs: fix dquota trace format\n  ...\n"
    },
    {
      "commit": "05c5cb31ec47cacf38db56d9efaa37ca9d473132",
      "tree": "03f900679819abd8700d5ea93c22e3a59d3af7ca",
      "parents": [
        "4582a30c2fdca5d2b40f63a20ea082b93230ff2b",
        "4ea41e2de5bba756858bb40f964e3490b6d1a25c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:31:38 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:31:38 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.34\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.34\u0027 of git://linux-nfs.org/~bfields/linux: (22 commits)\n  nfsd4: fix minor memory leak\n  svcrpc: treat uid\u0027s as unsigned\n  nfsd: ensure sockets are closed on error\n  Revert \"sunrpc: move the close processing after do recvfrom method\"\n  Revert \"sunrpc: fix peername failed on closed listener\"\n  sunrpc: remove unnecessary svc_xprt_put\n  NFSD: NFSv4 callback client should use RPC_TASK_SOFTCONN\n  xfs_export_operations.commit_metadata\n  commit_metadata export operation replacing nfsd_sync_dir\n  lockd: don\u0027t clear sm_monitored on nsm_reboot_lookup\n  lockd: release reference to nsm_handle in nlm_host_rebooted\n  nfsd: Use vfs_fsync_range() in nfsd_commit\n  NFSD: Create PF_INET6 listener in write_ports\n  SUNRPC: NFS kernel APIs shouldn\u0027t return ENOENT for \"transport not found\"\n  SUNRPC: Bury \"#ifdef IPV6\" in svc_create_xprt()\n  NFSD: Support AF_INET6 in svc_addsock() function\n  SUNRPC: Use rpc_pton() in ip_map_parse()\n  nfsd: 4.1 has an rfc number\n  nfsd41: Create the recovery entry for the NFSv4.1 client\n  nfsd: use vfs_fsync for non-directories\n  ...\n"
    },
    {
      "commit": "76595f79d76fbe6267a51b3a866a028d150f06d4",
      "tree": "eff36adfb339f8cb57b07fd9f09d37d982aa354e",
      "parents": [
        "5c99cbf49a6e1a1efd25b11f4604c65c455e1612"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Fri Mar 05 13:44:16 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:46 2010 -0800"
      },
      "message": "coredump: suppress uid comparison test if core output files are pipes\n\nModify uid check in do_coredump so as to not apply it in the case of\npipes.\n\nThis just got noticed in testing.  The end of do_coredump validates the\nuid of the inode for the created file against the uid of the crashing\nprocess to ensure that no one can pre-create a core file with different\nownership and grab the information contained in the core when they\nshouldn\u0027 tbe able to.  This causes failures when using pipes for a core\ndumps if the crashing process is not root, which is the uid of the pipe\nwhen it is created.\n\nThe fix is simple.  Since the check for matching uid\u0027s isn\u0027t relevant for\npipes (a process can\u0027t create a pipe that the uermodehelper code will open\nanyway), we can just just skip it in the event ispipe is non-zero\n\nReverts a pipe-affecting change which was accidentally made in\n\n: commit c46f739dd39db3b07ab5deb4e3ec81e1c04a91af\n: Author:     Ingo Molnar \u003cmingo@elte.hu\u003e\n: AuthorDate: Wed Nov 28 13:59:18 2007 +0100\n: Commit:     Linus Torvalds \u003ctorvalds@woody.linux-foundation.org\u003e\n: CommitDate: Wed Nov 28 10:58:01 2007 -0800\n:\n:     vfs: coredumping fix\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c99cbf49a6e1a1efd25b11f4604c65c455e1612",
      "tree": "e2a3451cc87f83b15f23a0472339be81770e12da",
      "parents": [
        "30736a4d43f4af7f1a7836d6a266be17082195c4"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Mar 05 13:44:14 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:46 2010 -0800"
      },
      "message": "coredump: set -\u003egroup_exit_code for other CLONE_VM tasks too\n\nUser visible change.\n\ndo_coredump() kills all threads which share the same -\u003emm but only the\ncoredumping process gets the proper exit_code.  Other tasks which share\nthe same -\u003emm die \"silently\" and return status \u003d\u003d 0 to parent.\n\nThis is historical behaviour, not actually a bug.  But I think Frank\nHeckenbach rightly dislikes the current behaviour.  Simple test-case:\n\n\t#include \u003cstdio.h\u003e\n\t#include \u003cunistd.h\u003e\n\t#include \u003csignal.h\u003e\n\t#include \u003csys/wait.h\u003e\n\n\tint main(void)\n\t{\n\t\tint stat;\n\n\t\tif (!fork()) {\n\t\t\tif (!vfork())\n\t\t\t\tkill(getpid(), SIGQUIT);\n\t\t}\n\n\t\twait(\u0026stat);\n\t\tprintf(\"stat\u003d%x\\n\", stat);\n\t\treturn 0;\n\t}\n\nBefore this patch it prints \"stat\u003d0\" despite the fact the child was killed\nby SIGQUIT.  After this patch the output is \"stat\u003d3\" which obviously makes\nmore sense.\n\nEven with this patch, only the task which originates the coredumping gets\n\"|\u003d 0x80\" if the core was actually dumped, but at least the coredumping\nsignal is visible to do_wait/etc.\n\nReported-by: Frank Heckenbach \u003cf.heckenbach@fh-soft.de\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "30736a4d43f4af7f1a7836d6a266be17082195c4",
      "tree": "54e388cdaf4795bdb7651be03c50bba67eb0b43a",
      "parents": [
        "8d9032bbe4671dc481261ccd4e161cd96e54b118"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Fri Mar 05 13:44:12 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:46 2010 -0800"
      },
      "message": "coredump: pass mm-\u003eflags as a coredump parameter for consistency\n\nPass mm-\u003eflags as a coredump parameter for consistency.\n\n ---\n1787         if (mm-\u003ecore_state || !get_dumpable(mm)) {  \u003c- (1)\n1788                 up_write(\u0026mm-\u003emmap_sem);\n1789                 put_cred(cred);\n1790                 goto fail;\n1791         }\n1792\n[...]\n1798         if (get_dumpable(mm) \u003d\u003d 2) {    /* Setuid core dump mode */ \u003c-(2)\n1799                 flag \u003d O_EXCL;          /* Stop rewrite attacks */\n1800                 cred-\u003efsuid \u003d 0;        /* Dump root private */\n1801         }\n ---\n\nSince dumpable bits are not protected by lock, there is a chance to change\nthese bits between (1) and (2).\n\nTo solve this issue, this patch copies mm-\u003eflags to\ncoredump_params.mm_flags at the beginning of do_coredump() and uses it\ninstead of get_dumpable() while dumping core.\n\nThis copy is also passed to binfmt-\u003ecore_dump, since elf*_core_dump() uses\ndump_filter bits in mm-\u003eflags.\n\n[akpm@linux-foundation.org: fix merge]\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d9032bbe4671dc481261ccd4e161cd96e54b118",
      "tree": "a31d22f488f7d6789259da68c53cb2727a925fa8",
      "parents": [
        "93eb211e6c9ff6054fcf9c5b9e344d8d9ad29175"
      ],
      "author": {
        "name": "Daisuke HATAYAMA",
        "email": "d.hatayama@jp.fujitsu.com",
        "time": "Fri Mar 05 13:44:10 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:46 2010 -0800"
      },
      "message": "elf coredump: add extended numbering support\n\nThe current ELF dumper implementation can produce broken corefiles if\nprogram headers exceed 65535.  This number is determined by the number of\nvmas which the process have.  In particular, some extreme programs may use\nmore than 65535 vmas.  (If you google max_map_count, you can find some\nusers facing this problem.) This kind of program never be able to generate\ncorrect coredumps.\n\nThis patch implements ``extended numbering\u0027\u0027 that uses sh_info field of\nthe first section header instead of e_phnum field in order to represent\nupto 4294967295 vmas.\n\nThis is supported by\nAMD64-ABI(http://www.x86-64.org/documentation.html) and\nSolaris(http://docs.sun.com/app/docs/doc/817-1984/).\nOf course, we are preparing patches for gdb and binutils.\n\nSigned-off-by: Daisuke HATAYAMA \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93eb211e6c9ff6054fcf9c5b9e344d8d9ad29175",
      "tree": "424990890a34e626df8e2c68f4952d4d4734b63b",
      "parents": [
        "1fcccbac89f5bbc5e41aa72086960059fce372da"
      ],
      "author": {
        "name": "Daisuke HATAYAMA",
        "email": "d.hatayama@jp.fujitsu.com",
        "time": "Fri Mar 05 13:44:09 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:46 2010 -0800"
      },
      "message": "elf coredump: make offset calculation process and writing process explicit\n\nBy the next patch, elf_core_dump() and elf_fdpic_core_dump() will support\nextended numbering and so will produce the corefiles with section header\ntable in a special case.\n\nThe problem is the process of writing a file header offset of the section\nheader table into e_shoff field of the ELF header.  ELF header is\npositioned at the beginning of the corefile, while section header at the\nend.  So, we need to take which of the following ways:\n\n 1. Seek backward to retry writing operation for ELF header\n    after writing process for a whole part\n\n 2. Make offset calculation process and writing process\n    totally sequential\n\nThe clause 1.  is not always possible: one cannot assume that file system\nsupports seek function.  Consider the no_llseek case.\n\nTherefore, this patch adopts the clause 2.\n\nSigned-off-by: Daisuke HATAYAMA \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1fcccbac89f5bbc5e41aa72086960059fce372da",
      "tree": "9e42ee69f0216e612e5bd4338d6203dbad2d002f",
      "parents": [
        "088e7af73a962fcc8883b7a6392544d8342553d6"
      ],
      "author": {
        "name": "Daisuke HATAYAMA",
        "email": "d.hatayama@jp.fujitsu.com",
        "time": "Fri Mar 05 13:44:07 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:45 2010 -0800"
      },
      "message": "elf coredump: replace ELF_CORE_EXTRA_* macros by functions\n\nelf_core_dump() and elf_fdpic_core_dump() use #ifdef and the corresponding\nmacro for hiding _multiline_ logics in functions.  This patch removes\n#ifdef and replaces ELF_CORE_EXTRA_* by corresponding functions.  For\narchitectures not implemeonting ELF_CORE_EXTRA_*, we use weak functions in\norder to reduce a range of modification.\n\nThis cleanup is for my next patches, but I think this cleanup itself is\nworth doing regardless of my firnal purpose.\n\nSigned-off-by: Daisuke HATAYAMA \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "088e7af73a962fcc8883b7a6392544d8342553d6",
      "tree": "5dce5b991cad1071522b464bd83943a1b6e885b2",
      "parents": [
        "05f47fda9fc5b17bfab189e9d54228025befc996"
      ],
      "author": {
        "name": "Daisuke HATAYAMA",
        "email": "d.hatayama@jp.fujitsu.com",
        "time": "Fri Mar 05 13:44:06 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:45 2010 -0800"
      },
      "message": "coredump: move dump_write() and dump_seek() into a header file\n\nMy next patch will replace ELF_CORE_EXTRA_* macros by functions, putting\nthem into other newly created *.c files.  Then, each files will contain\ndump_write(), where each pair of binfmt_*.c and elfcore.c should be the\nsame.  So, this patch moves them into a header file with dump_seek().\nAlso, the patch deletes confusing DUMP_WRITE macros in each files.\n\nSigned-off-by: Daisuke HATAYAMA \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05f47fda9fc5b17bfab189e9d54228025befc996",
      "tree": "f42e4f13eed3d52022a629e6697c96f6155c9d66",
      "parents": [
        "12bac0d9f4dbf3445a0319beee848d15fa32775e"
      ],
      "author": {
        "name": "Daisuke HATAYAMA",
        "email": "d.hatayama@jp.fujitsu.com",
        "time": "Fri Mar 05 13:44:05 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:45 2010 -0800"
      },
      "message": "coredump: unify dump_seek() implementations for each binfmt_*.c\n\nThe current ELF dumper can produce broken corefiles if program headers\nexceed 65535.  In particular, the program in 64-bit environment often\ndemands more than 65535 mmaps.  If you google max_map_count, then you can\nfind many users facing this problem.\n\nSolaris has already dealt with this issue, and other OSes have also\nadopted the same method as in Solaris.  Currently, Sun\u0027s document and AMD\n64 ABI include the description for the extension, where they call the\nextension Extended Numbering.  See Reference for further information.\n\nI believe that linux kernel should adopt the same way as they did, so I\u0027ve\nwritten this patch.\n\nI am also preparing for patches of GDB and binutils.\n\nHow to fix\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nIn new dumping process, there are two cases according to weather or\nnot the number of program headers is equal to or more than 65535.\n\n - if less than 65535, the produced corefile format is exactly the same\n   as the ordinary one.\n\n - if equal to or more than 65535, then e_phnum field is set to newly\n   introduced constant PN_XNUM(0xffff) and the actual number of program\n   headers is set to sh_info field of the section header at index 0.\n\nCompatibility Concern\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n * As already mentioned in Summary, Sun and AMD64 has already adopted\n   this.  See Reference.\n\n * There are four combinations according to whether kernel and userland\n   tools are respectively modified or not.  The next table summarizes\n   shortly for each combination.\n\n                  ---------------------------------------------\n                     Original Kernel    |   Modified Kernel\n                  ---------------------------------------------\n    \t            \u003c 65535  | \u003e\u003d 65535 | \u003c 65535  | \u003e\u003d 65535\n  -------------------------------------------------------------\n   Original Tools |    OK    |  broken  |   OK     | broken (#)\n  -------------------------------------------------------------\n   Modified Tools |    OK    |  broken  |   OK     |    OK\n  -------------------------------------------------------------\n\n  Note that there is no case that `OK\u0027 changes to `broken\u0027.\n\n  (#) Although this case remains broken, O-M behaves better than\n  O-O. That is, while in O-O case e_phnum field would be extremely\n  small due to integer overflow, in O-M case it is guaranteed to be at\n  least 65535 by being set to PN_XNUM(0xFFFF), much closer to the\n  actual correct value than the O-O case.\n\nTest Program\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nHere is a test program mkmmaps.c that is useful to produce the\ncorefile with many mmaps. To use this, please take the following\nsteps:\n\n$ ulimit -c unlimited\n$ sysctl vm.max_map_count\u003d70000 # default 65530 is too small\n$ sysctl fs.file-max\u003d70000\n$ mkmmaps 65535\n\nThen, the program will abort and a corefile will be generated.\n\nIf failed, there are two cases according to the error message\ndisplayed.\n\n * ``out of memory\u0027\u0027 means vm.max_map_count is still smaller\n\n * ``too many open files\u0027\u0027 means fs.file-max is still smaller\n\nSo, please change it to a larger value, and then retry it.\n\nmkmmaps.c\n\u003d\u003d\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003csys/mman.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cunistd.h\u003e\nint main(int argc, char **argv)\n{\n\tint maps_num;\n\tif (argc \u003c 2) {\n\t\tfprintf(stderr, \"mkmmaps [number of maps to be created]\\n\");\n\t\texit(1);\n\t}\n\tif (sscanf(argv[1], \"%d\", \u0026maps_num) \u003d\u003d EOF) {\n\t\tperror(\"sscanf\");\n\t\texit(2);\n\t}\n\tif (maps_num \u003c 0) {\n\t\tfprintf(stderr, \"%d is invalid\\n\", maps_num);\n\t\texit(3);\n\t}\n\tfor (; maps_num \u003e 0; --maps_num) {\n\t\tif (MAP_FAILED \u003d\u003d mmap((void *)NULL, (size_t) 1, PROT_READ,\n\t\t\t\t\tMAP_SHARED | MAP_ANONYMOUS, (int) -1,\n\t\t\t\t\t(off_t) NULL)) {\n\t\t\tperror(\"mmap\");\n\t\t\texit(4);\n\t\t}\n\t}\n\tabort();\n\t{\n\t\tchar buffer[128];\n\t\tsprintf(buffer, \"wc -l /proc/%u/maps\", getpid());\n\t\tsystem(buffer);\n\t}\n\treturn 0;\n}\n\nTested on i386, ia64 and um/sys-i386.\nBuilt on sh4 (which covers fs/binfmt_elf_fdpic.c)\n\nReferences\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n - Sun microsystems: Linker and Libraries.\n   Part No: 817-1984-17, September 2008.\n   URL: http://docs.sun.com/app/docs/doc/817-1984\n\n - System V ABI AMD64 Architecture Processor Supplement\n   Draft Version 0.99., May 11, 2009.\n   URL: http://www.x86-64.org/\n\nThis patch:\n\nThere are three different definitions for dump_seek() functions in\nbinfmt_aout.c, binfmt_elf.c and binfmt_elf_fdpic.c, respectively.  The\nonly for binfmt_elf.c.\n\nMy next patch will move dump_seek() into a header file in order to share\nthe same implementations for dump_write() and dump_seek().  As the first\nstep, this patch unify these three definitions for dump_seek() by applying\nthe past commits that have been applied only for binfmt_elf.c.\n\nSpecifically, the modification made here is part of the following commits:\n\n  * d025c9db7f31fc0554ce7fb2dfc78d35a77f3487\n  * 7f14daa19ea36b200d237ad3ac5826ae25360461\n\nThis patch does not change a shape of corefiles.\n\nSigned-off-by: Daisuke HATAYAMA \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "12bac0d9f4dbf3445a0319beee848d15fa32775e",
      "tree": "4b712e05e785c010a31d12bb4a1f662173b9fcee",
      "parents": [
        "e17a5765f20d1219c3f05eb17aab11671978e0ec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Mar 05 13:44:00 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:45 2010 -0800"
      },
      "message": "proc: warn on non-existing proc entries\n\n* warn if creation goes on to non-existent directory\n* warn if removal goes on from non-existing directory\n* warn if non-existing proc entry is removed\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e17a5765f20d1219c3f05eb17aab11671978e0ec",
      "tree": "6dae8ad2358efac94587dd86104fdccc715fbfde",
      "parents": [
        "5748150eabdacd3f870c311b63d32f5e312bf624"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Mar 05 13:43:59 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:45 2010 -0800"
      },
      "message": "proc: do translation + unlink atomically at remove_proc_entry()\n\nremove_proc_entry() does\n\n\tlock\n\tlookup parent\n\tunlock\n\tlock\n\tunlink proc entry from lists\n\tunlock\n\nwhich can be made bit more correct by doing parent translation + unlink\nwithout dropping lock.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45bf5cd7be624712ef1591e9de71f0ff7ad21cf1",
      "tree": "dfd51f59aad8a742462da0604ed8bd121a9833a1",
      "parents": [
        "08564fb7ab9ead9226b6154439c3fecd17972eb0"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Mar 05 13:43:19 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:35 2010 -0800"
      },
      "message": "fs/compat_ioctl.c: suppress two warnings\n\nfs/compat_ioctl.c: In function \u0027do_ioctl_trans\u0027:\nfs/compat_ioctl.c:534: warning: \u0027karg\u0027 may be used uninitialized in this function\nfs/compat_ioctl.c:533: warning: \u0027kcmd\u0027 may be used uninitialized in this function\nfs/compat_ioctl.c:656: warning: \u0027ret\u0027 may be used uninitialized in this function\n\nReduces text size by 44 bytes.\n\nIf someone calls one of these functions with an unexpected argument, the\ncode\u0027s buggy as-is.\n\nAmerigo Wang \u003camwang@redhat.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a069c266ae5fdfbf5b4aecf2c672413aa33b2504",
      "tree": "2f9731d8475fc5b2d942cac004904db8e49d5428",
      "parents": [
        "02b12b7a28faa2e9ed5a361cd08ea576ab1f1509"
      ],
      "author": {
        "name": "Don Mullis",
        "email": "don.mullis@gmail.com",
        "time": "Fri Mar 05 13:43:16 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:35 2010 -0800"
      },
      "message": "lib: build list_sort() only if needed\n\nBuild list_sort() only for configs that need it -- those that don\u0027t save\n~581 bytes (i386).\n\nSigned-off-by: Don Mullis \u003cdon.mullis@gmail.com\u003e\nCc: Dave Airlie \u003cairlied@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ef097dd7ba4eab8b4f0026d85fcef9fe23b821f",
      "tree": "5d2e580897795b8eae278f7548799119ac4803a0",
      "parents": [
        "9728e5d6e6c432ee8487c63ce6e479e2474d9945"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Fri Mar 05 13:42:57 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:33 2010 -0800"
      },
      "message": "exec: create initial stack independent of PAGE_SIZE\n\nCurrently we create the initial stack based on the PAGE_SIZE.  This is\nunnecessary.\n\nThis creates this initial stack independent of the PAGE_SIZE.\n\nIt also bumps up the number of 4k pages allocated from 20 to 32, to\nalign with 64K page systems.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d554ed895dc8f293cc712c71f14b101ace82579a",
      "tree": "fd29ba33d640e156e2ca4267ffbdb9dc566fd3d6",
      "parents": [
        "221e3ebf6d5f2625373573155924e39f196c5d3d"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Fri Mar 05 13:42:42 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:29 2010 -0800"
      },
      "message": "fs: use rlimit helpers\n\nMake sure compiler won\u0027t do weird things with limits.  E.g.  fetching them\ntwice may return 2 different values after writable limits are implemented.\n\nI.e.  either use rlimit helpers added in commit 3e10e716abf3 (\"resource:\nadd helpers for fetching rlimits\") or ACCESS_ONCE if not applicable.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5beb49305251e5669852ed541e8e2f2f7696c53e",
      "tree": "46457450a22f23938b24904aeba5d4ada2f53b20",
      "parents": [
        "648bcc771145172a14bc35eeb849ed08f6aa4f1e"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Fri Mar 05 13:42:07 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm: change anon_vma linking to fix multi-process server scalability issue\n\nThe old anon_vma code can lead to scalability issues with heavily forking\nworkloads.  Specifically, each anon_vma will be shared between the parent\nprocess and all its child processes.\n\nIn a workload with 1000 child processes and a VMA with 1000 anonymous\npages per process that get COWed, this leads to a system with a million\nanonymous pages in the same anon_vma, each of which is mapped in just one\nof the 1000 processes.  However, the current rmap code needs to walk them\nall, leading to O(N) scanning complexity for each page.\n\nThis can result in systems where one CPU is walking the page tables of\n1000 processes in page_referenced_one, while all other CPUs are stuck on\nthe anon_vma lock.  This leads to catastrophic failure for a benchmark\nlike AIM7, where the total number of processes can reach in the tens of\nthousands.  Real workloads are still a factor 10 less process intensive\nthan AIM7, but they are catching up.\n\nThis patch changes the way anon_vmas and VMAs are linked, which allows us\nto associate multiple anon_vmas with a VMA.  At fork time, each child\nprocess gets its own anon_vmas, in which its COWed pages will be\ninstantiated.  The parents\u0027 anon_vma is also linked to the VMA, because\nnon-COWed pages could be present in any of the children.\n\nThis reduces rmap scanning complexity to O(1) for the pages of the 1000\nchild processes, with O(N) complexity for at most 1/N pages in the system.\n This reduces the average scanning cost in heavily forking workloads from\nO(N) to 2.\n\nThe only real complexity in this patch stems from the fact that linking a\nVMA to anon_vmas now involves memory allocations.  This means vma_adjust\ncan fail, if it needs to attach a VMA to anon_vma structures.  This in\nturn means error handling needs to be added to the calling functions.\n\nA second source of complexity is that, because there can be multiple\nanon_vmas, the anon_vma linking in vma_adjust can no longer be done under\n\"the\" anon_vma lock.  To prevent the rmap code from walking up an\nincomplete VMA, this patch introduces the VM_LOCK_RMAP VMA flag.  This bit\nflag uses the same slot as the NOMMU VM_MAPPED_COPY, with an ifdef in mm.h\nto make sure it is impossible to compile a kernel that needs both symbolic\nvalues for the same bitflag.\n\nSome test results:\n\nWithout the anon_vma changes, when AIM7 hits around 9.7k users (on a test\nbox with 16GB RAM and not quite enough IO), the system ends up running\n\u003e99% in system time, with every CPU on the same anon_vma lock in the\npageout code.\n\nWith these changes, AIM7 hits the cross-over point around 29.7k users.\nThis happens with ~99% IO wait time, there never seems to be any spike in\nsystem time.  The anon_vma lock contention appears to be resolved.\n\n[akpm@linux-foundation.org: cleanups]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42e49608683ab25fbbbf9c40edb944601e543882",
      "tree": "5cc8beee91f235cdaf6be986f90275e04137c2bc",
      "parents": [
        "85f1fb72fa76eabc4481dc79f42d2b011df54762"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Fri Mar 05 13:42:01 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:25 2010 -0800"
      },
      "message": "vfs: take f_lock on modifying f_mode after open time\n\nWe\u0027ll introduce FMODE_RANDOM which will be runtime modified.  So protect\nall runtime modification to f_mode with f_lock to avoid races.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t\t[2.6.33.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b084d4353ff99d824d3bc5a5c2c22c70b1fba722",
      "tree": "8178db2b337fc8a36e6ca2e1fc2e7d7473957e27",
      "parents": [
        "34e55232e59f7b19050267a05ff1226e5cd122a5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:42 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: count swap usage\n\nA frequent questions from users about memory management is what numbers of\nswap ents are user for processes.  And this information will give some\nhints to oom-killer.\n\nBesides we can count the number of swapents per a process by scanning\n/proc/\u003cpid\u003e/smaps, this is very slow and not good for usual process\ninformation handler which works like \u0027ps\u0027 or \u0027top\u0027.  (ps or top is now\nenough slow..)\n\nThis patch adds a counter of swapents to mm_counter and update is at each\nswap events.  Information is exported via /proc/\u003cpid\u003e/status file as\n\n[kamezawa@bluextal memory]$ cat /proc/self/status\nName:   cat\nState:  R (running)\nTgid:   2910\nPid:    2910\nPPid:   2823\nTracerPid:      0\nUid:    500     500     500     500\nGid:    500     500     500     500\nFDSize: 256\nGroups: 500\nVmPeak:    82696 kB\nVmSize:    82696 kB\nVmLck:         0 kB\nVmHWM:       432 kB\nVmRSS:       432 kB\nVmData:      172 kB\nVmStk:        84 kB\nVmExe:        48 kB\nVmLib:      1568 kB\nVmPTE:        40 kB\nVmSwap:        0 kB \u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d this.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34e55232e59f7b19050267a05ff1226e5cd122a5",
      "tree": "6b94e776e87d2a2fe1ceca7c5606901575323900",
      "parents": [
        "d559db086ff5be9bcc259e5aa50bf3d881eaf1d1"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:40 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: avoid false sharing of mm_counter\n\nConsidering the nature of per mm stats, it\u0027s the shared object among\nthreads and can be a cache-miss point in the page fault path.\n\nThis patch adds per-thread cache for mm_counter.  RSS value will be\ncounted into a struct in task_struct and synchronized with mm\u0027s one at\nevents.\n\nNow, in this patch, the event is the number of calls to handle_mm_fault.\nPer-thread value is added to mm at each 64 calls.\n\n rough estimation with small benchmark on parallel thread (2threads) shows\n [before]\n     4.5 cache-miss/faults\n [after]\n     4.0 cache-miss/faults\n Anyway, the most contended object is mmap_sem if the number of threads grows.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d559db086ff5be9bcc259e5aa50bf3d881eaf1d1",
      "tree": "aa968c8a4093234e4623a34c0415bf9d8683671c",
      "parents": [
        "19b629f581320999ddb9f6597051b79cdb53459c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:39 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:23 2010 -0800"
      },
      "message": "mm: clean up mm_counter\n\nPresently, per-mm statistics counter is defined by macro in sched.h\n\nThis patch modifies it to\n  - defined in mm.h as inlinf functions\n  - use array instead of macro\u0027s name creation.\n\nThis patch is for reducing patch size in future patch to modify\nimplementation of per-mm counter.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "984b3f5746ed2cde3d184651dabf26980f2b66e5",
      "tree": "87dc2162b4778b0075874d9592384530022e15a4",
      "parents": [
        "e3cb91ce1ac1d93a7cc6f81bb5247f7602b572bb"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Mar 05 13:41:37 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:23 2010 -0800"
      },
      "message": "bitops: rename for_each_bit() to for_each_set_bit()\n\nRename for_each_bit to for_each_set_bit in the kernel source tree.  To\npermit for_each_clear_bit(), should that ever be added.\n\nThe patch includes a macro to map the old for_each_bit() onto the new\nfor_each_set_bit().  This is a (very) temporary thing to ease the migration.\n\n[akpm@linux-foundation.org: add temporary for_each_bit()]\nSuggested-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "781b16775ba0bb55fac0e1757bf0bd87c8879632",
      "tree": "f081f67fe98a50a217a8c9be8d55e64854e46193",
      "parents": [
        "64096c17417380d8a472d096645f4cbc9406c987"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sat Mar 06 18:41:07 2010 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 10:54:48 2010 -0800"
      },
      "message": "Fix a dumb typo - use of \u0026 instead of \u0026\u0026\n\nWe managed to lose O_DIRECTORY testing due to a stupid typo in commit\n1f36f774b2 (\"Switch !O_CREAT case to use of do_last()\")\n\nReported-by: Walter Sheets \u003cw41ter@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c2f843f03d658e9ab2a1a455f2c1851fd6a869af",
      "tree": "644fba9ad16ad10c182bee67b903d0262ddf26ea",
      "parents": [
        "9cf05b416d3324457f1dd8be35f4eaa7a9640bed"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Sat Mar 06 10:03:11 2010 +0100"
      },
      "committer": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Sat Mar 06 10:03:11 2010 +0100"
      },
      "message": "[LogFS] Change magic number\n\nMany changes were made during development that could result in old\nversions of mklogfs and the kernel code being subtly incompatible.\nNot being a friend of subtleties, I hereby change the magic number.\nAny old version of mklogfs is now guaranteed to fail.\n"
    },
    {
      "commit": "9cf05b416d3324457f1dd8be35f4eaa7a9640bed",
      "tree": "7a81abdbae27a6ab8882e3f722846a22720ce79d",
      "parents": [
        "6a08ab846cefc82a328cbf9abd96c2e58a6c3664"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Sat Mar 06 10:01:46 2010 +0100"
      },
      "committer": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Sat Mar 06 10:01:46 2010 +0100"
      },
      "message": "[LogFS] Remove h_version field\n\nIncompatible change: h_compr is moved up so the padding is all in one chunk.\n"
    },
    {
      "commit": "cc7889ff5ee7a1c1a2b5073c53db5ad9b76f14e2",
      "tree": "647e11872abe7c20c0145de9adbb60f15085dad0",
      "parents": [
        "b13d3c6e8ab6ac53e8c1858a9c837cb6ba3bbef0",
        "3fa04ecd72780da31ba8b329e148179bc24a9c7d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:25:45 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:25:45 2010 -0800"
      },
      "message": "Merge branch \u0027nfs-for-2.6.34\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.34\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (44 commits)\n  NFS: Remove requirement for inode-\u003ei_mutex from nfs_invalidate_mapping\n  NFS: Clean up nfs_sync_mapping\n  NFS: Simplify nfs_wb_page()\n  NFS: Replace __nfs_write_mapping with sync_inode()\n  NFS: Simplify nfs_wb_page_cancel()\n  NFS: Ensure inode is always marked I_DIRTY_DATASYNC, if it has unstable pages\n  NFS: Run COMMIT as an asynchronous RPC call when wbc-\u003efor_background is set\n  NFS: Reduce the number of unnecessary COMMIT calls\n  NFS: Add a count of the number of unstable writes carried by an inode\n  NFS: Cleanup - move nfs_write_inode() into fs/nfs/write.c\n  nfs41 fix NFS4ERR_CLID_INUSE for exchange id\n  NFS: Fix an allocation-under-spinlock bug\n  SUNRPC: Handle EINVAL error returns from the TCP connect operation\n  NFSv4.1: Various fixes to the sequence flag error handling\n  nfs4: renewd renew operations should take/put a client reference\n  nfs41: renewd sequence operations should take/put client reference\n  nfs: prevent backlogging of renewd requests\n  nfs: kill renewd before clearing client minor version\n  NFS: Make close(2) asynchronous when closing NFS O_DIRECT files\n  NFS: Improve NFS iostat byte count accuracy for writes\n  ...\n"
    },
    {
      "commit": "b13d3c6e8ab6ac53e8c1858a9c837cb6ba3bbef0",
      "tree": "4c0b6cba4975b0d7871096e0a99406d450b0272f",
      "parents": [
        "e213e26ab3988c516c06eba4dcd030ac052f6dc9",
        "5717144a01d701614cfdb15f09ed562d720cf3db"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:25:24 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:25:24 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  fs/9p: Add hardlink support to .u extension\n  9P2010.L handshake: .L protocol negotiation\n  9P2010.L handshake: Remove \"dotu\" variable\n  9P2010.L handshake: Add mount option\n  9P2010.L handshake: Add VFS flags\n  net/9p: Handle mount errors correctly.\n  net/9p: Remove MAX_9P_CHAN limit\n  net/9p: Add multi channel support.\n"
    },
    {
      "commit": "e213e26ab3988c516c06eba4dcd030ac052f6dc9",
      "tree": "6e26fbdbb842b387697d73daf6e70cf718269a77",
      "parents": [
        "c812a51d11bbe983f4c24e32b59b265705ddd3c2",
        "efd8f0e6f6c1faa041f228d7113bd3a9db802d49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (33 commits)\n  quota: stop using QUOTA_OK / NO_QUOTA\n  dquot: cleanup dquot initialize routine\n  dquot: move dquot initialization responsibility into the filesystem\n  dquot: cleanup dquot drop routine\n  dquot: move dquot drop responsibility into the filesystem\n  dquot: cleanup dquot transfer routine\n  dquot: move dquot transfer responsibility into the filesystem\n  dquot: cleanup inode allocation / freeing routines\n  dquot: cleanup space allocation / freeing routines\n  ext3: add writepage sanity checks\n  ext3: Truncate allocated blocks if direct IO write fails to update i_size\n  quota: Properly invalidate caches even for filesystems with blocksize \u003c pagesize\n  quota: generalize quota transfer interface\n  quota: sb_quota state flags cleanup\n  jbd: Delay discarding buffers in journal_unmap_buffer\n  ext3: quota_write cross block boundary behaviour\n  quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota\n  quota: split out compat_sys_quotactl support from quota.c\n  quota: split out netlink notification support from quota.c\n  quota: remove invalid optimization from quota_sync_all\n  ...\n\nFixed trivial conflicts in fs/namei.c and fs/ufs/inode.c\n"
    },
    {
      "commit": "5717144a01d701614cfdb15f09ed562d720cf3db",
      "tree": "ad9e54c39587483b0f680d3dbf4f8dd606f1f9c0",
      "parents": [
        "c5a7697da9775f7a0e122fa23180becc311772d1"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Mar 05 14:43:43 2010 -0600"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Mar 05 15:04:42 2010 -0600"
      },
      "message": "fs/9p: Add hardlink support to .u extension\n\nFor regular file and directories we put the link\ncount in th extension field in a tagged string format.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "342fee1d5c7dfa05f4e14ec1e583df4553b09776",
      "tree": "87931dea926f16b44374db8a849ef131cd6ff3de",
      "parents": [
        "0fb80abd911a7cb1e6548b5279568dc1e8949702"
      ],
      "author": {
        "name": "Sripathi Kodi",
        "email": "sripathik@in.ibm.com",
        "time": "Fri Mar 05 18:50:14 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Mar 05 15:04:42 2010 -0600"
      },
      "message": "9P2010.L handshake: Remove \"dotu\" variable\n\nRemoves \u0027dotu\u0027 variable and make everything dependent\non \u0027proto_version\u0027 field.\n\nSigned-off-by: Sripathi Kodi \u003csripathik@in.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "dd6102fbd917889384d89bc427e98e85e8fda000",
      "tree": "06028b4b6a964c6a1578702c69c0731e3f03538c",
      "parents": [
        "c1a7c2262035e83a8f70ebe1328b3451702cf51b"
      ],
      "author": {
        "name": "Sripathi Kodi",
        "email": "sripathik@in.ibm.com",
        "time": "Fri Mar 05 18:48:00 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Mar 05 15:04:41 2010 -0600"
      },
      "message": "9P2010.L handshake: Add VFS flags\n\nAdd 9P2000.u and 9P2010.L protocol flags to V9FS VFS\n\nThis patch adds 9P2000.u and 9P2010.L protocol flags into V9FS VFS side code\nand removes the single flag used for \u0027extended\u0027.\n\nSigned-off-by: Sripathi Kodi \u003csripathik@in.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "3fa04ecd72780da31ba8b329e148179bc24a9c7d",
      "tree": "f5d462fd4aee086952d18f159f737c450ab46b3b",
      "parents": [
        "180b62a3d837613fcac3ce89576526423926c3c3",
        "1cda707d52e51a6cafac0aef12d2bd7052d572e6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:46:18 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:46:18 2010 -0500"
      },
      "message": "Merge branch \u0027writeback-for-2.6.34\u0027 into nfs-for-2.6.34\n"
    },
    {
      "commit": "1cda707d52e51a6cafac0aef12d2bd7052d572e6",
      "tree": "7a63b005631cca98f62ea199fef739eddce85d32",
      "parents": [
        "5cf95214ccb915591e2214f81de4659302d3e452"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:03:30 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:56 2010 -0500"
      },
      "message": "NFS: Remove requirement for inode-\u003ei_mutex from nfs_invalidate_mapping\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5cf95214ccb915591e2214f81de4659302d3e452",
      "tree": "3afcc0d8db911b117a3537846d81d5a5172827cc",
      "parents": [
        "7f2f12d963e7c33a93bfb0b22f0178eb1e6a4196"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:03:29 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:56 2010 -0500"
      },
      "message": "NFS: Clean up nfs_sync_mapping\n\nRemove the redundant call to filemap_write_and_wait().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7f2f12d963e7c33a93bfb0b22f0178eb1e6a4196",
      "tree": "cfc2694fd38f40bc22d22c3ef228f871ed827fe2",
      "parents": [
        "acdc53b2146c7ee67feb1f02f7bc3020126514b8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:03:28 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:55 2010 -0500"
      },
      "message": "NFS: Simplify nfs_wb_page()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "acdc53b2146c7ee67feb1f02f7bc3020126514b8",
      "tree": "3d8b087e8526c4caed87229fe12c2a2b261dd0a5",
      "parents": [
        "c988950eb6dd6f8e6d98503ca094622729e9aa13"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:03:26 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:55 2010 -0500"
      },
      "message": "NFS: Replace __nfs_write_mapping with sync_inode()\n\nNow that we have correct COMMIT semantics in writeback_single_inode, we can\nreduce and simplify nfs_wb_all(). Also replace nfs_wb_nocommit() with a\ncall to filemap_write_and_wait(), which doesn\u0027t need to hold the\ninode-\u003ei_mutex.\n\nWith that done, we can eliminate nfs_write_mapping() altogether.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c988950eb6dd6f8e6d98503ca094622729e9aa13",
      "tree": "5a5b34050d4f20909e7378108aa131e615ef52cd",
      "parents": [
        "2928db1ffeacc9717c2d5c230d450bcc377b3ae9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:03:21 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:55 2010 -0500"
      },
      "message": "NFS: Simplify nfs_wb_page_cancel()\n\nIn all cases we should be able to just remove the request and call\ncancel_dirty_page().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2928db1ffeacc9717c2d5c230d450bcc377b3ae9",
      "tree": "c0dea3d26d45c3ea1a3602984ed4738b93373f67",
      "parents": [
        "5bad5abec4058c5214bfc72cec418348d6747977"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:03:18 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:54 2010 -0500"
      },
      "message": "NFS: Ensure inode is always marked I_DIRTY_DATASYNC, if it has unstable pages\n\nSince nfs_scan_list() doesn\u0027t wait for locked pages, we have a race in\nwhich it is possible to end up with an inode that needs to send a COMMIT,\nbut which does not have the I_DIRTY_DATASYNC flag set.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5bad5abec4058c5214bfc72cec418348d6747977",
      "tree": "dab4b4916a3709632da7d3f43df63a5b8601414c",
      "parents": [
        "420e3646bb7d93a571734034249fbb1ae1a7a5c7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:02:24 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:54 2010 -0500"
      },
      "message": "NFS: Run COMMIT as an asynchronous RPC call when wbc-\u003efor_background is set\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "420e3646bb7d93a571734034249fbb1ae1a7a5c7",
      "tree": "dc3328f6df5769e275253c23d862cb0a16ab50f1",
      "parents": [
        "ff778d02bf867e1733a09b34ad6dbb723b024814"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:00:02 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:54 2010 -0500"
      },
      "message": "NFS: Reduce the number of unnecessary COMMIT calls\n\nIf the caller is doing a non-blocking flush, and there are still writebacks\npending on the wire, we can usually defer the COMMIT call until those\nwrites are done.\n\nAlso ensure that we honour the wbc-\u003enonblocking flag.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ff778d02bf867e1733a09b34ad6dbb723b024814",
      "tree": "d22e33628b93f31c08089a3bf0ec4cc00a409b7a",
      "parents": [
        "8fc795f703c5138e1a8bfb88c69f52632031aa6a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 16:53:39 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:54 2010 -0500"
      },
      "message": "NFS: Add a count of the number of unstable writes carried by an inode\n\nIn order to know when we should do opportunistic commits of the unstable\nwrites, when the VM is doing a background flush, we add a field to count\nthe number of unstable writes.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8fc795f703c5138e1a8bfb88c69f52632031aa6a",
      "tree": "aed975562fe5557ff552bc0fe45b5d2b6f5e56c9",
      "parents": [
        "9467c4fdd66f6810cecef0f1173330f3c6e67d45"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 16:46:56 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:53 2010 -0500"
      },
      "message": "NFS: Cleanup - move nfs_write_inode() into fs/nfs/write.c\n\nThe sole purpose of nfs_write_inode is to commit unstable writes, so\nmove it into fs/nfs/write.c, and make nfs_commit_inode static.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9467c4fdd66f6810cecef0f1173330f3c6e67d45",
      "tree": "5fea180a10127c893b288dff2c8788b72d2eaea3",
      "parents": [
        "35c2e967d067ff02dc944f2434f024419c2fe83a",
        "a9185b41a4f84971b930c519f0c63bd450c4810d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 11:53:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 11:53:53 2010 -0800"
      },
      "message": "Merge branch \u0027write_inode2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027write_inode2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  pass writeback_control to -\u003ewrite_inode\n  make sure data is on disk before calling -\u003ewrite_inode\n"
    },
    {
      "commit": "35c2e967d067ff02dc944f2434f024419c2fe83a",
      "tree": "3fcecfe650d359f9a63a2a22c9faa3dff2b0a7a6",
      "parents": [
        "6c550ee41596798cbd873d3df9f8ea0a4ce7ad2f",
        "1f36f774b22a0ceb7dd33eca626746c81a97b6a5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 11:46:31 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 11:46:31 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  Switch !O_CREAT case to use of do_last()\n  Get rid of symlink body copying\n  Finish pulling of -ESTALE handling to upper level in do_filp_open()\n  Turn do_link spaghetty into a normal loop\n  Unify exits in O_CREAT handling\n  Kill is_link argument of do_last()\n  Pull handling of LAST_BIND into do_last(), clean up ok: part in do_filp_open()\n  Leave mangled flag only for setting nd.intent.open.flag\n  Get rid of passing mangled flag to do_last()\n  Don\u0027t pass mangled open_flag to finish_open()\n  pull more into do_last()\n  bail out with ELOOP earlier in do_link loop\n  pull the common predecessors into do_last()\n  postpone __putname() until after do_last()\n  unroll do_last: loop in do_filp_open()\n  Shift releasing nd-\u003eroot from do_last() to its caller\n  gut do_filp_open() a bit more (do_last separation)\n  beginning to untangle do_filp_open()\n"
    },
    {
      "commit": "1f63b9c15b17d5af360c180f5c71537e954d5d3b",
      "tree": "4da17d6f2035ae093680fa2caa3e1c84b44bb237",
      "parents": [
        "b24bc1e61cec2174faf5dfa632da16b6ca17144f",
        "64e290ec69be39f1887fa0b403c1e417b6b038e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:47:00 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:47:00 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (36 commits)\n  ext4: fix up rb_root initializations to use RB_ROOT\n  ext4: Code cleanup for EXT4_IOC_MOVE_EXT ioctl\n  ext4: Fix the NULL reference in double_down_write_data_sem()\n  ext4: Fix insertion point of extent in mext_insert_across_blocks()\n  ext4: consolidate in_range() definitions\n  ext4: cleanup to use ext4_grp_offs_to_block()\n  ext4: cleanup to use ext4_group_first_block_no()\n  ext4: Release page references acquired in ext4_da_block_invalidatepages\n  ext4: Fix ext4_quota_write cross block boundary behaviour\n  ext4: Convert BUG_ON checks to use ext4_error() instead\n  ext4: Use direct_IO_no_locking in ext4 dio read\n  ext4: use ext4_get_block_write in buffer write\n  ext4: mechanical rename some of the direct I/O get_block\u0027s identifiers\n  ext4: make \"offset\" consistent in ext4_check_dir_entry()\n  ext4: Handle non empty on-disk orphan link\n  ext4: explicitly remove inode from orphan list after failed direct io\n  ext4: fix error handling in migrate\n  ext4: deprecate obsoleted mount options\n  ext4: Fix fencepost error in chosing choosing group vs file preallocation.\n  jbd2: clean up an assertion in jbd2_journal_commit_transaction()\n  ...\n"
    },
    {
      "commit": "b24bc1e61cec2174faf5dfa632da16b6ca17144f",
      "tree": "33abe2345c70d4bce31cda8fe2e562a8a9a24dfc",
      "parents": [
        "64ba9926759792cf7b95f823402e2781edd1b5d4",
        "06862f884d9c2453daaf0c1d070c69cf444f10b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:46:04 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:46:04 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus:\n  Squashfs: get rid of obsolete definition in header file\n  Squashfs: get rid of obsolete variable in struct squashfs_sb_info\n  Squashfs: add decompressor entries for lzma and lzo\n  Squashfs: add a decompressor framework\n  Squashfs: factor out remaining zlib dependencies into separate wrapper file\n  Squashfs: move zlib decompression wrapper code into a separate file\n"
    },
    {
      "commit": "a9185b41a4f84971b930c519f0c63bd450c4810d",
      "tree": "268cf4e206cca12fb9e1dd68984e7c190e465b46",
      "parents": [
        "26821ed40b4230259e770c9911180f38fcaa6f59"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Mar 05 09:21:37 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 13:25:52 2010 -0500"
      },
      "message": "pass writeback_control to -\u003ewrite_inode\n\nThis gives the filesystem more information about the writeback that\nis happening.  Trond requested this for the NFS unstable write handling,\nand other filesystems might benefit from this too by beeing able to\ndistinguish between the different callers in more detail.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "26821ed40b4230259e770c9911180f38fcaa6f59",
      "tree": "40cd0fed705ec59dd3c909b96452bae1fc532796",
      "parents": [
        "64ba9926759792cf7b95f823402e2781edd1b5d4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Mar 05 09:21:21 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 13:25:10 2010 -0500"
      },
      "message": "make sure data is on disk before calling -\u003ewrite_inode\n\nSimilar to the fsync issue fixed a while ago in commit\n2daea67e966dc0c42067ebea015ddac6834cef88 we need to write for data to\nactually hit the disk before writing out the metadata to guarantee\ndata integrity for filesystems that modify the inode in the data I/O\ncompletion path.  Currently XFS and NFS handle this manually, and AFS\nhas a write_inode method that does nothing but waiting for data, while\nothers are possibly missing out on this.\n\nFortunately this change has a lot less impact than the fsync change\nas none of the write_inode methods starts data writeout of any form\nby itself.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9b1f56d60acfd634728f91f34922066c6f80ede6",
      "tree": "e8f64d4bea808341f56f41e724c2920ae6b1ed26",
      "parents": [
        "64ba9926759792cf7b95f823402e2781edd1b5d4",
        "07000ee686cf19e853fa06f7904eff2cfe230ea3"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Mar 05 11:45:03 2010 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Mar 05 11:45:03 2010 -0600"
      },
      "message": "Merge branch \u0027for-2.6.34-rc1-batch2\u0027 into for-linus\n"
    },
    {
      "commit": "07000ee686cf19e853fa06f7904eff2cfe230ea3",
      "tree": "04116d2d61895728b1b6f4b9b9948d9341825022",
      "parents": [
        "8babd8a2e75cccff3167a61176c2a3e977e13799"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Mar 05 04:41:14 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Mar 05 11:02:07 2010 -0600"
      },
      "message": "xfs: return inode fork offset in bulkstat for fsr\n\nSo that fsr can attempt to get the fork offset of the temporary\ninode it uses the same as the inode it is defragmenting, pass the\nfork offset out in the bulkstat information.\n\nThe bulkstat structure has padding that has always been zeroed, so\nuserspace can tell if this field is set or not by use of the xattr\npresent flag and a non-zero value for the fork offset.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "8babd8a2e75cccff3167a61176c2a3e977e13799",
      "tree": "3d438e7ed84ad1f06a1a67fbb62725c92c6ad224",
      "parents": [
        "3ed3a4343b79a79d10e31f85f2d1afabcead76c6"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Mar 04 01:46:25 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Mar 05 11:01:59 2010 -0600"
      },
      "message": "xfs: Increase the default size of the reserved blocks pool\n\nThe current default size of the reserved blocks pool is easy to deplete\nwith certain workloads, in particular workloads that do lots of concurrent\ndelayed allocation extent conversions.  If enough transactions are running\nin parallel and the entire pool is consumed then subsequent calls to\nxfs_trans_reserve() will fail with ENOSPC.  Also add a rate limited\nwarning so we know if this starts happening again.\n\nThis is an updated version of an old patch from Lachlan McIlroy.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "3ed3a4343b79a79d10e31f85f2d1afabcead76c6",
      "tree": "9d3982cfb179bff8071ef99f2e2b36e3872dfa6a",
      "parents": [
        "20f6b2c785cf187445f126321638ab8ba7aa7494"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Mar 05 02:00:42 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Mar 05 11:01:53 2010 -0600"
      },
      "message": "xfs: truncate delalloc extents when IO fails in writeback\n\nWe currently use block_invalidatepage() to clean up pages where I/O\nfails in -\u003ewritepage(). Unfortunately, if the page has delalloc\nregions on it, we fail to remove the delalloc regions when we\ninvalidate the page.  This can result in tripping a BUG() in\nxfs_get_blocks() later on if a direct IO read is done on that same\nregion - the delalloc extent is returned when none is supposed to be\nthere.\n\nFix this by truncating away the delalloc regions on the page before\ninvalidating it. Because they are delalloc, we can do this without\nneeding a transaction. Indeed - if we get ENOSPC errors, we have to\nbe able to do this truncation without a transaction as there is\nno space left for block reservation (typically why we see a ENOSPC\nin writeback).\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "20f6b2c785cf187445f126321638ab8ba7aa7494",
      "tree": "bf8ba702047ae78cffeac6fd97852bde3741621b",
      "parents": [
        "694189328a7e566cb84bd3205503a42b60e87882"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Mar 04 01:46:23 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Mar 05 11:01:45 2010 -0600"
      },
      "message": "xfs: check for more work before sleeping in xfssyncd\n\nxfssyncd processes a queue of work by detaching the queue and\nthen iterating over all the work items. It then sleeps for a\ntime period or until new work comes in. If new work is queued\nwhile xfssyncd is actively processing the detached work queue,\nit will not process that new work until after a sleep timeout\nor the next work event queued wakes it.\n\nFix this by checking the work queue again before going to sleep.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "694189328a7e566cb84bd3205503a42b60e87882",
      "tree": "dfd6cb104db477741ed8cc8a878832e90904f184",
      "parents": [
        "f1f724e4b523d444c5a598d74505aefa3d6844d2"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Mar 04 00:57:09 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Mar 05 11:01:22 2010 -0600"
      },
      "message": "xfs: Fix a build warning in xfs_aops.c\n\nFix a build warning that slipped through.  Dave Chinner had posted\nan updated version of his patch but the previous version--without\nthis fix--was what got committed.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "06862f884d9c2453daaf0c1d070c69cf444f10b1",
      "tree": "43f3f5124675e3c38c1093d22a1230c584246c99",
      "parents": [
        "ae4a3179b11a97a5b36a768ae6ac1662d0315ff0"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Thu Feb 25 01:31:13 2010 +0000"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Fri Mar 05 15:35:35 2010 +0000"
      },
      "message": "Squashfs: get rid of obsolete definition in header file\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "ae4a3179b11a97a5b36a768ae6ac1662d0315ff0",
      "tree": "bd762d892c4abc6fcfc9bbec146452776c299f81",
      "parents": [
        "dc3256782f88602953676c447b243dedb1be99ad"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Thu Feb 25 00:54:48 2010 +0000"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Fri Mar 05 15:35:20 2010 +0000"
      },
      "message": "Squashfs: get rid of obsolete variable in struct squashfs_sb_info\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "6a08ab846cefc82a328cbf9abd96c2e58a6c3664",
      "tree": "28aca16fc73f9b413d1ae9e67d97cdab39e869b6",
      "parents": [
        "c6d3830140f1d56b07d8ab56a6e14ca3c492a39a"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Fri Mar 05 16:07:04 2010 +0100"
      },
      "committer": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Fri Mar 05 16:07:04 2010 +0100"
      },
      "message": "[LogFS] Check feature flags\n"
    },
    {
      "commit": "1f36f774b22a0ceb7dd33eca626746c81a97b6a5",
      "tree": "cfc2757bb3e21d484ce28bd3030e649b5767b5a1",
      "parents": [
        "def4af30cf945a3735ffca865788ea84b30b25d9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 10:56:19 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:22:25 2010 -0500"
      },
      "message": "Switch !O_CREAT case to use of do_last()\n\n... and now we have all intents crap well localized\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "def4af30cf945a3735ffca865788ea84b30b25d9",
      "tree": "adeac07e1675c51e8d9fa42ccf284b7b893041f1",
      "parents": [
        "3866248e5f86d74960a3d1592882490ec3021675"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 08:37:05 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:40 2010 -0500"
      },
      "message": "Get rid of symlink body copying\n\nNow that nd-\u003elast stays around until -\u003eput_link() is called, we can\njust postpone that -\u003eput_link() in do_filp_open() a bit and don\u0027t\nbother with copying.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3866248e5f86d74960a3d1592882490ec3021675",
      "tree": "af44e08612f8895a81aea230739439d4ef09cfaf",
      "parents": [
        "806b681cbe588bebe8fe47dd24da62f2d1c55851"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:21:48 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:38 2010 -0500"
      },
      "message": "Finish pulling of -ESTALE handling to upper level in do_filp_open()\n\nDon\u0027t bother with path_walk() (and its retry loop); link_path_walk()\nwill do it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "806b681cbe588bebe8fe47dd24da62f2d1c55851",
      "tree": "030d0e479f0c3e462930d18134a15092803d1ad3",
      "parents": [
        "10fa8e62f2bc33c452516585911f151d88389e4c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:16:40 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:36 2010 -0500"
      },
      "message": "Turn do_link spaghetty into a normal loop\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "10fa8e62f2bc33c452516585911f151d88389e4c",
      "tree": "9a69dd68ffdf419cd6391f198ff40ac0943b9a35",
      "parents": [
        "9e67f36169117e07daf16dc7ca314f1db9e2050a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:09:49 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:35 2010 -0500"
      },
      "message": "Unify exits in O_CREAT handling\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9e67f36169117e07daf16dc7ca314f1db9e2050a",
      "tree": "7090b0fdafa07c91afa3fcc1eede94d0df74942f",
      "parents": [
        "67ee3ad21d0d0b2cc0b70708de8aed860fadda44"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:04:50 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:33 2010 -0500"
      },
      "message": "Kill is_link argument of do_last()\n\nWe set it to 1 iff we return NULL\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "67ee3ad21d0d0b2cc0b70708de8aed860fadda44",
      "tree": "842c575f8d7c06b4ebca8c418270da7207359767",
      "parents": [
        "4296e2cbf2138b5831b83f03e81de916ce1a967d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:01:01 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:31 2010 -0500"
      },
      "message": "Pull handling of LAST_BIND into do_last(), clean up ok: part in do_filp_open()\n\nNote that in case of !O_CREAT we know that nd.root has already been given up\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4296e2cbf2138b5831b83f03e81de916ce1a967d",
      "tree": "395b8422f7555c79c0251be27cff715adf9ec11e",
      "parents": [
        "5b369df8263fe7ab4dac2bb08b8f423dc5e33752"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 07:15:41 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:29 2010 -0500"
      },
      "message": "Leave mangled flag only for setting nd.intent.open.flag\n\nNothing else uses it anymore\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5b369df8263fe7ab4dac2bb08b8f423dc5e33752",
      "tree": "0b127915244593c1ed2494454d191a4fedb4d661",
      "parents": [
        "9a66179e13504c676f891908a1e94912ec5cdefb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:51:13 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:27 2010 -0500"
      },
      "message": "Get rid of passing mangled flag to do_last()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9a66179e13504c676f891908a1e94912ec5cdefb",
      "tree": "ddfa9f767ba393744adc6714a4c7ef0966222d81",
      "parents": [
        "a2c36b450ee68470836cb858c58a6ba3a52c5ec5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:49:47 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:25 2010 -0500"
      },
      "message": "Don\u0027t pass mangled open_flag to finish_open()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a2c36b450ee68470836cb858c58a6ba3a52c5ec5",
      "tree": "5c1aff4738fd679efd6d96f2ae224ea97121b019",
      "parents": [
        "c99658fe970f442199733bcace1a00b087336a0d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 03:39:50 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:24 2010 -0500"
      },
      "message": "pull more into do_last()\n\nHandling of LAST_DOT/LAST_ROOT/LAST_DOTDOT/terminating slash\ncan be pulled in as well\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c99658fe970f442199733bcace1a00b087336a0d",
      "tree": "b9065b274d8f00639af43bbb8e4eaabcda5b559d",
      "parents": [
        "a1e28038df98e186807ff55a49c1c26d33d530a5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:27:30 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:22 2010 -0500"
      },
      "message": "bail out with ELOOP earlier in do_link loop\n\nIf we\u0027d passed through 32 trailing symlinks already, there\u0027s\nno sense following the 33rd - we\u0027ll bail out anyway.  Better\nbugger off earlier.\n\nIt *does* change behaviour, after a fashion - if the 33rd happens\nto be a procfs-style symlink, original code *would* allow it.\nThis one will not.  Cry me a river if that hurts you.  Please, do.\nAnd post a video of that, while you are at it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a1e28038df98e186807ff55a49c1c26d33d530a5",
      "tree": "a72a14858ae883b333b4a0cf6bbf52d33a6bdb82",
      "parents": [
        "c41c14056210e4a328659c82b1edaccb0910d18c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:12:06 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:20 2010 -0500"
      },
      "message": "pull the common predecessors into do_last()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c41c14056210e4a328659c82b1edaccb0910d18c",
      "tree": "0ae7f7e9f952feb4577bb1908b063997232171bb",
      "parents": [
        "27bff34300482632caf52ff589a4e7d755b32539"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:08:19 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:18 2010 -0500"
      },
      "message": "postpone __putname() until after do_last()\n\nSince do_last() doesn\u0027t mangle nd-\u003elast_name, we can safely postpone\n__putname() done in handling of trailing symlinks until after the\ncall of do_last()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "27bff34300482632caf52ff589a4e7d755b32539",
      "tree": "49c6b38dd0c6ff2eebf0f0dad4c73a6539d52bbc",
      "parents": [
        "3343eb8209cc69f0d2059f8c484ad7a3e1834c0b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:05:43 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:16 2010 -0500"
      },
      "message": "unroll do_last: loop in do_filp_open()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3343eb8209cc69f0d2059f8c484ad7a3e1834c0b",
      "tree": "25d72fd720d5dcbf0f0be40832c76759e49413cc",
      "parents": [
        "fb1cc555d533869910e20de4b8d5147570afdfad"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:02:38 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:15 2010 -0500"
      },
      "message": "Shift releasing nd-\u003eroot from do_last() to its caller\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fb1cc555d533869910e20de4b8d5147570afdfad",
      "tree": "99ee86c8370e28df0991a4ecd03677cb65704f01",
      "parents": [
        "648fa8611de3d4d43bbd64af3226679d2d0eb609"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 01:58:28 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:13 2010 -0500"
      },
      "message": "gut do_filp_open() a bit more (do_last separation)\n\nBrute-force separation of stuff reachable from do_last: with\nthe exception of do_link:; just take all that crap to a helper\nfunction as-is and have it tell the caller if it has to go\nto do_link.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "648fa8611de3d4d43bbd64af3226679d2d0eb609",
      "tree": "96d134de1d935d6d54daac678dc07346bbbda940",
      "parents": [
        "64ba9926759792cf7b95f823402e2781edd1b5d4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 01:26:48 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:11 2010 -0500"
      },
      "message": "beginning to untangle do_filp_open()\n\nThat\u0027s going to be a long and painful series.  The first step:\ntake the stuff reachable from \u0027ok\u0027 label in do_filp_open() into\na new helper (finish_open()).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "64e290ec69be39f1887fa0b403c1e417b6b038e7",
      "tree": "8c7f87a2a4baa357e0cc04ab10b5af0b06273160",
      "parents": [
        "c437b2733520599a2c6e0dbcdeae611319f84707"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Thu Mar 04 22:25:21 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Mar 04 22:25:21 2010 -0500"
      },
      "message": "ext4: fix up rb_root initializations to use RB_ROOT\n\next4 uses rb_node \u003d NULL; to zero rb_root at few places.  Using\nRB_ROOT as the initializer is more portable in case the underlying\nimplementation of rbtrees changes in the future.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "efd8f0e6f6c1faa041f228d7113bd3a9db802d49",
      "tree": "81dbe5e0db3651227466f18283fd640edda080f2",
      "parents": [
        "871a293155a24554e153538d36e3a80fa169aefb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:08 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:31 2010 +0100"
      },
      "message": "quota: stop using QUOTA_OK / NO_QUOTA\n\nJust use 0 / -EDQUOT directly - that\u0027s what it translates to anyway.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "871a293155a24554e153538d36e3a80fa169aefb",
      "tree": "7e38f5a2f9e87f63cbc4bc1077a4bb49dde441b0",
      "parents": [
        "907f4554e2521cb28b0009d17167760650a9561c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:07 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: cleanup dquot initialize routine\n\nGet rid of the initialize dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_initialize helper to __dquot_initialize\nand vfs_dq_init to dquot_initialize to have a consistent namespace.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "907f4554e2521cb28b0009d17167760650a9561c",
      "tree": "68dc49163fd34331f8efbd63592c8f1baa387031",
      "parents": [
        "9f7547580263d4a55efe06ce5cfd567f568be6e8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:06 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: move dquot initialization responsibility into the filesystem\n\nCurrently various places in the VFS call vfs_dq_init directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the initialization.   For most metadata operations\nthis is a straight forward move into the methods, but for truncate and\nopen it\u0027s a bit more complicated.\n\nFor truncate we currently only call vfs_dq_init for the sys_truncate case\nbecause open already takes care of it for ftruncate and open(O_TRUNC) - the\nnew code causes an additional vfs_dq_init for those which is harmless.\n\nFor open the initialization is moved from do_filp_open into the open method,\nwhich means it happens slightly earlier now, and only for regular files.\nThe latter is fine because we don\u0027t need to initialize it for operations\non special files, and we already do it as part of the namespace operations\nfor directories.\n\nAdd a dquot_file_open helper that filesystems that support generic quotas\ncan use to fill in -\u003eopen.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "9f7547580263d4a55efe06ce5cfd567f568be6e8",
      "tree": "6f926a075eeed815d0a6680c06f235da0e5ea6d9",
      "parents": [
        "257ba15cedf1288f0c96118d7e63947231d27278"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:05 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: cleanup dquot drop routine\n\nGet rid of the drop dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_drop helper to __dquot_drop\nand vfs_dq_drop to dquot_drop to have a consistent namespace.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "257ba15cedf1288f0c96118d7e63947231d27278",
      "tree": "7a977a0ea08a324ce74aedce19406cb0688f15e2",
      "parents": [
        "b43fa8284d7790d9cca32c9c55e24f29be2fa33b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:04 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:29 2010 +0100"
      },
      "message": "dquot: move dquot drop responsibility into the filesystem\n\nCurrently clear_inode calls vfs_dq_drop directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the drop inside the -\u003eclear_inode\nsuperblock operation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b43fa8284d7790d9cca32c9c55e24f29be2fa33b",
      "tree": "acb7f205fe2a1ae324e0e11c50f43baaa6b8dfab",
      "parents": [
        "759bfee658beab14af7b357156461d0eb852be2c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:03 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:29 2010 +0100"
      },
      "message": "dquot: cleanup dquot transfer routine\n\nGet rid of the transfer dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_transfer helper to __dquot_transfer\nand vfs_dq_transfer to dquot_transfer to have a consistent namespace,\nand make the new dquot_transfer return a normal negative errno value\nwhich all callers expect.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "759bfee658beab14af7b357156461d0eb852be2c",
      "tree": "180cdedd004781ee67c30ce89951324d32910067",
      "parents": [
        "63936ddaa16b9486e2d426ed7b09f559a5c60f87"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:02 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:28 2010 +0100"
      },
      "message": "dquot: move dquot transfer responsibility into the filesystem\n\nCurrently notify_change calls vfs_dq_transfer directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the transfer.  Most filesystems already\ndo this, only ufs and udf need the code added, and for jfs it needs to\nbe enabled unconditionally instead of only when ACLs are enabled.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    }
  ],
  "next": "63936ddaa16b9486e2d426ed7b09f559a5c60f87"
}
