)]}'
{
  "log": [
    {
      "commit": "ffab83402f01555a5fa32efb48a4dd0ce8d12ef5",
      "tree": "4e02fa7422becb56e6ed4b8721f8b0fb3a867d44",
      "parents": [
        "cd7752ce7cac5184ca35aecebffafae9662570bc"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:22 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:50 2010 -0400"
      },
      "message": "fsnotify: fsnotify_obtain_group should be fsnotify_alloc_group\n\nfsnotify_obtain_group was intended to be able to find an already existing\ngroup.  Nothing uses that functionality.  This just renames it to\nfsnotify_alloc_group so it is clear what it is doing.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "cd7752ce7cac5184ca35aecebffafae9662570bc",
      "tree": "42c1d6af6bb0992345e2cb9ca87190fbce35d6f8",
      "parents": [
        "74be0cc82835aecad332a29896b0f212ba893403"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:22 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:50 2010 -0400"
      },
      "message": "fsnotify: fsnotify_obtain_group kzalloc cleanup\n\nfsnotify_obtain_group uses kzalloc but then proceedes to set things to 0.\nThis patch just deletes those useless lines.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "74be0cc82835aecad332a29896b0f212ba893403",
      "tree": "eaae59c73ba52ff8cab8ee845e989d9877603f4c",
      "parents": [
        "cac69dad32899c6f4c66bb4f9baf69b0d3c7d3d1"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:22 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:50 2010 -0400"
      },
      "message": "fsnotify: remove group_num altogether\n\nThe original fsnotify interface has a group-num which was intended to be\nable to find a group after it was added.  I no longer think this is a\nnecessary thing to do and so we remove the group_num.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "cac69dad32899c6f4c66bb4f9baf69b0d3c7d3d1",
      "tree": "326019945bfe57024b4e55dd0aa031cdb4413e30",
      "parents": [
        "1201a5361b9bd6512ae01e6f2b7aa79d458cafb1"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:22 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:50 2010 -0400"
      },
      "message": "fsnotify: lock annotation for event replacement\n\nfsnotify_replace_event need to lock both the old and the new event.  This\ncauses lockdep to get all pissed off since it dosn\u0027t know this is safe.\nIt\u0027s safe in this case since the new event is impossible to be reached from\nother places in the kernel.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "1201a5361b9bd6512ae01e6f2b7aa79d458cafb1",
      "tree": "bfbb10b38b6b32b773a43cc371b5d31a9ce3fe51",
      "parents": [
        "b4e4e1407312ae5a267ed7d716e6d4e7120a8430"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:22 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:49 2010 -0400"
      },
      "message": "fsnotify: replace an event on a list\n\nfanotify would like to clone events already on its notification list, make\nchanges to the new event, and then replace the old event on the list with\nthe new event.  This patch implements the replace functionality of that\nprocess.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "b4e4e1407312ae5a267ed7d716e6d4e7120a8430",
      "tree": "2953d8885e3224955f1a5aca7c129709b26a059d",
      "parents": [
        "74766bbfa99adf8cb8119df6121851edba21c9d9"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:21 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:49 2010 -0400"
      },
      "message": "fsnotify: clone existing events\n\nfsnotify_clone_event will take an event, clone it, and return the cloned\nevent to the caller.  Since events may be in use by multiple fsnotify\ngroups simultaneously certain event entries (such as the mask) cannot be\nchanged after the event was created.  Since fanotify would like to merge\nevents happening on the same file it needs a new clean event to work with\nso it can change any fields it wishes.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "74766bbfa99adf8cb8119df6121851edba21c9d9",
      "tree": "724dbee0d1e7794401e2d3bdd3c17fd2ce3e4635",
      "parents": [
        "28c60e37f874dcbb93c4afc839ba5e4911c4f4bc"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:21 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:49 2010 -0400"
      },
      "message": "fsnotify: per group notification queue merge types\n\ninotify only wishes to merge a new event with the last event on the\nnotification fifo.  fanotify is willing to merge any events including by\nmeans of bitwise OR masks of multiple events together.  This patch moves\nthe inotify event merging logic out of the generic fsnotify notification.c\nand into the inotify code.  This allows each use of fsnotify to provide\ntheir own merge functionality.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "28c60e37f874dcbb93c4afc839ba5e4911c4f4bc",
      "tree": "6f0ba450d42e9e9d6cc5be2e42dc846f00c44447",
      "parents": [
        "2a12a9d7814631e918dec93abad856e692d5286d"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:21 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:48 2010 -0400"
      },
      "message": "fsnotify: send struct file when sending events to parents when possible\n\nfanotify needs a path in order to open an fd to the object which changed.\nCurrently notifications to inode\u0027s parents are done using only the inode.\nFor some parental notification we have the entire file, send that so\nfanotify can use it.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "2a12a9d7814631e918dec93abad856e692d5286d",
      "tree": "12817004ae9667bf83f869606f38050636edeb61",
      "parents": [
        "8112e2d6a7356e8c3ff1f7f3c86f375ed0305705"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:21 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:32 2010 -0400"
      },
      "message": "fsnotify: pass a file instead of an inode to open, read, and write\n\nfanotify, the upcoming notification system actually needs a struct path so it can\ndo opens in the context of listeners, and it needs a file so it can get f_flags\nfrom the original process.  Close was the only operation that already was passing\na struct file to the notification hook.  This patch passes a file for access,\nmodify, and open as well as they are easily available to these hooks.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "8112e2d6a7356e8c3ff1f7f3c86f375ed0305705",
      "tree": "953926dd3596c0ac87d7407960d0987b765a8239",
      "parents": [
        "7b0a04fbfb35650941af87728d4891515b4fc179"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:21 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:31 2010 -0400"
      },
      "message": "fsnotify: include data in should_send calls\n\nfanotify is going to need to look at file-\u003eprivate_data to know if an event\nshould be sent or not.  This passes the data (which might be a file,\ndentry, inode, or none) to the should_send function calls so fanotify can\nget that information when available\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "7b0a04fbfb35650941af87728d4891515b4fc179",
      "tree": "48d85a11a8d3c283db3eb9f91ac4fb97bb2beafe",
      "parents": [
        "d7f0ce4e436b6109527c51b0efe0deff53d215f7"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:21 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:31 2010 -0400"
      },
      "message": "fsnotify: provide the data type to should_send_event\n\nfanotify is only interested in event types which contain enough information\nto open the original file in the context of the fanotify listener.  Since\nfanotify may not want to send events if that data isn\u0027t present we pass\nthe data type to the should_send_event function call so fanotify can express\nits lack of interest.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "d7f0ce4e436b6109527c51b0efe0deff53d215f7",
      "tree": "b3c78a9c8b97ecf0dad28776dc38d47e88483731",
      "parents": [
        "2dfc1cae4c42b93b831b2417540df2b895ab7108"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Dec 22 23:16:33 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:31 2010 -0400"
      },
      "message": "inotify: do not spam console without limit\n\ninotify was supposed to have a dmesg printk ratelimitor which would cause\ninotify to only emit one message per boot.  The static bool was never set\nso it kept firing messages.  This patch correctly limits warnings in multiple\nplaces.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "2dfc1cae4c42b93b831b2417540df2b895ab7108",
      "tree": "e07a0075964fd2cb9210b302114255e16ab1d4c0",
      "parents": [
        "7050c48826d5adb2210bddfb6a67aa13bbe984ed"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:30:52 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:31 2010 -0400"
      },
      "message": "inotify: remove inotify in kernel interface\n\nnothing uses inotify in the kernel, drop it!\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "7050c48826d5adb2210bddfb6a67aa13bbe984ed",
      "tree": "21a2f73a9953f1125aea81e02ef547afbe33661a",
      "parents": [
        "6f3a539e3bd8ed2eafa532443723d56896153a00"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:27:10 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:20 2010 -0400"
      },
      "message": "inotify: do not reuse watch descriptors\n\nPrior to 2.6.31 inotify would not reuse watch descriptors until all of\nthem had been used at least once.  After the rewrite inotify would reuse\nwatch descriptors.  The selinux utility \u0027restorecond\u0027 was found to have\nproblems when watch descriptors were reused.  This patch reverts to the\npre inotify rewrite behavior to not reuse watch descriptors.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "6f3a539e3bd8ed2eafa532443723d56896153a00",
      "tree": "73c85129825daf947c32c2e1f6e9e97ed674b108",
      "parents": [
        "f0553af054d31f48a75fddd3ef8beb5c39715019"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:07 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:20 2010 -0400"
      },
      "message": "fsnotify: use kmem_cache_zalloc to simplify event initialization\n\nfsnotify event initialization is done entry by entry with almost everything\nset to either 0 or NULL.  Use kmem_cache_zalloc and only initialize things\nthat need non-zero initialization.  Also means we don\u0027t have to change\ninitialization entries based on the config options.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "f0553af054d31f48a75fddd3ef8beb5c39715019",
      "tree": "023a3505df93755f0726ab4ba0dff456ff68c88b",
      "parents": [
        "31ddd3268dcb6c1d70e9930a83be43bf86e4bf17"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:06 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:20 2010 -0400"
      },
      "message": "fsnotify: kzalloc fsnotify groups\n\nUse kzalloc for fsnotify_groups so that none of the fields can leak any\ninformation accidentally.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "31ddd3268dcb6c1d70e9930a83be43bf86e4bf17",
      "tree": "a9ee0ac61f73e7dd6883d4466a56b79fe3e6e38b",
      "parents": [
        "b4277d3dd5a7400c1ea7fd4e7d64bda8899f84f5"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:06 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:19 2010 -0400"
      },
      "message": "inotify: use container_of instead of casting\n\ninotify_free_mark casts directly from an fsnotify_mark_entry to an\ninotify_inode_mark_entry.  This works, but should use container_of instead\nfor future proofing.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "b4277d3dd5a7400c1ea7fd4e7d64bda8899f84f5",
      "tree": "6b309bd5d5362292dded47af3ecf739c509892b1",
      "parents": [
        "1a3aedbce416dfdbd5d5ac14a0edbcf21a62ee50"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:06 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:19 2010 -0400"
      },
      "message": "fsnotify: use fsnotify_create_event to allocate the q_overflow event\n\nCurrently fsnotify defines a static fsnotify event which is sent when a\ngroup overflows its allotted queue length.  This patch just allocates that\nevent from the event cache rather than defining it statically.  There is no\nknown reason that the current implementation is wrong, but this makes sure the\nevent is initialized and created like any other.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "40554c3dae83bd892b7fbfaa2ea9de739cbcf065",
      "tree": "7b9d4951734af9d819a900ff08f23c797a5c1b5c",
      "parents": [
        "9e1c74321d87a8b079f04d89e750b39a43365e1f"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:05 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:17 2010 -0400"
      },
      "message": "fsnotify: allow addition of duplicate fsnotify marks\n\nThis patch allows a task to add a second fsnotify mark to an inode for the\nsame group.  This mark will be added to the end of the inode\u0027s list and\nthis will never be found by the stand fsnotify_find_mark() function.   This\nis useful if a user wants to add a new mark before removing the old one.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "9e1c74321d87a8b079f04d89e750b39a43365e1f",
      "tree": "2513ce9eaa620b50c32be3dbe2763bcb692f99cb",
      "parents": [
        "a05fb6cc573130915380e00d182a4c6571cec6b2"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:05 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:17 2010 -0400"
      },
      "message": "fsnotify: duplicate fsnotify_mark_entry data between 2 marks\n\nSimple copy fsnotify information from one mark to another in preparation\nfor the second mark to replace the first.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "b7ba83715317007962ee318587de92f14e9c3aaa",
      "tree": "8964c554566ddcd0b73c266b95461dab1547aaf0",
      "parents": [
        "fc0f5ac8fe693d1b05f5a928cc48135d1c8b7f2e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 20:12:04 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:16 2010 -0400"
      },
      "message": "inotify: simplify the inotify idr handling\n\nThis patch moves all of the idr editing operations into their own idr\nfunctions.  It makes it easier to prove locking correctness and to to\nunderstand the code flow.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "da7ddd3296505b4cb46685e1bbf7d0075b3cd4f1",
      "tree": "45fcc62918193eba6e2aef40e1df0d2ef2e1df32",
      "parents": [
        "d15aa2cc641bd193596382357de917b32f1b40cb"
      ],
      "author": {
        "name": "Latchesar Ionkov",
        "email": "lucho@ionkov.net",
        "time": "Mon Jul 19 15:40:03 2010 -0500"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Tue Jul 27 14:52:04 2010 -0500"
      },
      "message": "9p: Pass the correct end of buffer to p9stat_read\n\nPass the correct end of the buffer to p9stat_read.\n\nSigned-off-by: Latchesar Ionkov \u003clucho@ionkov.net\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "d33002129eee4717a92e320b0b764a784bbcad3a",
      "tree": "0f519f2385d08e3b1702c89e1e01ff079a2e5846",
      "parents": [
        "521d0453547d6195d200176328aaec6c98a7a290"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jul 20 22:12:01 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 26 12:02:41 2010 -0700"
      },
      "message": "sysfs: allow creating symlinks from untagged to tagged directories\n\nSupporting symlinks from untagged to tagged directories is reasonable,\nand needed to support CONFIG_SYSFS_DEPRECATED.  So don\u0027t fail a prior\nallowing that case to work.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "521d0453547d6195d200176328aaec6c98a7a290",
      "tree": "8c0a1bc9920ec9178b8f035188338a3552c1b4b1",
      "parents": [
        "96d6523adffbab64f099561a021892125e0c672c"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jul 20 22:10:58 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 26 12:02:41 2010 -0700"
      },
      "message": "sysfs: sysfs_delete_link handle symlinks from untagged to tagged directories.\n\nThis happens for network devices when SYSFS_DEPRECATED is enabled.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "96d6523adffbab64f099561a021892125e0c672c",
      "tree": "0a6c3845c7832d4d3ad6bd120c95c3823dc780a2",
      "parents": [
        "dbbe4649d683577de1063dbd9f6da7d4b8de2fed"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jul 08 09:31:24 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 26 12:02:41 2010 -0700"
      },
      "message": "sysfs: Don\u0027t allow the creation of symlinks we can\u0027t remove\n\nRecently my tagged sysfs support revealed a flaw in the device core\nthat a few rare drivers are running into such that we don\u0027t always put\nnetwork devices in a class subdirectory named net/.\n\nSince we are not creating the class directory the network devices wind\nup in a non-tagged directory, but the symlinks to the network devices\nfrom /sys/class/net are in a tagged directory.  All of which works\nuntil we go to remove or rename the symlink.  When we remove or rename\na symlink we look in the namespace of the target of the symlink.\nSince the target of the symlink is in a non-tagged sysfs directory we\ndon\u0027t have a namespace to look in, and we fail to remove the symlink.\n\nDetect this problem up front and simply don\u0027t create symlinks we won\u0027t\nbe able to remove later.  This prevents symlink leakage and fails in\na much clearer and more understandable way.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Maciej W. Rozycki \u003cmacro@linux-mips.org\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "4c0c03ca54f72fdd5912516ad0a23ec5cf01bda7",
      "tree": "a05cfa65c298edb1f034923ff6eb76839b5bc0dd",
      "parents": [
        "cd5b8f8755a89a57fc8c408d284b8b613f090345"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jul 22 12:53:18 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 22 09:42:40 2010 -0700"
      },
      "message": "CIFS: Fix a malicious redirect problem in the DNS lookup code\n\nFix the security problem in the CIFS filesystem DNS lookup code in which a\nmalicious redirect could be installed by a random user by simply adding a\nresult record into one of their keyrings with add_key() and then invoking a\nCIFS CFS lookup [CVE-2010-2524].\n\nThis is done by creating an internal keyring specifically for the caching of\nDNS lookups.  To enforce the use of this keyring, the module init routine\ncreates a set of override credentials with the keyring installed as the thread\nkeyring and instructs request_key() to only install lookup result keys in that\nkeyring.\n\nThe override is then applied around the call to request_key().\n\nThis has some additional benefits when a kernel service uses this module to\nrequest a key:\n\n (1) The result keys are owned by root, not the user that caused the lookup.\n\n (2) The result keys don\u0027t pop up in the user\u0027s keyrings.\n\n (3) The result keys don\u0027t come out of the quota of the user that caused the\n     lookup.\n\nThe keyring can be viewed as root by doing cat /proc/keys:\n\n2a0ca6c3 I-----     1 perm 1f030000     0     0 keyring   .dns_resolver: 1/4\n\nIt can then be listed with \u0027keyctl list\u0027 by root.\n\n\t# keyctl list 0x2a0ca6c3\n\t1 key in keyring:\n\t726766307: --alswrv     0     0 dns_resolver: foo.bar.com\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-and-Tested-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Steve French \u003csmfrench@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a4ce96ac356e7024a7724ade9d18ba1bdf3c5c06",
      "tree": "e7699a6b2eb0f4f9e63c1bbeeb6f1471eec80dab",
      "parents": [
        "f4b23cc2d5dc78ef5acbc529eb1219cc41eb5b96"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 21 09:25:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 21 09:25:42 2010 -0700"
      },
      "message": "Fix up trivial spelling errors (\u0027taht\u0027 -\u003e \u0027that\u0027)\n\nPointed out by Lucas who found the new one in a comment in\nsetup_percpu.c. And then I fixed the others that I grepped\nfor.\n\nReported-by: Lucas \u003ccanolucas@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0959371b4aaddb9b986019d5cfef93f9801d0ff",
      "tree": "7df35d0e8dc8de31fa19aa0f8f3fad78b2afea11",
      "parents": [
        "83ba37105e262d374b9092a572b8ee6e30aa9f70",
        "e979cf50395e24c4bdd489f60e2d5dd5ae66d255"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 20 16:27:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 20 16:27:58 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: do not include cap/dentry releases in replayed messages\n  ceph: reuse request message when replaying against recovering mds\n  ceph: fix creation of ipv6 sockets\n  ceph: fix parsing of ipv6 addresses\n  ceph: fix printing of ipv6 addrs\n  ceph: add kfree() to error path\n  ceph: fix leak of mon authorizer\n  ceph: fix message revocation\n"
    },
    {
      "commit": "620d0be88188cd3dc79db3f5eab1420d6f97c70c",
      "tree": "99dc63926b972288b176be6ed3663e6390289ce5",
      "parents": [
        "ee1039307a8a64b038f9b8cdc6f9120ecd9dfe9b",
        "16fd5367370099b59d96e30bb7d9de8d419659f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 19 20:18:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 19 20:18:24 2010 -0700"
      },
      "message": "Merge branch \u0027shrinker\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev\n\n* \u0027shrinker\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev:\n  xfs: track AGs with reclaimable inodes in per-ag radix tree\n  xfs: convert inode shrinker to per-filesystem contexts\n  mm: add context argument to shrinker callback\n"
    },
    {
      "commit": "ee1039307a8a64b038f9b8cdc6f9120ecd9dfe9b",
      "tree": "05d4bb91752fdb1652a93bcd2ad4514cc697c2df",
      "parents": [
        "d0c6f6258478e1dba532bf7c28e2cd6e1047d3a4",
        "2ebc3464781ad24474abcbd2274e6254689853b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 19 19:33:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 19 19:33:02 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: fix checks in BTRFS_IOC_CLONE_RANGE\n  Btrfs: fix CLONE ioctl destination file size expansion to block boundary\n  Btrfs: fix split_leaf double split corner case\n"
    },
    {
      "commit": "16fd5367370099b59d96e30bb7d9de8d419659f2",
      "tree": "a9c12adb84f363ac48a0846de7a9464b1631e464",
      "parents": [
        "70e60ce71516c3a9e882edb70a09f696a05961db"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Jul 20 09:43:39 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Jul 20 09:43:39 2010 +1000"
      },
      "message": "xfs: track AGs with reclaimable inodes in per-ag radix tree\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d16348\n\nWhen the filesystem grows to a large number of allocation groups,\nthe summing of recalimable inodes gets expensive. In many cases,\nmost AGs won\u0027t have any reclaimable inodes and so we are wasting CPU\ntime aggregating over these AGs. This is particularly important for\nthe inode shrinker that gets called frequently under memory\npressure.\n\nTo avoid the overhead, track AGs with reclaimable inodes in the\nper-ag radix tree so that we can find all the AGs with reclaimable\ninodes via a simple gang tag lookup. This involves setting the tag\nwhen the first reclaimable inode is tracked in the AG, and removing\nthe tag when the last reclaimable inode is removed from the tree.\nThen the summation process becomes a loop walking the radix tree\nsumming AGs with the reclaim tag set.\n\nThis significantly reduces the overhead of scanning - a 6400 AG\nfilesystea now only uses about 25% of a cpu in kswapd while slab\nreclaim progresses instead of being permanently stuck at 100% CPU\nand making little progress. Clean filesystems filesystems will see\nno overhead and the overhead only increases linearly with the number\nof dirty AGs.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "70e60ce71516c3a9e882edb70a09f696a05961db",
      "tree": "324a400f2d21d071f6c462edbb6efa789125f6f1",
      "parents": [
        "7f8275d0d660c146de6ee3017e1e2e594c49e820"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Jul 20 08:07:02 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Jul 20 08:07:02 2010 +1000"
      },
      "message": "xfs: convert inode shrinker to per-filesystem contexts\n\nNow the shrinker passes us a context, wire up a shrinker context per\nfilesystem. This allows us to remove the global mount list and the\nlocking problems that introduced. It also means that a shrinker call\ndoes not need to traverse clean filesystems before finding a\nfilesystem with reclaimable inodes.  This significantly reduces\nscanning overhead when lots of filesystems are present.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "2ebc3464781ad24474abcbd2274e6254689853b5",
      "tree": "3d58dfcc14948672c0aac1636cdd57cbe46a135d",
      "parents": [
        "b5384d48f4e74edec3ca1887cb65e378a72af9a1"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "dan.j.rosenberg@gmail.com",
        "time": "Mon Jul 19 16:58:20 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jul 19 16:58:20 2010 -0400"
      },
      "message": "Btrfs: fix checks in BTRFS_IOC_CLONE_RANGE\n\n1.  The BTRFS_IOC_CLONE and BTRFS_IOC_CLONE_RANGE ioctls should check\nwhether the donor file is append-only before writing to it.\n\n2.  The BTRFS_IOC_CLONE_RANGE ioctl appears to have an integer\noverflow that allows a user to specify an out-of-bounds range to copy\nfrom the source file (if off + len wraps around).  I haven\u0027t been able\nto successfully exploit this, but I\u0027d imagine that a clever attacker\ncould use this to read things he shouldn\u0027t.  Even if it\u0027s not\nexploitable, it couldn\u0027t hurt to be safe.\n\nSigned-off-by: Dan Rosenberg \u003cdan.j.rosenberg@gmail.com\u003e\ncc: stable@kernel.org\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b5384d48f4e74edec3ca1887cb65e378a72af9a1",
      "tree": "cf41ab7d6a2c2606abe465c8229f002675696de0",
      "parents": [
        "99d8f83c98930100cd70437b0c81a935e7a14b0b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Jun 12 22:31:14 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jul 19 16:15:06 2010 -0400"
      },
      "message": "Btrfs: fix CLONE ioctl destination file size expansion to block boundary\n\nThe CLONE and CLONE_RANGE ioctls round up the range of extents being\ncloned to the block size when the range to clone extends to the end of file\n(this is always the case with CLONE).  It was then using that offset when\nextending the destination file\u0027s i_size.  Fix this by not setting i_size\nbeyond the originally requested ending offset.\n\nThis bug was introduced by a22285a6 (2.6.35-rc1).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "99d8f83c98930100cd70437b0c81a935e7a14b0b",
      "tree": "db4ea3e51c5cc33b903c498368dc7b14e2a07125",
      "parents": [
        "6f902af400b2499c80865c62a06fbbd15cf804fd"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 07 10:51:48 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jul 19 16:14:50 2010 -0400"
      },
      "message": "Btrfs: fix split_leaf double split corner case\n\nsplit_leaf was not properly balancing leaves when it was forced to\nsplit a leaf twice.  This commit adds an extra push left and right\nbefore forcing the double split in hopes of getting the slot where\nwe want to insert at either the start or end of the leaf.\n\nIf the extra pushes do work, then we are able to avoid splitting twice\nand we keep the tree properly balanced.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "cffab6bc5511cd6f67a60bf16b62de4267b68c4c",
      "tree": "edcc2a5ed2ef5865e98c8fa01bcb866a579edf89",
      "parents": [
        "a9f7f2e74ae0e6a801a2433dc8e9124d73da0cb4"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "peter.oberparleiter@de.ibm.com",
        "time": "Mon Jul 19 09:22:35 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Jul 19 09:22:50 2010 +0200"
      },
      "message": "[S390] dasd: use correct label location for diag fba disks\n\nPartition boundary calculation fails for DASD FBA disks under the\nfollowing conditions:\n- disk is formatted with CMS FORMAT with a blocksize of more than\n  512 bytes\n- all of the disk is reserved to a single CMS file using CMS RESERVE\n- the disk is accessed using the DIAG mode of the DASD driver\n\nUnder these circumstances, the partition detection code tries to\nread the CMS label block containing partition-relevant information\nfrom logical block offset 1, while it is in fact located at physical\nblock offset 1.\n\nFix this problem by using the correct CMS label block location\ndepending on the device type as determined by the DASD SENSE ID\ninformation.\n\nSigned-off-by: Peter Oberparleiter \u003cpeter.oberparleiter@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "7f8275d0d660c146de6ee3017e1e2e594c49e820",
      "tree": "884db927118b44102750b5168ee36ef4b8b5cb4e",
      "parents": [
        "d0c6f6258478e1dba532bf7c28e2cd6e1047d3a4"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Jul 19 14:56:17 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jul 19 14:56:17 2010 +1000"
      },
      "message": "mm: add context argument to shrinker callback\n\nThe current shrinker implementation requires the registered callback\nto have global state to work from. This makes it difficult to shrink\ncaches that are not global (e.g. per-filesystem caches). Pass the shrinker\nstructure to the callback so that users can embed the shrinker structure\nin the context the shrinker needs to operate on and get back to it in the\ncallback via container_of().\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "bea9a6d239cb2aa2ced4dcb0a05e1827ce61fa3d",
      "tree": "39f23bd918c4dcda4359ebd9b8f188b9cb5e25b1",
      "parents": [
        "cd9f040df6ce46573760a507cb88192d05d27d86",
        "5453258d532e72731b0829e4fefd36dd611a2fff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 18 10:09:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 18 10:09:25 2010 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:\n  ocfs2: Silence gcc warning in ocfs2_write_zero_page().\n  jbd2/ocfs2: Fix block checksumming when a buffer is used in several transactions\n  ocfs2/dlm: Remove BUG_ON from migration in the rare case of a down node\n  ocfs2: Don\u0027t duplicate pages past i_size during CoW.\n  ocfs2: tighten up strlen() checking\n  ocfs2: Make xattr reflink work with new local alloc reservation.\n  ocfs2: make xattr extension work with new local alloc reservation.\n  ocfs2: Remove the redundant cpu_to_le64.\n  ocfs2/dlm: don\u0027t access beyond bitmap size\n  ocfs2: No need to zero pages past i_size.\n  ocfs2: Zero the tail cluster when extending past i_size.\n  ocfs2: When zero extending, do it by page.\n  ocfs2: Limit default local alloc size within bitmap range.\n  ocfs2: Move orphan scan work to ocfs2_wq.\n  fs/ocfs2/dlm: Add missing spin_unlock\n"
    },
    {
      "commit": "5453258d532e72731b0829e4fefd36dd611a2fff",
      "tree": "6caa67ad70df5cd266ff42f458d6994b689898a5",
      "parents": [
        "13ceef099edd2b70c5a6f3a9ef5d6d97cda2e096"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Jul 16 13:32:33 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Jul 16 13:33:39 2010 -0700"
      },
      "message": "ocfs2: Silence gcc warning in ocfs2_write_zero_page().\n\nocfs2_write_zero_page() has a loop that won\u0027t ever be skipped, but gcc\ndoesn\u0027t know that.  Set ret\u003d0 just to make gcc happy.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "e979cf50395e24c4bdd489f60e2d5dd5ae66d255",
      "tree": "5d26b26b4b7eb9bed0812800ea4d2d5704c5eaa3",
      "parents": [
        "01a92f174f8a3b99dbb5e02c86e7ee1e576737af"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 15 14:58:39 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 16 10:30:18 2010 -0700"
      },
      "message": "ceph: do not include cap/dentry releases in replayed messages\n\nStrip the cap and dentry releases from replayed messages.  They can\ncause the shared state to get out of sync because they were generated\n(with the request message) earlier, and no longer reflect the current\nclient state.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "01a92f174f8a3b99dbb5e02c86e7ee1e576737af",
      "tree": "ad478397d935b4b09340408cbacf8c6d35dee9d1",
      "parents": [
        "f91d3471ccf1ca9a795f46c94b1ded8dd219940c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 15 13:24:32 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 16 10:30:17 2010 -0700"
      },
      "message": "ceph: reuse request message when replaying against recovering mds\n\nReplayed rename operations (after an mds failure/recovery) were broken\nbecause the request paths were regenerated from the dentry names, which\nget mangled when d_move() is called.\n\nInstead, resend the previous request message when replaying completed\noperations.  Just make sure the REPLAY flag is set and the target ino is\nfilled in.\n\nThis fixes problems with workloads doing renames when the MDS restarts,\nwhere the rename operation appears to succeed, but on mds restart then\nfails (leading to client confusion, app breakage, etc.).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "13ceef099edd2b70c5a6f3a9ef5d6d97cda2e096",
      "tree": "5d65c397e9e85abe11a6fb0ebf3a69e8a4e91e0d",
      "parents": [
        "a39953dd95ff10e311083d94f4f95c348cb22464"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 14 07:56:33 2010 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 15 15:17:47 2010 -0700"
      },
      "message": "jbd2/ocfs2: Fix block checksumming when a buffer is used in several transactions\n\nOCFS2 uses t_commit trigger to compute and store checksum of the just\ncommitted blocks. When a buffer has b_frozen_data, checksum is computed\nfor it instead of b_data but this can result in an old checksum being\nwritten to the filesystem in the following scenario:\n\n1) transaction1 is opened\n2) handle1 is opened\n3) journal_access(handle1, bh)\n    - This sets jh-\u003eb_transaction to transaction1\n4) modify(bh)\n5) journal_dirty(handle1, bh)\n6) handle1 is closed\n7) start committing transaction1, opening transaction2\n8) handle2 is opened\n9) journal_access(handle2, bh)\n    - This copies off b_frozen_data to make it safe for transaction1 to commit.\n      jh-\u003eb_next_transaction is set to transaction2.\n10) jbd2_journal_write_metadata() checksums b_frozen_data\n11) the journal correctly writes b_frozen_data to the disk journal\n12) handle2 is closed\n    - There was no dirty call for the bh on handle2, so it is never queued for\n      any more journal operation\n13) Checkpointing finally happens, and it just spools the bh via normal buffer\nwriteback.  This will write b_data, which was never triggered on and thus\ncontains a wrong (old) checksum.\n\nThis patch fixes the problem by calling the trigger at the moment data is\nfrozen for journal commit - i.e., either when b_frozen_data is created by\ndo_get_write_access or just before we write a buffer to the log if\nb_frozen_data does not exist. We also rename the trigger to t_frozen as\nthat better describes when it is called.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "a39953dd95ff10e311083d94f4f95c348cb22464",
      "tree": "c905adf070262a6782d7a1b664495c36fbe95fab",
      "parents": [
        "f5e27b6ddfbafdd9c9c2f06bbf28af12581409bc"
      ],
      "author": {
        "name": "Wengang Wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Wed Jul 14 22:38:21 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 15 10:56:30 2010 -0700"
      },
      "message": "ocfs2/dlm: Remove BUG_ON from migration in the rare case of a down node\n\nFor migration, we are waiting for DLM_LOCK_RES_MIGRATING flag to be set\nbefore sending DLM_MIG_LOCKRES_MSG message to the target. We are using\ndlm_migration_can_proceed() for that purpose.  However, if the node is\ndown, dlm_migration_can_proceed() will also return \"go ahead\".  In this\nrare case, the DLM_LOCK_RES_MIGRATING flag might not be set yet. Remove\nthe BUG_ON() that trips over this condition.\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "f5e27b6ddfbafdd9c9c2f06bbf28af12581409bc",
      "tree": "b55eb9842a3ee2cfebb6a24ab2ee4ffbd597daee",
      "parents": [
        "e372357ba55ae89307af15cd680467d8f0db4f01"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Jul 14 11:19:32 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 15 10:54:28 2010 -0700"
      },
      "message": "ocfs2: Don\u0027t duplicate pages past i_size during CoW.\n\nDuring CoW, the pages after i_size don\u0027t contain valid data, so there\u0027s\nno need to read and duplicate them.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "728a756b8fcd22d80e2dbba8117a8a3aafd3f203",
      "tree": "82662dc27aaf1e277df977e57d778939be8ddb4a",
      "parents": [
        "8b4216018bdbfbb1b76150d202b15ee68c38e991"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jul 14 18:12:26 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 15 09:07:56 2010 +0100"
      },
      "message": "GFS2: rename causes kernel Oops\n\nThis patch fixes a kernel Oops in the GFS2 rename code.\n\nThe problem was in the way the gfs2 directory code was trying\nto re-use sentinel directory entries.\n\nIn the failing case, gfs2\u0027s rename function was renaming a\nfile to another name that had the same non-trivial length.\nThe file being renamed happened to be the first directory\nentry on the leaf block.\n\nFirst, the rename code (gfs2_rename in ops_inode.c) found the\noriginal directory entry and decided it could do its job by\nsimply replacing the directory entry with another.  Therefore\nit determined correctly that no block allocations were needed.\n\nNext, the rename code deleted the old directory entry prior to\nreplacing it with the new name.  Therefore, the soon-to-be\nreplaced directory entry was temporarily made into a directory\nentry \"sentinel\" or a place holder at the start of a leaf block.\n\nLastly, it went to re-add the replacement directory entry in\nthat leaf block.  However, when gfs2_dirent_find_space was\nlooking for space in the leaf block, it used the wrong value\nfor the sentinel.  That threw off its calculations so later\nit decides it can\u0027t really re-use the sentinel and therefore\nmust allocate a new leaf block.  But because it previously decided\nto re-use the directory entry, it didn\u0027t waste the time to\ngrab a new block allocation for the inode.  Therefore, the\ninode\u0027s i_alloc pointer was still NULL and it crashes trying to\nreference it.\n\nIn the case of sentinel directory entries, the entire dirent is\nreused, not just the \"free space\" portion of it, and therefore\nthe function gfs2_dirent_find_space should use the value 0\nrather than GFS2_DIRENT_SIZE(0) for the actual dirent size.\n\nFixing this calculation enables the reproducer programs to work\nproperly.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8b4216018bdbfbb1b76150d202b15ee68c38e991",
      "tree": "c13bd1db68ca135b6362ee8e67e558fe87bfb93c",
      "parents": [
        "b1becbdee776b447f203aa8da9a40488d5a75e1d"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Sun Jul 04 01:33:24 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 15 09:07:16 2010 +0100"
      },
      "message": "GFS2: BUG in gfs2_adjust_quota\n\nHighMem pages on i686 do not get mapped to the buffer_heads and this was\ncausing a NULL pointer dereference when we were trying to memset page buffers\nto zero.\nWe now use zero_user() that kmaps the page and directly manipulates page data.\nThis patch also fixes a boundary condition that was incorrect.\n\nSigned-off-by: Abhi Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b1becbdee776b447f203aa8da9a40488d5a75e1d",
      "tree": "1bf927adf4bf63cc39961cad2476774ab88b47ee",
      "parents": [
        "b7dc2df5725fe7355fd76000ead7e39728e1b8a9"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Jun 17 16:45:37 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 15 09:06:25 2010 +0100"
      },
      "message": "GFS2: Fix kernel NULL pointer dereference by dlm_astd\n\nThis patch fixes a problem in an error path when looking\nup dinodes.  There are two sister-functions, gfs2_inode_lookup\nand gfs2_process_unlinked_inode.  Both functions acquire and\nhold the i_iopen glock for the dinode being looked up. The last\nthing they try to do is hold the i_gl glock for the dinode.\nIf that glock fails for some reason, the error path was\nincorrectly calling gfs2_glock_put for the i_iopen glock twice.\nThis resulted in the glock being prematurely freed.  The\n\"minimum hold time\" usually kept the glock in memory, but the\nlock interface to dlm (aka lock_dlm) freed its memory for the\nglock.  In some circumstances, it would cause dlm\u0027s dlm_astd daemon\nto try to call the bast function for the freed lock_dlm memory,\nwhich resulted in a NULL pointer dereference.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b7dc2df5725fe7355fd76000ead7e39728e1b8a9",
      "tree": "4057c89535f6204d95f28950809fcb4b1c25dfa4",
      "parents": [
        "a8bf2bc212e129dd59a8b06cdbc15079cc3bd876"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jun 23 11:44:47 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 15 09:05:57 2010 +0100"
      },
      "message": "GFS2: recovery stuck on transaction lock\n\nThis patch fixes bugzilla bug #590878: GFS2: recovery stuck on\ntransaction lock.  We set the frozen flag on the glock when we receive\na completion that cannot be delivered due to blocked locks. At that\npoint we check to see whether the first waiting holder has the noexp\nflag set. If the noexp lock is queued later, then we need to unfreeze\nthe glock at that point in time, namely, in the glock work function.\n\nThis patch was originally written by Steve Whitehouse, but since\nhe\u0027s on holiday, I\u0027m submitting it.  It\u0027s been well tested with a\ncomplex recovery test called revolver.\n\nSigned-off-by: Steve Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "a8bf2bc212e129dd59a8b06cdbc15079cc3bd876",
      "tree": "b0a298e7f2534de52b9506fa1d6040e98e263a87",
      "parents": [
        "2f7989efd4398d92b8adffce2e07dd043a0895fe"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Jun 24 19:15:09 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 15 09:05:17 2010 +0100"
      },
      "message": "GFS2: O_TRUNC not working on stuffed files across cluster\n\nThis patch replaces a statement that got dropped out by accident.\nWithout the patch, truncates on stuffed (very small) files cause\nthose files to have an unpredictable size.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e372357ba55ae89307af15cd680467d8f0db4f01",
      "tree": "ad5220668336431e815d0a933ffc9faed6a4a408",
      "parents": [
        "121a39bb00b421211f4f590c440a8f636d3ae807"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Jul 10 16:33:36 2010 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jul 12 13:57:53 2010 -0700"
      },
      "message": "ocfs2: tighten up strlen() checking\n\nThis function is only called from one place and it\u0027s like this:\n\tdlm_register_domain(conn-\u003ecc_name, dlm_key, \u0026fs_version);\n\nThe \"conn-\u003ecc_name\" is 64 characters long.  If strlen(conn-\u003ecc_name)\nwere equal to O2NM_MAX_NAME_LEN (64) that would be a bug because\nstrlen() doesn\u0027t count the NULL character.\n\nIn fact, if you look how O2NM_MAX_NAME_LEN is used, it mostly describes\n64 character buffers.  The only exception is nd_name from struct\no2nm_node.\n\nAnyway I looked into it and in this case the domain string comes from\nosb-\u003euuid_str in ocfs2_setup_osb_uuid().  That\u0027s 32 characters and NULL\nwhich easily fits into O2NM_MAX_NAME_LEN.  This patch doesn\u0027t change how\nthe code works, but I think it makes the code a little cleaner.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "121a39bb00b421211f4f590c440a8f636d3ae807",
      "tree": "18219c168c7b35e9d17a283f1217eb802f0d3d11",
      "parents": [
        "a78f9f4668949a6588b8872f162e86685c63d023"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Jul 09 14:53:12 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jul 12 13:57:50 2010 -0700"
      },
      "message": "ocfs2: Make xattr reflink work with new local alloc reservation.\n\nThe new reservation code in local alloc has add the limitation\nthat the caller should handle the case that the local alloc\ndoesn\u0027t give use enough contiguous clusters. It make the old\nxattr reflink code broken.\n\nSo this patch udpate the xattr reflink code so that it can\nhandle the case that local alloc give us one cluster at a time.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "a78f9f4668949a6588b8872f162e86685c63d023",
      "tree": "e4757b666f2c51f3e2f596a921d4f9fe13c2dbc1",
      "parents": [
        "0a463b74e7e6856b24e613de2b85237c6e11890b"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Jul 09 14:53:11 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jul 12 13:57:24 2010 -0700"
      },
      "message": "ocfs2: make xattr extension work with new local alloc reservation.\n\nThe old ocfs2_xattr_extent_allocation is too optimistic about\nthe clusters we can get. So actually if the file system is\ntoo fragmented, ocfs2_add_clusters_in_btree will return us\nwith EGAIN and we need to allocate clusters once again.\n\nSo this patch change it to a while loop so that we can allocate\nclusters until we reach clusters_to_add.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "0a463b74e7e6856b24e613de2b85237c6e11890b",
      "tree": "ad64c3fca8ee02b71a1ae44886abcc3057b80452",
      "parents": [
        "f471c9df922a80ca9af1d9a490b4aab3f990ec19"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Jul 08 11:11:11 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jul 12 13:56:18 2010 -0700"
      },
      "message": "ocfs2: Remove the redundant cpu_to_le64.\n\nIn ocfs2_block_group_alloc, we set c_blkno by bg-\u003ebg_blkno.\nBut actually bg-\u003ebg_blkno is already changed to little endian\nin ocfs2_block_group_fill. So remove the extra cpu_to_le64.\n\nReported-by: Marcos Matsunaga \u003cMarcos.Matsunaga@oracle.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "f471c9df922a80ca9af1d9a490b4aab3f990ec19",
      "tree": "554116c78b9345c7bc0741bbc6be1fd7d5d390d4",
      "parents": [
        "693c241a5f6aa01417f5f4caf9f82e60e316398d"
      ],
      "author": {
        "name": "Wengang Wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Wed Jun 30 20:23:30 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jul 12 13:56:14 2010 -0700"
      },
      "message": "ocfs2/dlm: don\u0027t access beyond bitmap size\n\ndlm-\u003erecovery_map is defined as\n\tunsigned long recovery_map[BITS_TO_LONGS(O2NM_MAX_NODES)];\n\nWe should treat O2NM_MAX_NODES as the bit map size in bits.\nThis patches fixes a bit operation that takes O2NM_MAX_NODES + 1 as bitmap size.\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "693c241a5f6aa01417f5f4caf9f82e60e316398d",
      "tree": "4d3509db621c7af934332c433e62b49bb548a60b",
      "parents": [
        "5693486bad2bc2ac585a2c24f7e2f3964b478df9"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Jul 02 17:20:27 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jul 12 13:55:27 2010 -0700"
      },
      "message": "ocfs2: No need to zero pages past i_size.\n\nWhen ocfs2 fills a hole, it does so by allocating clusters.  When a\ncluster is larger than the write, ocfs2 must zero the portions of the\ncluster outside of the write.  If the clustersize is smaller than a\npagecache page, this is handled by the normal pagecache mechanisms, but\nwhen the clustersize is larger than a page, ocfs2\u0027s write code will zero\nthe pages adjacent to the write.  This makes sure the entire cluster is\nzeroed correctly.\n\nCurrently ocfs2 behaves exactly the same when writing past i_size.\nHowever, this means ocfs2 is writing zeroed pages for portions of a new\ncluster that are beyond i_size.  The page writeback code isn\u0027t expecting\nthis.  It treats all pages past the one containing i_size as left behind\ndue to a previous truncate operation.\n\nThankfully, ocfs2 calculates the number of pages it will be working on\nup front.  The rest of the write code merely honors the original\ncalculation.  We can simply trim the number of pages to only cover the\nactual file data.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "f91d3471ccf1ca9a795f46c94b1ded8dd219940c",
      "tree": "7a8d496d69ad9dd7a206183d11f5719b7161e6a7",
      "parents": [
        "39139f64e14684cf2370770deb79d929d27cfd9b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 01 15:18:31 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 09 15:00:20 2010 -0700"
      },
      "message": "ceph: fix creation of ipv6 sockets\n\nUse the address family from the peer address instead of assuming IPv4.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "39139f64e14684cf2370770deb79d929d27cfd9b",
      "tree": "7ea80cd49b3afd0816eacf7fbf191647c44d5661",
      "parents": [
        "d06dbaf6c2c7187938f3f6745d9e4938a2d0ec47"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 09:54:52 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 09 15:00:18 2010 -0700"
      },
      "message": "ceph: fix parsing of ipv6 addresses\n\nCheck for brackets around the ipv6 address to avoid ambiguity with the port\nnumber.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d06dbaf6c2c7187938f3f6745d9e4938a2d0ec47",
      "tree": "472cfd72bcc15d7a7323a58a8698bab6ec7f33f1",
      "parents": [
        "b0bbb0be8f7fbf6d366b359e034c78a96c4e274d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 10:47:16 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 16:49:53 2010 -0700"
      },
      "message": "ceph: fix printing of ipv6 addrs\n\nThe buffer was too small.  Make it bigger, use snprintf(), put brackets\naround the ipv6 address to avoid mixing it up with the :port, and use the\never-so-handy %pI[46] formats.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5693486bad2bc2ac585a2c24f7e2f3964b478df9",
      "tree": "03d61d72c1b73bbf0b049bf0328f8e0c69f35a43",
      "parents": [
        "a4bfb4cf11fd2211b788af59dc8a8b4394bca227"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 01 15:13:31 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 08 13:25:35 2010 -0700"
      },
      "message": "ocfs2: Zero the tail cluster when extending past i_size.\n\nocfs2\u0027s allocation unit is the cluster.  This can be larger than a block\nor even a memory page.  This means that a file may have many blocks in\nits last extent that are beyond the block containing i_size.  There also\nmay be more unwritten extents after that.\n\nWhen ocfs2 grows a file, it zeros the entire cluster in order to ensure\nfuture i_size growth will see cleared blocks.  Unfortunately,\nblock_write_full_page() drops the pages past i_size.  This means that\nocfs2 is actually leaking garbage data into the tail end of that last\ncluster.  This is a bug.\n\nWe adjust ocfs2_write_begin_nolock() and ocfs2_extend_file() to detect\nwhen a write or truncate is past i_size.  They will use\nocfs2_zero_extend() to ensure the data is properly zeroed.\n\nOlder versions of ocfs2_zero_extend() simply zeroed every block between\ni_size and the zeroing position.  This presumes three things:\n\n1) There is allocation for all of these blocks.\n2) The extents are not unwritten.\n3) The extents are not refcounted.\n\n(1) and (2) hold true for non-sparse filesystems, which used to be the\nonly users of ocfs2_zero_extend().  (3) is another bug.\n\nSince we\u0027re now using ocfs2_zero_extend() for sparse filesystems as\nwell, we teach ocfs2_zero_extend() to check every extent between\ni_size and the zeroing position.  If the extent is unwritten, it is\nignored.  If it is refcounted, it is CoWed.  Then it is zeroed.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "a4bfb4cf11fd2211b788af59dc8a8b4394bca227",
      "tree": "c06f45ac5a992575a0e47dbc80bdf187db030cca",
      "parents": [
        "1739da40543ed2129050ccfa8a076a851ab6ed00"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jul 06 14:36:06 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 08 13:24:49 2010 -0700"
      },
      "message": "ocfs2: When zero extending, do it by page.\n\nocfs2_zero_extend() does its zeroing block by block, but it calls a\nfunction named ocfs2_write_zero_page().  Let\u0027s have\nocfs2_write_zero_page() handle the page level.  From\nocfs2_zero_extend()\u0027s perspective, it is now page-at-a-time.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "c77e9e68269bf50573ce130b5d95ff6e539dbcf8",
      "tree": "99edc1b070717e18f5958f934bc3921cfed2ce1f",
      "parents": [
        "31016e9941be85e8c487b1f3c45d253eda356715",
        "83ba7b071f30f7c01f72518ad72d5cd203c27502"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 08 08:06:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 08 08:06:40 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  writeback: simplify the write back thread queue\n  writeback: split writeback_inodes_wb\n  writeback: remove writeback_inodes_wbc\n  fs-writeback: fix kernel-doc warnings\n  splice: check f_mode for seekable file\n  splice: direct_splice_actor() should not use pos in sd\n"
    },
    {
      "commit": "b0bbb0be8f7fbf6d366b359e034c78a96c4e274d",
      "tree": "cc3f2c6c33a49eae3880165def5a13e1af23b0ed",
      "parents": [
        "22b1de06c9fe128ca3de72560c3e8c2cabf2927a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Jul 08 14:49:38 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 08:03:24 2010 -0700"
      },
      "message": "ceph: add kfree() to error path\n\nWe leak a \"pi\" on this error path.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1cc9629402b1eba0d4e21b2cc43eec9bd737f9bd",
      "tree": "6bd52203d0d071acd3311d5093b4aa61c313faad",
      "parents": [
        "8b8ce8810b092cef35e15af6577ad569f6145c0a",
        "153a10939ea6e42e9c0115b0645060d0d7bb4697"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 06 17:15:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 06 17:15:15 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: fix crush device \u0027out\u0027 threshold to 1.0, not 0.1\n  ceph: fix caps usage accounting for import (non-reserved) case\n  ceph: only release clean, unused caps with mds requests\n  ceph: fix crush CHOOSE_LEAF when type is already a leaf\n  ceph: fix crush recursion\n  ceph: fix caps debugfs entry\n  ceph: delay umount until all mds requests drop inode+dentry refs\n  ceph: handle splice_dentry/d_materialize_unique error in readdir_prepopulate\n  ceph: fix crush map update decoding\n  ceph: fix message memory leak, uninitialized variable\n  ceph: fix map handler error path\n  ceph: some endianity fixes\n"
    },
    {
      "commit": "83ba7b071f30f7c01f72518ad72d5cd203c27502",
      "tree": "4737320dcce72cfff4d87d835e4f78428eca7ef5",
      "parents": [
        "edadfb10ba35da7253541e4155aa92eff758ebe6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jul 06 08:59:53 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jul 06 08:59:53 2010 +0200"
      },
      "message": "writeback: simplify the write back thread queue\n\nFirst remove items from work_list as soon as we start working on them.  This\nmeans we don\u0027t have to track any pending or visited state and can get\nrid of all the RCU magic freeing the work items - we can simply free\nthem once the operation has finished.  Second use a real completion for\ntracking synchronous requests - if the caller sets the completion pointer\nwe complete it, otherwise use it as a boolean indicator that we can free\nthe work item directly.  Third unify struct wb_writeback_args and struct\nbdi_work into a single data structure, wb_writeback_work.  Previous we\nset all parameters into a struct wb_writeback_args, copied it into\nstruct bdi_work, copied it again on the stack to use it there.  Instead\nof just allocate one structure dynamically or on the stack and use it\nall the way through the stack.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "edadfb10ba35da7253541e4155aa92eff758ebe6",
      "tree": "a3c676f7b2c9b301d7e1948febeaba76ea1c5850",
      "parents": [
        "9c3a8ee8a1d72c5c0d7fbdf426d80e270ddfa54c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 10 12:07:54 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jul 06 08:54:08 2010 +0200"
      },
      "message": "writeback: split writeback_inodes_wb\n\nThe case where we have a superblock doesn\u0027t require a loop here as we scan\nover all inodes in writeback_sb_inodes. Split it out into a separate helper\nto make the code simpler.  This also allows to get rid of the sb member in\nstruct writeback_control, which was rather out of place there.\n\nAlso update the comments in writeback_sb_inodes that explain the handling\nof inodes from wrong superblocks.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "9c3a8ee8a1d72c5c0d7fbdf426d80e270ddfa54c",
      "tree": "fa131760a61f66afeede852622ede0d716965489",
      "parents": [
        "06d738fa9155ff16dba3d7e501ba4581d01a98cb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 10 12:07:27 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jul 06 08:54:03 2010 +0200"
      },
      "message": "writeback: remove writeback_inodes_wbc\n\nThis was just an odd wrapper around writeback_inodes_wb.  Removing this\nalso allows to get rid of the bdi member of struct writeback_control\nwhich was rather out of place there.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "22b1de06c9fe128ca3de72560c3e8c2cabf2927a",
      "tree": "e8f711819f4430e8da584b3bbaba0bd6227d7edd",
      "parents": [
        "ed98adad3d87594c55347824e85137d1829c9e70"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 15:36:49 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 15:36:49 2010 -0700"
      },
      "message": "ceph: fix leak of mon authorizer\n\nFix leak of a struct ceph_buffer on umount.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ed98adad3d87594c55347824e85137d1829c9e70",
      "tree": "b22414183f7eff1ac1ba606a3ebf2357f0876b4c",
      "parents": [
        "153a10939ea6e42e9c0115b0645060d0d7bb4697"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 12:15:14 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 12:16:23 2010 -0700"
      },
      "message": "ceph: fix message revocation\n\nA message can be on a queue (pending or sent), or out_msg (sending), or\nboth.  We were assuming that if it\u0027s not on a queue it couldn\u0027t be out_msg,\nbut that was false in the case of lossy connections like the OSD.  Fix\nceph_con_revoke() to treat these cases independently.  Also, fix the\nout_kvec_is_message check to only trigger if we are currently sending\n_this_ message.\n\nThis fixes a GPF in tcp_sendpage, triggered by OSD restarts.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "153a10939ea6e42e9c0115b0645060d0d7bb4697",
      "tree": "6d6362aebbe5e0450c0bb1eed27cdb4cee420f2a",
      "parents": [
        "443b3760a06860187f135c1ecd56c2c7d4ad1022"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 09:44:17 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 09:44:17 2010 -0700"
      },
      "message": "ceph: fix crush device \u0027out\u0027 threshold to 1.0, not 0.1\n\nFix a typo that made any OSD weighted between 0.1 and 1.0 effectively\nweighted as 1.0 (fully in).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e3668dd83ba5958429984286efbc3055be5344c4",
      "tree": "0614463a7bf4a6514db31556edd6848ed7a6fd7a",
      "parents": [
        "744c557892d3bfb575287ee95947f5c0b9a0458f",
        "7b6259e7a83647948fa33a736cc832310c8d85aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 04 20:13:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 04 20:13:31 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: remove block number from inode lookup code\n  xfs: rename XFS_IGET_BULKSTAT to XFS_IGET_UNTRUSTED\n  xfs: validate untrusted inode numbers during lookup\n  xfs: always use iget in bulkstat\n  xfs: prevent swapext from operating on write-only files\n"
    },
    {
      "commit": "06d738fa9155ff16dba3d7e501ba4581d01a98cb",
      "tree": "ea1e3a1632207c9b0ad7fedc47eaeb1c35e5d8bc",
      "parents": [
        "19c9a49b432f245c6293508d164a4350f1f2c601"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Jul 01 08:26:34 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jul 01 08:26:34 2010 +0200"
      },
      "message": "fs-writeback: fix kernel-doc warnings\n\nFix kernel-doc to match the function\u0027s changed args.\n\nWarning(fs/fs-writeback.c:190): No description found for parameter \u0027args\u0027\nWarning(fs/fs-writeback.c:190): Excess function parameter \u0027sb\u0027 description in \u0027bdi_queue_work_onstack\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "19c9a49b432f245c6293508d164a4350f1f2c601",
      "tree": "a051c7c6c4c36d03e304c33a549da7ff4765d425",
      "parents": [
        "2cb4b05e7647891b46b91c07c9a60304803d1688"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Tue Jun 29 13:10:36 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Jun 30 08:12:37 2010 +0200"
      },
      "message": "splice: check f_mode for seekable file\n\ncheck f_mode for seekable file\n\nAs a seekable file is allowed without a llseek function, so the old way isn\u0027t\nwork any more.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n----\n fs/splice.c |    6 ++----\n 1 file changed, 2 insertions(+), 4 deletions(-)\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "2cb4b05e7647891b46b91c07c9a60304803d1688",
      "tree": "7eae6d9fbee1d85feabb942c4a826700c4d6f9a3",
      "parents": [
        "984bc9601f64fd341b8573021d7c999f1f1499a9"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Tue Jun 29 13:09:18 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Jun 30 08:12:37 2010 +0200"
      },
      "message": "splice: direct_splice_actor() should not use pos in sd\n\ndirect_splice_actor() shouldn\u0027t use sd-\u003epos, as sd-\u003epos is for file reading,\nfile-\u003ef_pos should be used instead.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n----\n fs/splice.c |    3 ++-\n 1 file changed, 2 insertions(+), 1 deletion(-)\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f4985dc714d7ab1920c5aa502b7f4073fa1b4177",
      "tree": "4e8385c3d0c95f02623f5712a875742664701822",
      "parents": [
        "fb967ecc584c20c74a007de749ca597068b0fcac"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jun 29 15:05:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:32 2010 -0700"
      },
      "message": "fs/fcntl.c:kill_fasync_rcu() fa_lock must be IRQ-safe\n\nFix a lockdep-splat-causing regression introduced by commit 989a2979205d\n(\"fasync: RCU and fine grained locking\").\n\nkill_fasync() can be called from both process and hard-irq context, so\nfa_lock must be taken with IRQs disabled.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d16230\n\nReported-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReported-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nTested-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: Maciej Rutecki \u003cmaciej.rutecki@gmail.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46c23d7f520e315dde86881b38ba92ebdf34ced5",
      "tree": "30a14e15710e9fe9ba38ac667ce7ed5734db3342",
      "parents": [
        "926b1e2ca35ccb3cbe0ea9b322c5330869b95046"
      ],
      "author": {
        "name": "Lubomir Rintel",
        "email": "lkundrak@v3.sk",
        "time": "Tue Jun 29 15:05:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:32 2010 -0700"
      },
      "message": "sysvfs: fix NULL deref. when allocating new inode\n\nA call to sysv_write_inode() in sysv_new_inode() to its new interface that\nreplaced wait flag with writeback structure.  This was broken by\na9185b41a4f84971b930c519f0c63bd450c4810d (\"pass writeback_control to\n-\u003ewrite_inode\").\n\nSigned-off-by: Lubomir Rintel \u003clkundrak@v3.sk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.34.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2952095c6b2eefd068dda0dee6317cf95155a304",
      "tree": "b0a963b7725f0e4a84a703ec78e8de80b953d060",
      "parents": [
        "12c46b336540b483df10d794bdee5d2f1aa8e33a"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jun 29 15:05:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:31 2010 -0700"
      },
      "message": "flat: tweak default stack alignment\n\nThe recent commit 1f0ce8b3dd667dca7 (\"mm: Move ARCH_SLAB_MINALIGN and\nARCH_KMALLOC_MINALIGN to \u003clinux/slab_def.h\u003e\") which moved the\nARCH_SLAB_MINALIGN default into the global header inadvertently broke FLAT\nfor a bunch of systems.  Blackfin systems now fail on any FLAT exec with:\nUnable to read code+data+bss, errno 14 When your /init is a FLAT binary,\nobviously this can be annoying ;).\n\nThis stems from the alignment usage in the FLAT loader.  The behavior\nbefore was that FLAT would default to ARCH_SLAB_MINALIGN only if it was\ndefined, and this was only defined by arches when they wanted a larger\nalignment value.  Otherwise it\u0027d default to pointer alignment.  Arguably,\nthis is kind of hokey that the FLAT is semi-abusing defines it shouldn\u0027t.\n\nSo let\u0027s merge the two alignment requirements so the floor is never 0.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: David McCullough \u003cdavidm@snapgear.com\u003e\nCc: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c26c9d9597f982973b9b3a32364230096ab0d78",
      "tree": "9ae3bb2586c6c8e6cd7af2e9695aa1b742fc8aad",
      "parents": [
        "e621ba9932aa0a90e47c12c958b3a3104915f3b9"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jun 29 15:05:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:30 2010 -0700"
      },
      "message": "nommu: add \u0027[stack]\u0027 label to /proc/pid/maps output\n\nAdd support to the NOMMU /proc/pid/maps file to show which mapping is the stack\nof the original thread after execve.  This is largely based on the MMU code.\nSubsidiary thread stacks are not indicated.\n\nFor FDPIC, we now get:\n\n\troot:/\u003e cat /proc/self/maps\n\t02064000-02067ccc rw-p 0004d000 00:01 22         /bin/busybox\n\t0206e000-0206f35c rw-p 00006000 00:01 295        /lib/ld-uClibc.so.0\n\t025f0000-025f6f0c r-xs 00000000 00:01 295        /lib/ld-uClibc.so.0\n\t02680000-026ba6b0 r-xs 00000000 00:01 297        /lib/libc.so.0\n\t02700000-0274d384 r-xs 00000000 00:01 22         /bin/busybox\n\t02816000-02817000 rw-p 00000000 00:00 0\n\t02848000-0284c0d8 rw-p 00000000 00:00 0\n\t02860000-02880000 rw-p 00000000 00:00 0          [stack]\n\nThe semi-downside here is that for FLAT, we get:\n\n\troot:/\u003e cat /proc/155/maps\n\t029f0000-029f9000 rwxp 00000000 00:00 0          [stack]\n\nThe reason being that FLAT combines a whole lot of stuff into one map\n(including the stack).  But this isn\u0027t any worse than the current output\n(which is nothing), so screw it.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "984bc9601f64fd341b8573021d7c999f1f1499a9",
      "tree": "06c616a6285b00d1e577902face3e8a986370b34",
      "parents": [
        "57439f878afafefad8836ebf5c49da2a0a746105",
        "1b99973f1c82707e46e8cb9416865a1e955e8f8c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 10:42:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 10:42:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: Don\u0027t count_vm_events for discard bio in submit_bio.\n  cfq: fix recursive call in cfq_blkiocg_update_completion_stats()\n  cfq-iosched: Fixed boot warning with BLK_CGROUP\u003dy and CFQ_GROUP_IOSCHED\u003dn\n  cfq: Don\u0027t allow queue merges for queues that have no process references\n  block: fix DISCARD_BARRIER requests\n  cciss: set SCSI max cmd len to 16, as default is wrong\n  cpqarray: fix two more wrong section type\n  cpqarray: fix wrong __init type on pci probe function\n  drbd: Fixed a race between disk-attach and unexpected state changes\n  writeback: fix pin_sb_for_writeback\n  writeback: add missing requeue_io in writeback_inodes_wb\n  writeback: simplify and split bdi_start_writeback\n  writeback: simplify wakeup_flusher_threads\n  writeback: fix writeback_inodes_wb from writeback_inodes_sb\n  writeback: enforce s_umount locking in writeback_inodes_sb\n  writeback: queue work on stack in writeback_inodes_sb\n  writeback: fix writeback completion notifications\n"
    },
    {
      "commit": "57439f878afafefad8836ebf5c49da2a0a746105",
      "tree": "ec11dd35704aa37d77a5fd8404fda57f297a3834",
      "parents": [
        "5904b3b81d25166e5e39b9727645bb47937618e3"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Thu Jun 24 13:02:14 2010 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 10:38:22 2010 -0700"
      },
      "message": "fs: fix superblock iteration race\n\nlist_for_each_entry_safe is not suitable to protect against concurrent\nmodification of the list. 6754af6 introduced a race in sb walking.\n\nlist_for_each_entry can use the trick of pinning the current entry in\nthe list before we drop and retake the lock because it subsequently\nfollows cur-\u003enext. However list_for_each_entry_safe saves n\u003dcur-\u003enext\nfor following before entering the loop body, so when the lock is\ndropped, n may be deleted.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Frank Mayhar \u003cfmayhar@google.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "443b3760a06860187f135c1ecd56c2c7d4ad1022",
      "tree": "d6a3ec8b77f133066bd7795acca33f461eee821a",
      "parents": [
        "ec97f88ba6d4256927fde516033ee76d5d85b54a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 29 09:28:39 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 29 09:31:56 2010 -0700"
      },
      "message": "ceph: fix caps usage accounting for import (non-reserved) case\n\nWe need to increase the total and used counters when allocating a new cap\nin the non-reserved (cap import) case.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ec97f88ba6d4256927fde516033ee76d5d85b54a",
      "tree": "0df9cb10364afdb9092a089ba0da4a15f3c25a06",
      "parents": [
        "a1a31e734241aefcb2b30fb0cc0376977b6d2ba8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 15:12:37 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 29 09:31:55 2010 -0700"
      },
      "message": "ceph: only release clean, unused caps with mds requests\n\nWe can drop caps with an mds request.  Ensure we only drop unused AND\nclean caps, since the MDS doesn\u0027t support cap writeback in that context,\nnor do we track it.  If caps are dirty, and the MDS needs them back, we\nit will revoke and we will flush in the normal fashion.\n\nThis fixes a possibly loss of metadata.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "327f935a9ef644c0ec3d050c94bce753756d60c0",
      "tree": "be1cadad98a4e91566a0ab1be7112fad38db97f4",
      "parents": [
        "f244f31a0d31402c2c1b1950108e0013353cc3f3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 02:52:32 2010 +0900"
      },
      "committer": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Jun 28 10:19:19 2010 +1000"
      },
      "message": "ocfs2: update gfp/slab.h includes\n\nImplicit slab.h inclusion via percpu.h is about to go away.  Make sure\ngfp.h or slab.h is included as necessary.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\n"
    },
    {
      "commit": "e7865c234fff2db474f21a62b2f906a70317c972",
      "tree": "da15a1c215b69dda6279c61106e2a5981e7e1d72",
      "parents": [
        "bf2937695fe2330bfd8933a2310e7bdd2581dc2e",
        "d3f6baaa34c54040b3ef30950e59b54ac0624b21"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 27 09:04:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 27 09:04:02 2010 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFSv4: Fix an embarassing typo in encode_attrs()\n  NFSv4: Ensure that /proc/self/mountinfo displays the minor version number\n  NFSv4.1: Ensure that we initialise the session when following a referral\n  SUNRPC: Fix a re-entrancy bug in xs_tcp_read_calldir()\n  nfs4 use mandatory attribute file type in nfs4_get_root\n"
    },
    {
      "commit": "55982d94009c8fb1ea79855dba0c079c36224c38",
      "tree": "7390e8dd259c93d20896410930539b84ac4a3db8",
      "parents": [
        "a7b917256d8afacadc614414c4b0d411f76f3747",
        "30e2bab2d6e22188c6d36a09cdcffb4748d2dbe5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 27 07:50:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 27 07:50:47 2010 -0700"
      },
      "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:\n  ext3: update ctime when changing the file\u0027s permission by setfacl\n  ext2: update ctime when changing the file\u0027s permission by setfacl\n"
    },
    {
      "commit": "be1d29f59ca3ec7dfbbae24d4f68d357f5a31c4b",
      "tree": "751f2cc970be12046734c3e36ac48b23a7326ae0",
      "parents": [
        "24eb90abdd54446da5afe71f7c264fe26cfc5659",
        "51223df6c33d2d774429aef5fe8ae666401124b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 27 07:34:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 27 07:34:02 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  MAINTAINERS: change mailing list address for CIFS\n  cifs: remove bogus first_time check in NTLMv2 session setup code\n  cifs: don\u0027t call cifs_new_fileinfo unless cifs_open succeeds\n  cifs: don\u0027t ignore cifs_posix_open_inode_helper return value\n  cifs: clean up arguments to cifs_open_inode_helper\n  cifs: pass instantiated filp back after open call\n  cifs: move cifs_new_fileinfo call out of cifs_posix_open\n  cifs: implement drop_inode superblock op\n  cifs: don\u0027t attempt busy-file rename unless it\u0027s in same directory\n"
    },
    {
      "commit": "30e2bab2d6e22188c6d36a09cdcffb4748d2dbe5",
      "tree": "6970213dc80934ed97244468f6c432b97271e62c",
      "parents": [
        "523825bc586d19e0fbcfc5db717f5bb90108bbc3"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu May 27 16:28:40 2010 +0800"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jun 25 01:20:37 2010 +0200"
      },
      "message": "ext3: update ctime when changing the file\u0027s permission by setfacl\n\next3 didn\u0027t update the ctime of the file when its permission was changed.\n\nSteps to reproduce:\n # touch aaa\n # stat -c %Z aaa\n 1275289822\n # setfacl -m  \u0027u::x,g::x,o::x\u0027 aaa\n # stat -c %Z aaa\n 1275289822\t\t\t\t\u003c- unchanged\n\nBut, according to the spec of the ctime, ext3 must update it.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "523825bc586d19e0fbcfc5db717f5bb90108bbc3",
      "tree": "54860c07d882f1c4417e8ce5c46510fb4f8c2726",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jun 02 16:26:51 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jun 25 01:20:37 2010 +0200"
      },
      "message": "ext2: update ctime when changing the file\u0027s permission by setfacl\n\next2 didn\u0027t update the ctime of the file when its permission was changed.\n\nSteps to reproduce:\n # touch aaa\n # stat -c %Z aaa\n 1275289822\n # setfacl -m  \u0027u::x,g::x,o::x\u0027 aaa\n # stat -c %Z aaa\n 1275289822                         \u003c- unchanged\n\nBut, according to the spec of the ctime, ext2 must update it.\n\nPort of ext3 patch by Miao Xie \u003cmiaox@cn.fujitsu.com\u003e.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "a1a31e734241aefcb2b30fb0cc0376977b6d2ba8",
      "tree": "3247b61cf5f1cc3efb212e0362493f98f326e4ff",
      "parents": [
        "55bda7aacd13f5fdfeaafc16934953171405c692"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 12:58:14 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 12:58:14 2010 -0700"
      },
      "message": "ceph: fix crush CHOOSE_LEAF when type is already a leaf\n\nWe may not recurse for CHOOSE_LEAF if we start with a leaf node.  When\nthat happens, the out2 vector needs to be filled in with the result.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "55bda7aacd13f5fdfeaafc16934953171405c692",
      "tree": "0eac30a53266f636589e4b6220409289d068625a",
      "parents": [
        "bfaf148eb2e42c00f1c79b2163f0804068ea0c5e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 12:55:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 12:55:48 2010 -0700"
      },
      "message": "ceph: fix crush recursion\n\nThere was a longstanding problem with recursion through intervening\nbucket types on complex hierarchies.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bfaf148eb2e42c00f1c79b2163f0804068ea0c5e",
      "tree": "8d6b4dfcc42cd156bc80f0db472e9b3988edcd1b",
      "parents": [
        "17c688c3dfffc274c87be00033da0050bb6eefc0"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Wed Jun 23 15:52:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 09:47:36 2010 -0700"
      },
      "message": "ceph: fix caps debugfs entry\n\nThe ceph client structure was not set correctly.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7b6259e7a83647948fa33a736cc832310c8d85aa",
      "tree": "99bb872b179a93f5e32b51f312029abb1237b055",
      "parents": [
        "1920779e67cbf5ea8afef317777c5bf2b8096188"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Jun 24 11:35:17 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jun 24 11:35:17 2010 +1000"
      },
      "message": "xfs: remove block number from inode lookup code\n\nThe block number comes from bulkstat based inode lookups to shortcut\nthe mapping calculations. We ar enot able to trust anything from\nbulkstat, so drop the block number as well so that the correct\nlookups and mappings are always done.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "1920779e67cbf5ea8afef317777c5bf2b8096188",
      "tree": "f3450e4075162ef5ec360446c301513a5adf316e",
      "parents": [
        "7124fe0a5b619d65b739477b3b55a20bf805b06d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Jun 24 11:15:47 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jun 24 11:15:47 2010 +1000"
      },
      "message": "xfs: rename XFS_IGET_BULKSTAT to XFS_IGET_UNTRUSTED\n\nInode numbers may come from somewhere external to the filesystem\n(e.g. file handles, bulkstat information) and so are inherently\nuntrusted. Rename the flag we use for these lookups to make it\nobvious we are doing a lookup of an untrusted inode number and need\nto verify it completely before trying to read it from disk.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7124fe0a5b619d65b739477b3b55a20bf805b06d",
      "tree": "be333ebdcc7df735070dbc1441c1d59682d06132",
      "parents": [
        "7dce11dbac54fce777eea0f5fb25b2694ccd7900"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Jun 24 11:15:33 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jun 24 11:15:33 2010 +1000"
      },
      "message": "xfs: validate untrusted inode numbers during lookup\n\nWhen we decode a handle or do a bulkstat lookup, we are using an\ninode number we cannot trust to be valid. If we are deleting inode\nchunks from disk (default noikeep mode), then we cannot trust the on\ndisk inode buffer for any given inode number to correctly reflect\nwhether the inode has been unlinked as the di_mode nor the\ngeneration number may have been updated on disk.\n\nThis is due to the fact that when we delete an inode chunk, we do\nnot write the clusters back to disk when they are removed - instead\nwe mark them stale to avoid them being written back potentially over\nthe top of something that has been subsequently allocated at that\nlocation. The result is that we can have locations of disk that look\nlike they contain valid inodes but in reality do not. Hence we\ncannot simply convert the inode number to a block number and read\nthe location from disk to determine if the inode is valid or not.\n\nAs a result, and XFS_IGET_BULKSTAT lookup needs to actually look the\ninode up in the inode allocation btree to determine if the inode\nnumber is valid or not.\n\nIt should be noted even on ikeep filesystems, there is the\npossibility that blocks on disk may look like valid inode clusters.\ne.g. if there are filesystem images hosted on the filesystem. Hence\neven for ikeep filesystems we really need to validate that the inode\nnumber is valid before issuing the inode buffer read.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7dce11dbac54fce777eea0f5fb25b2694ccd7900",
      "tree": "90d6d109ca110bcbf47a954a8283ec250be07003",
      "parents": [
        "1817176a86352f65210139d4c794ad2d19fc6b63"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 23 18:11:11 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Wed Jun 23 18:11:11 2010 +1000"
      },
      "message": "xfs: always use iget in bulkstat\n\nThe non-coherent bulkstat versionsthat look directly at the inode\nbuffers causes various problems with performance optimizations that\nmake increased use of just logging inodes.  This patch makes bulkstat\nalways use iget, which should be fast enough for normal use with the\nradix-tree based inode cache introduced a while ago.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "1817176a86352f65210139d4c794ad2d19fc6b63",
      "tree": "59ccbcb634d87882fc899b0d21438c4bb86f8632",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "dan.j.rosenberg@gmail.com",
        "time": "Thu Jun 24 12:07:47 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jun 24 12:07:47 2010 +1000"
      },
      "message": "xfs: prevent swapext from operating on write-only files\n\nThis patch prevents user \"foo\" from using the SWAPEXT ioctl to swap\na write-only file owned by user \"bar\" into a file owned by \"foo\" and\nsubsequently reading it.  It does so by checking that the file\ndescriptors passed to the ioctl are also opened for reading.\n\nSigned-off-by: Dan Rosenberg \u003cdan.j.rosenberg@gmail.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "d3f6baaa34c54040b3ef30950e59b54ac0624b21",
      "tree": "2092cb0a8e794dea250468f86008a69ad24042a7",
      "parents": [
        "0be8189f2c87fcc747d6a4a657a0b6e2161b2318"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 08:52:39 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:22:54 2010 -0400"
      },
      "message": "NFSv4: Fix an embarassing typo in encode_attrs()\n\nApparently, we have never been able to set the atime correctly from the\nNFSv4 client.\n\nReported-by: 小倉一夫 \u003cka-ogura@bd6.so-net.ne.jp\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "0be8189f2c87fcc747d6a4a657a0b6e2161b2318",
      "tree": "f0f461bfa5cef075c7045e5ff216b261ed894098",
      "parents": [
        "44950b67a6239b377a9e6fd52c498b310bcdd713"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 18 12:23:58 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:22:53 2010 -0400"
      },
      "message": "NFSv4: Ensure that /proc/self/mountinfo displays the minor version number\n\nCurrently, we do not display the minor version mount parameter in the\n/proc mount info.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "44950b67a6239b377a9e6fd52c498b310bcdd713",
      "tree": "9984e218b109965d5ac4b55a047838a385301010",
      "parents": [
        "b76ce56192bcf618013fb9aecd83488cffd645cc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 17 11:45:12 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:22:53 2010 -0400"
      },
      "message": "NFSv4.1: Ensure that we initialise the session when following a referral\n\nPut the code that is common to both the referral and ordinary mount cases\ninto a common helper routine.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f799bdb355edaabd81b778087613409a8932fbe9",
      "tree": "e2d27df6984a11b3710fbc5ceb2dd874c375b3bb",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Jun 16 09:51:02 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:17:43 2010 -0400"
      },
      "message": "nfs4 use mandatory attribute file type in nfs4_get_root\n\nS_ISDIR(fsinfo.fattr-\u003emode) checks the file type rather than the mode bits,\nso we should be checking for the NFS_ATTR_FATTR_TYPE fattr property.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "17c688c3dfffc274c87be00033da0050bb6eefc0",
      "tree": "1b1586253abf6850c9746235462d71e14e57f243",
      "parents": [
        "d69ed05a80f23b25f06e73af9b7e701ce4900edc"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 16:12:26 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 16:11:50 2010 -0700"
      },
      "message": "ceph: delay umount until all mds requests drop inode+dentry refs\n\nThis fixes a race between handle_reply finishing an mds request, signalling\ncompletion, and then dropping the request structing and its dentry+inode\nrefs, and pre_umount function waiting for requests to finish before\nletting the vfs tear down the dcache.  If umount was delayed waiting for\nmds requests, we could race and BUG in shrink_dcache_for_umount_subtree\nbecause of a slow dput.\n\nThis delays umount until the msgr queue flushes, which means handle_reply\nwill exit and will have dropped the ceph_mds_request struct.  I\u0027m assuming\nthe VFS has already ensured that its calls have all completed and those\nrequest refs have thus been dropped as well (I haven\u0027t seen that race, at\nleast).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    }
  ],
  "next": "d69ed05a80f23b25f06e73af9b7e701ce4900edc"
}
