)]}'
{
  "log": [
    {
      "commit": "b04da8bfdfbbd79544cab2fadfdc12e87eb01600",
      "tree": "f45ce22866beb7d931b2b19ef2c08b8e03fd6d17",
      "parents": [
        "9a3cbe3265c7714e8ee423feb6e27a080af79608"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 26 15:04:02 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 26 17:25:38 2010 -0800"
      },
      "message": "fnctl: f_modown should call write_lock_irqsave/restore\n\nCommit 703625118069f9f8960d356676662d3db5a9d116 exposed that f_modown()\nshould call write_lock_irqsave instead of just write_lock_irq so that\nbecause a caller could have a spinlock held and it would not be good to\nrenable interrupts.\n\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Tavis Ormandy \u003ctaviso@google.com\u003e\nCc: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a3cbe3265c7714e8ee423feb6e27a080af79608",
      "tree": "fb9740372e2a6ebbd815cb8e40f7c5849371b941",
      "parents": [
        "01974ea61fc22f086d2987b4b717cbda055f0d03",
        "1296cc85c26e94eb865d03f82140f27d598de467"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 25 19:05:06 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 25 19:05:06 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: Drop EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE flag\n  ext4: Fix quota accounting error with fallocate\n  ext4: Handle -EDQUOT error on write\n"
    },
    {
      "commit": "cb289d6244a37cf932c571d6deb0daa8030f931b",
      "tree": "05bea15a25c9d9a4dcc0658a6a8bf845daca535a",
      "parents": [
        "a6085fbaf65ab09bfb5ec8d902d6d21680fe1895"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Wed Jan 13 09:34:36 2010 -0800"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Mon Jan 25 12:26:38 2010 -0200"
      },
      "message": "eventfd - allow atomic read and waitqueue remove\n\nKVM needs a wait to atomically remove themselves from the eventfd -\u003epoll()\nwait queue head, in order to handle correctly their IRQfd deassign\noperation.\n\nThis patch introduces such API, plus a way to read an eventfd from its\ncontext.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "bdeef61cd053b6a88be7d2c82fd43e12f8c9f75e",
      "tree": "6980d178f5402260dfc3c35840b95dc5584cf85e",
      "parents": [
        "4caca5f917ce991dc67fbb42fa82a1f044538e23",
        "703625118069f9f8960d356676662d3db5a9d116"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:37:20 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:37:20 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:\n  tty: fix race in tty_fasync\n  serial: serial_cs: oxsemi quirk breaks resume\n  serial: imx: bit \u0026/| confusion\n  serial: Fix crash if the minimum rate of the device is \u003e 9600 baud\n  serial-core: resume serial hardware with no_console_suspend\n  serial: 8250_pnp: use wildcard for serial Wacom tablets\n  nozomi: quick fix for the close/close bug\n  compat_ioctl: Supress \"unknown cmd\" message on serial /dev/console\n"
    },
    {
      "commit": "456eac94789e1b512515e6974e091ef655f343de",
      "tree": "79f277d02e5e480a373c129bdce7564421d360c7",
      "parents": [
        "dedd0c2a48d1eb779373de5eddd04a3e059ce540",
        "f06f135d8642e2f6812cfcb4ea8e4e9122d4d58c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:32:11 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:32:11 2010 -0800"
      },
      "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  fs/bio.c: fix shadows sparse warning\n  drbd: The kernel code is now equivalent to out of tree release 8.3.7\n  drbd: Allow online resizing of DRBD devices while peer not reachable (needs to be explicitly forced)\n  drbd: Don\u0027t go into StandAlone mode when authentification failes because of network error\n  drivers/block/drbd/drbd_receiver.c: correct NULL test\n  cfq-iosched: Respect ioprio_class when preempting\n  genhd: overlapping variable definition\n  block: removed unused as_io_context\n  DM: Fix device mapper topology stacking\n  block: bdev_stack_limits wrapper\n  block: Fix discard alignment calculation and printing\n  block: Correct handling of bottom device misaligment\n  drbd: check on CONFIG_LBDAF, not LBD\n  drivers/block/drbd: Correct NULL test\n  drbd: Silenced an assert that could triggered after changing write ordering method\n  drbd: Kconfig fix\n  drbd: Fix for a race between IO and a detach operation [Bugz 262]\n  drbd: Use drbd_crypto_is_hash() instead of an open coded check\n"
    },
    {
      "commit": "15e551e52bf62f595f06ddf7a66b750ccfe41683",
      "tree": "c8364383eca64ad2e66a44d897fe16f0f40cb926",
      "parents": [
        "30a0f5e1fb510f17c25ff159a9fffbe01ae0f34e",
        "ece550f51ba175c14ec3ec047815927d7386ea1f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:28:54 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:28:54 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:\n  ecryptfs: use after free\n  ecryptfs: Eliminate useless code\n  ecryptfs: fix interpose/interpolate typos in comments\n  ecryptfs: pass matching flags to interpose as defined and used there\n  ecryptfs: remove unnecessary d_drop calls in ecryptfs_link\n  ecryptfs: don\u0027t ignore return value from lock_rename\n  ecryptfs: initialize private persistent file before dereferencing pointer\n  eCryptfs: Remove mmap from directory operations\n  eCryptfs: Add getattr function\n  eCryptfs: Use notify_change for truncating lower inodes\n"
    },
    {
      "commit": "30a0f5e1fb510f17c25ff159a9fffbe01ae0f34e",
      "tree": "3392e115d4d5767c8bdaeac8696a2465d65a1e91",
      "parents": [
        "88f5004430babb836cfce886d5d54c82166f8ba4",
        "11dfe35a0108097f2df1f042c485fa7f758c2cdf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:28:05 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:28:05 2010 -0800"
      },
      "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 possible panic on unmount\n  Btrfs: deal with NULL acl sent to btrfs_set_acl\n  Btrfs: fix regression in orphan cleanup\n  Btrfs: Fix race in btrfs_mark_extent_written\n  Btrfs, fix memory leaks in error paths\n  Btrfs: align offsets for btrfs_ordered_update_i_size\n  btrfs: fix missing last-entry in readdir(3)\n"
    },
    {
      "commit": "3f00171125384b46e5088b7d7a5d0b3e6972f1ee",
      "tree": "d806f7ac7b189192459645fd4cbda5120fa11f90",
      "parents": [
        "24bc7347da73a9ed3383056c3d0f28c0e361621e"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Sun Jan 10 23:29:16 2010 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jan 20 15:03:26 2010 -0800"
      },
      "message": "compat_ioctl: Supress \"unknown cmd\" message on serial /dev/console\n\nAfter the commit fb07a5f8 (\"compat_ioctl: remove all VT ioctl\nhandling\"), I got this error message on 64-bit mips kernel with 32-bit\nbusybox userland:\n\nioctl32(init:1): Unknown cmd fd(0) cmd(00005600){t:\u0027V\u0027;sz:0} arg(7fd76480) on /dev/console\n\nThe cmd 5600 is VT_OPENQRY.  The busybox\u0027s init issues this ioctl to\nknow vt-console or serial-console.  If the console was serial console,\nVT ioctls are not handled by the serial driver.\n\nAnd by quick search, I found some programs using VT_GETMODE to check\nvt-console is available or not.\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ece550f51ba175c14ec3ec047815927d7386ea1f",
      "tree": "759c930b24718b3feacf149a8e4759f7725ee8e5",
      "parents": [
        "4aa25bcb7dac2d583f1557e2be2d0b598581da54"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Jan 19 12:34:32 2010 +0300"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jan 19 22:36:06 2010 -0600"
      },
      "message": "ecryptfs: use after free\n\nThe \"full_alg_name\" variable is used on a couple error paths, so we\nshouldn\u0027t free it until the end.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4aa25bcb7dac2d583f1557e2be2d0b598581da54",
      "tree": "6627afceaed30b0897298e83ceb4ecd580eeb9f0",
      "parents": [
        "fe0fc013cd8bbd2f4737c1b2694b37dd7fe459cb"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Sat Jan 16 17:00:26 2010 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jan 19 22:36:05 2010 -0600"
      },
      "message": "ecryptfs: Eliminate useless code\n\nThe variable lower_dentry is initialized twice to the same (side effect-free)\nexpression.  Drop one initialization.\n\nA simplified version of the semantic match that finds this problem is:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@forall@\nidexpression *x;\nidentifier f!\u003dERR_PTR;\n@@\n\nx \u003d f(...)\n... when !\u003d x\n(\nx \u003d f(...,\u003c+...x...+\u003e,...)\n|\n* x \u003d f(...)\n)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "fe0fc013cd8bbd2f4737c1b2694b37dd7fe459cb",
      "tree": "e14e4769d95b419be630547ad3d902bc63f71678",
      "parents": [
        "3469b57329f80db5a41cf42d1c8f7690269f57e7"
      ],
      "author": {
        "name": "Erez Zadok",
        "email": "ezk@cs.sunysb.edu",
        "time": "Mon Jan 04 18:17:02 2010 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jan 19 22:36:03 2010 -0600"
      },
      "message": "ecryptfs: fix interpose/interpolate typos in comments\n\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nAcked-by: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "3469b57329f80db5a41cf42d1c8f7690269f57e7",
      "tree": "1672f23b8742dd5426cd3448ab2592342e99e091",
      "parents": [
        "c44a66d674688f1e1d0b2f6f56bd9c6a1b061cae"
      ],
      "author": {
        "name": "Erez Zadok",
        "email": "ezk@cs.sunysb.edu",
        "time": "Sun Dec 06 18:51:15 2009 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jan 19 22:36:02 2010 -0600"
      },
      "message": "ecryptfs: pass matching flags to interpose as defined and used there\n\necryptfs_interpose checks if one of the flags passed is\nECRYPTFS_INTERPOSE_FLAG_D_ADD, defined as 0x00000001 in ecryptfs_kernel.h.\nBut the only user of ecryptfs_interpose to pass a non-zero flag to it, has\nhard-coded the value as \"1\". This could spell trouble if any of these values\nchanges in the future.\n\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "c44a66d674688f1e1d0b2f6f56bd9c6a1b061cae",
      "tree": "52ff029a1c19b11b75ccc25ed7a5e00619e05800",
      "parents": [
        "0d132f7364694da8f7cafd49e2fc2721b73e96e4"
      ],
      "author": {
        "name": "Erez Zadok",
        "email": "ezk@cs.sunysb.edu",
        "time": "Sun Dec 06 18:05:30 2009 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jan 19 22:36:00 2010 -0600"
      },
      "message": "ecryptfs: remove unnecessary d_drop calls in ecryptfs_link\n\nUnnecessary because it would unhash perfectly valid dentries, causing them\nto have to be re-looked up the next time they\u0027re needed, which presumably is\nright after.\n\nSigned-off-by: Aseem Rastogi \u003carastogi@cs.sunysb.edu\u003e\nSigned-off-by: Shrikar archak \u003cshrikar84@gmail.com\u003e\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nCc: Saumitra Bhanage \u003csbhanage@cs.sunysb.edu\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0d132f7364694da8f7cafd49e2fc2721b73e96e4",
      "tree": "8603d76664307d039830796cc04a0e0363cf3b60",
      "parents": [
        "e27759d7a333d1f25d628c4f7caf845c51be51c2"
      ],
      "author": {
        "name": "Erez Zadok",
        "email": "ezk@cs.sunysb.edu",
        "time": "Sat Dec 05 21:17:09 2009 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jan 19 22:35:59 2010 -0600"
      },
      "message": "ecryptfs: don\u0027t ignore return value from lock_rename\n\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "e27759d7a333d1f25d628c4f7caf845c51be51c2",
      "tree": "6181c5f5abe8b2e4b7bdc45f1231c769cc57a403",
      "parents": [
        "38e3eaeedcac75360af8a92e7b66956ec4f334e5"
      ],
      "author": {
        "name": "Erez Zadok",
        "email": "ezk@cs.sunysb.edu",
        "time": "Thu Dec 03 13:35:27 2009 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jan 19 22:32:54 2010 -0600"
      },
      "message": "ecryptfs: initialize private persistent file before dereferencing pointer\n\nEcryptfs_open dereferences a pointer to the private lower file (the one\nstored in the ecryptfs inode), without checking if the pointer is NULL.\nRight afterward, it initializes that pointer if it is NULL.  Swap order of\nstatements to first initialize.  Bug discovered by Duckjin Kang.\n\nSigned-off-by: Duckjin Kang \u003cfromdj2k@gmail.com\u003e\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "38e3eaeedcac75360af8a92e7b66956ec4f334e5",
      "tree": "ba194b5451033e29137d4c797edd8d508c470d42",
      "parents": [
        "f8f484d1b6677dd5cd5e7e605db747e8c30bbd47"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Nov 03 14:56:06 2009 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jan 19 22:32:11 2010 -0600"
      },
      "message": "eCryptfs: Remove mmap from directory operations\n\nAdrian reported that mkfontscale didn\u0027t work inside of eCryptfs mounts.\nStrace revealed the following:\n\nopen(\"./\", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) \u003d 3\nfcntl64(3, F_GETFD) \u003d 0x1 (flags FD_CLOEXEC)\nopen(\"./fonts.scale\", O_WRONLY|O_CREAT|O_TRUNC, 0666) \u003d 4\ngetdents(3, /* 80 entries */, 32768) \u003d 2304\nopen(\"./.\", O_RDONLY) \u003d 5\nfcntl64(5, F_SETFD, FD_CLOEXEC) \u003d 0\nfstat64(5, {st_mode\u003dS_IFDIR|0755, st_size\u003d16384, ...}) \u003d 0\nmmap2(NULL, 16384, PROT_READ, MAP_PRIVATE, 5, 0) \u003d 0xb7fcf000\nclose(5) \u003d 0\n--- SIGBUS (Bus error) @ 0 (0) ---\n+++ killed by SIGBUS +++\n\nThe mmap2() on a directory was successful, resulting in a SIGBUS\nsignal later.  This patch removes mmap() from the list of possible\necryptfs_dir_fops so that mmap() isn\u0027t possible on eCryptfs directory\nfiles.\n\nhttps://bugs.launchpad.net/ecryptfs/+bug/400443\n\nReported-by: Adrian C. \u003canrxc@sysphere.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f8f484d1b6677dd5cd5e7e605db747e8c30bbd47",
      "tree": "67acfc58f5e952e4fd2720d2e5e77409db40b6b8",
      "parents": [
        "5f3ef64f4da1c587cdcfaaac72311225b7df094c"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Nov 04 02:48:01 2009 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jan 19 22:32:09 2010 -0600"
      },
      "message": "eCryptfs: Add getattr function\n\nThe i_blocks field of an eCryptfs inode cannot be trusted, but\ngeneric_fillattr() uses it to instantiate the blocks field of a stat()\nsyscall when a filesystem doesn\u0027t implement its own getattr().  Users\nhave noticed that the output of du is incorrect on newly created files.\n\nThis patch creates ecryptfs_getattr() which calls into the lower\nfilesystem\u0027s getattr() so that eCryptfs can use its kstat.blocks value\nafter calling generic_fillattr().  It is important to note that the\nblock count includes the eCryptfs metadata stored in the beginning of\nthe lower file plus any padding used to fill an extent before\nencryption.\n\nhttps://bugs.launchpad.net/ecryptfs/+bug/390833\n\nReported-by: Dominic Sacré \u003cdominic.sacre@gmx.de\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "5f3ef64f4da1c587cdcfaaac72311225b7df094c",
      "tree": "0bdf086980df60d73bc650cdc520b59029faaa5a",
      "parents": [
        "24bc7347da73a9ed3383056c3d0f28c0e361621e"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Oct 14 16:18:27 2009 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jan 19 22:32:07 2010 -0600"
      },
      "message": "eCryptfs: Use notify_change for truncating lower inodes\n\nWhen truncating inodes in the lower filesystem, eCryptfs directly\ninvoked vmtruncate(). As Christoph Hellwig pointed out, vmtruncate() is\na filesystem helper function, but filesystems may need to do more than\njust a call to vmtruncate().\n\nThis patch moves the lower inode truncation out of ecryptfs_truncate()\nand renames the function to truncate_upper().  truncate_upper() updates\nan iattr for the lower inode to indicate if the lower inode needs to be\ntruncated upon return.  ecryptfs_setattr() then calls notify_change(),\nusing the updated iattr for the lower inode, to complete the truncation.\n\nFor eCryptfs functions needing to truncate, ecryptfs_truncate() is\nreintroduced as a simple way to truncate the upper inode to a specified\nsize and then truncate the lower inode accordingly.\n\nhttps://bugs.launchpad.net/bugs/451368\n\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: ecryptfs-devel@lists.launchpad.net\nCc: linux-fsdevel@vger.kernel.org\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f06f135d8642e2f6812cfcb4ea8e4e9122d4d58c",
      "tree": "efef71a7083eda0c471a1c5aebb9132e37b61ade",
      "parents": [
        "2705ca7959111882097da1ebbe401d5566780904"
      ],
      "author": {
        "name": "Thiago Farina",
        "email": "tfransosi@gmail.com",
        "time": "Tue Jan 19 14:07:09 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jan 19 14:07:09 2010 +0100"
      },
      "message": "fs/bio.c: fix shadows sparse warning\n\nfs/bio.c:81:33: warning: symbol \u0027bslab\u0027 shadows an earlier one\nfs/bio.c:74:25: originally declared here\n\nSigned-off-by: Thiago Farina \u003ctfransosi@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1e868d8e6d2c4b8736cdf7a4bd5701e4f527f722",
      "tree": "ce9ab0c1e5b4fd1610e8bf49a089a5cd5a474566",
      "parents": [
        "2faae42233778676607a2a45b95aeb375bebe2c6",
        "e09f98606dcc156de1146c209d45a0d6d5f51c3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 18 14:08:07 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 18 14:08:07 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: xfs_swap_extents needs to handle dynamic fork offsets\n  xfs: fix missing error check in xfs_rtfree_range\n  xfs: fix stale inode flush avoidance\n  xfs: Remove inode iolock held check during allocation\n  xfs: reclaim all inodes by background tree walks\n  xfs: Avoid inodes in reclaim when flushing from inode cache\n  xfs: reclaim inodes under a write lock\n"
    },
    {
      "commit": "11dfe35a0108097f2df1f042c485fa7f758c2cdf",
      "tree": "83d5af6992db15ee61bc0c960626c378a2f5b436",
      "parents": [
        "a9cc71a60c29a09174bee2fcef8f924c529fd4b7"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Nov 13 20:12:59 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:40:30 2010 -0500"
      },
      "message": "Btrfs: fix possible panic on unmount\n\nWe can race with the unmount of an fs and the stopping of a kthread where we\nwill free the block group before we\u0027re done using it.  The reason for this is\nbecause we do not hold a reference on the block group while its caching, since\nthe allocator drops its reference once it exits or moves on to the next block\ngroup.  This patch fixes the problem by taking a reference to the block group\nbefore we start caching and dropping it when we\u0027re done to make sure all\naccesses to the block group are safe.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a9cc71a60c29a09174bee2fcef8f924c529fd4b7",
      "tree": "d8ae909f351fda769f21ad58ce9fbe211657ecf2",
      "parents": [
        "6c090a11e1c403b727a6a8eff0b97d5fb9e95cb5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:36:18 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:40:22 2010 -0500"
      },
      "message": "Btrfs: deal with NULL acl sent to btrfs_set_acl\n\nIt is legal for btrfs_set_acl to be sent a NULL acl.  This\nmakes sure we don\u0027t dereference it.  A similar patch was sent by\nJohannes Hirte \u003cjohannes.hirte@fem.tu-ilmenau.de\u003e\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6c090a11e1c403b727a6a8eff0b97d5fb9e95cb5",
      "tree": "51ff4a540d71e1cd6421041c3d3ec466e21a860f",
      "parents": [
        "6c7d54ac87f338c479d9729e8392eca3f76e11e1"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Jan 15 20:08:22 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:40:21 2010 -0500"
      },
      "message": "Btrfs: fix regression in orphan cleanup\n\nCurrently orphan cleanup only ever gets triggered if we cross subvolumes during\na lookup, which means that if we just mount a plain jane fs that has orphans in\nit, they will never get cleaned up.  This results in panic\u0027s like these\n\nhttp://www.kerneloops.org/oops.php?number\u003d1109085\n\nwhere adding an orphan entry results in -EEXIST being returned and we panic.  In\norder to fix this, we check to see on lookup if our root has had the orphan\ncleanup done, and if not go ahead and do it.  This is easily reproduceable by\nrunning this testcase\n\n#include \u003csys/types.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cstring.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cstdio.h\u003e\n\nint main(int argc, char **argv)\n{\n\tchar data[4096];\n\tchar newdata[4096];\n\tint fd1, fd2;\n\n\tmemset(data, \u0027a\u0027, 4096);\n\tmemset(newdata, \u0027b\u0027, 4096);\n\n\twhile (1) {\n\t\tint i;\n\n\t\tfd1 \u003d creat(\"file1\", 0666);\n\t\tif (fd1 \u003c 0)\n\t\t\tbreak;\n\n\t\tfor (i \u003d 0; i \u003c 512; i++)\n\t\t\twrite(fd1, data, 4096);\n\n\t\tfsync(fd1);\n\t\tclose(fd1);\n\n\t\tfd2 \u003d creat(\"file2\", 0666);\n\t\tif (fd2 \u003c 0)\n\t\t\tbreak;\n\n\t\tftruncate(fd2, 4096 * 512);\n\n\t\tfor (i \u003d 0; i \u003c 512; i++)\n\t\t\twrite(fd2, newdata, 4096);\n\t\tclose(fd2);\n\n\t\ti \u003d rename(\"file2\", \"file1\");\n\t\tunlink(\"file1\");\n\t}\n\n\treturn 0;\n}\n\nand then pulling the power on the box, and then trying to run that test again\nwhen the box comes back up.  I\u0027ve tested this locally and it fixes the problem.\nThanks to Tomas Carnecky for helping me track this down initially.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6c7d54ac87f338c479d9729e8392eca3f76e11e1",
      "tree": "3815913df585d7cbc8ba6a4c151328daa4720c7c",
      "parents": [
        "2423fdfb96e3f9ff3baeb6c4c78d74145547891d"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Fri Jan 15 08:43:09 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:40:21 2010 -0500"
      },
      "message": "Btrfs: Fix race in btrfs_mark_extent_written\n\nFix bug reported by Johannes Hirte. The reason of that bug\nis btrfs_del_items is called after btrfs_duplicate_item and\nbtrfs_del_items triggers tree balance. The fix is check that\ncase and call btrfs_search_slot when needed.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2423fdfb96e3f9ff3baeb6c4c78d74145547891d",
      "tree": "a47f7712849dd9ab5c4a1c3371511e072abcdb29",
      "parents": [
        "a038fab0cb873c75d6675e2bcffce8a3935bdce7"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Wed Jan 06 16:57:22 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:40:20 2010 -0500"
      },
      "message": "Btrfs, fix memory leaks in error paths\n\nStanse found 2 memory leaks in relocate_block_group and\n__btrfs_map_block. cluster and multi are not freed/assigned on all\npaths. Fix that.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: linux-btrfs@vger.kernel.org\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a038fab0cb873c75d6675e2bcffce8a3935bdce7",
      "tree": "f128cf83728dccb1a5f392acb053ceccb4491aa3",
      "parents": [
        "406266ab9ac8ed8b085c58aacd9e3161480dc5d5"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "yanzheng@21cn.com",
        "time": "Mon Dec 28 05:01:58 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:06:27 2010 -0500"
      },
      "message": "Btrfs: align offsets for btrfs_ordered_update_i_size\n\nSome callers of btrfs_ordered_update_i_size can now pass in\na NULL for the ordered extent to update against.  This makes\nsure we properly align the offset they pass in when deciding\nhow much to bump the on disk i_size.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "406266ab9ac8ed8b085c58aacd9e3161480dc5d5",
      "tree": "811d305c4c4fdf6b19279173959d06698a304416",
      "parents": [
        "3a1abec9f6880cf406593c392636199ea1c6c917"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Dec 09 22:00:38 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:06:27 2010 -0500"
      },
      "message": "btrfs: fix missing last-entry in readdir(3)\n\nparent 49313cdac7b34c9f7ecbb1780cfc648b1c082cd7 (v2.6.32-1-g49313cd)\ncommit ff48c08e1c05c67e8348ab6f8a24de8034e0e34d\nAuthor: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nDate:   Wed Dec 9 22:57:36 2009 +0100\n\nBtrfs: fix missing last-entry in readdir(3)\n\nWhen one does a 32-bit readdir(3), the last entry of a directory is\nmissing. This is however not due to passing a large value to filldir,\nbut it seems to have to do with glibc doing telldir or something\nquirky. In any case, this patch fixes it in practice.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7dc9c484a71525794ca05cf7a47f283f1b54cd12",
      "tree": "e150ea705069b06af5c6e0d077a94437f24e991a",
      "parents": [
        "3a5dd791abef032fe57fc652c0232913c696e59b",
        "27d55f1f4c190b14092fcca3069c7d15df83514f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 17 11:01:16 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 17 11:01:16 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  do_add_mount() should sanitize mnt_flags\n  CIFS shouldn\u0027t make mountpoints shrinkable\n  mnt_flags fixes in do_remount()\n  attach_recursive_mnt() needs to hold vfsmount_lock over set_mnt_shared()\n  may_umount() needs namespace_sem\n  Fix configfs leak\n  Fix the -ESTALE handling in do_filp_open()\n  ecryptfs: Fix refcnt leak on ecryptfs_follow_link() error path\n  Fix ACC_MODE() for real\n  Unrot uml mconsole a bit\n  hppfs: handle -\u003eput_link()\n  Kill 9p readlink()\n  fix autofs/afs/etc. magic mountpoint breakage\n"
    },
    {
      "commit": "7e6608724c640924aad1d556d17df33ebaa6124d",
      "tree": "b2d90646f5ee52f5b7807bbc0abe09db9adbe478",
      "parents": [
        "81759b5b221107488bda99fe7beeb7b734f61133"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:39 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:40 2010 -0800"
      },
      "message": "nommu: fix shared mmap after truncate shrinkage problems\n\nFix a problem in NOMMU mmap with ramfs whereby a shared mmap can happen\nover the end of a truncation.  The problem is that\nramfs_nommu_check_mappings() checks that the reduced file size against the\nVMA tree, but not the vm_region tree.\n\nThe following sequence of events can cause the problem:\n\n\tfd \u003d open(\"/tmp/x\", O_RDWR|O_TRUNC|O_CREAT, 0600);\n\tftruncate(fd, 32 * 1024);\n\ta \u003d mmap(NULL, 32 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\tb \u003d mmap(NULL, 16 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\tmunmap(a, 32 * 1024);\n\tftruncate(fd, 16 * 1024);\n\tc \u003d mmap(NULL, 32 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\nMapping \u0027a\u0027 creates a vm_region covering 32KB of the file.  Mapping \u0027b\u0027\nsees that the vm_region from \u0027a\u0027 is covering the region it wants and so\nshares it, pinning it in memory.\n\nMapping \u0027a\u0027 then goes away and the file is truncated to the end of VMA\n\u0027b\u0027.  However, the region allocated by \u0027a\u0027 is still in effect, and has\n_not_ been reduced.\n\nMapping \u0027c\u0027 is then created, and because there\u0027s a vm_region covering the\ndesired region, get_unmapped_area() is _not_ called to repeat the check,\nand the mapping is granted, even though the pages from the latter half of\nthe mapping have been discarded.\n\nHowever:\n\n\td \u003d mmap(NULL, 16 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\nMapping \u0027d\u0027 should work, and should end up sharing the region allocated by\n\u0027a\u0027.\n\nTo deal with this, we shrink the vm_region struct during the truncation,\nlest do_mmap_pgoff() take it as licence to share the full region\nautomatically without calling the get_unmapped_area() file op again.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\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": "81759b5b221107488bda99fe7beeb7b734f61133",
      "tree": "2ca1207d4ae5d6bbdc49db727a35b22a502fc76f",
      "parents": [
        "efc1a3b16930c41d64ffefde16b87d82f603a8a0"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:36 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:40 2010 -0800"
      },
      "message": "nommu: fix race between ramfs truncation and shared mmap\n\nFix the race between the truncation of a ramfs file and an attempt to make\na shared mmap of region of that file.\n\nThe problem is that do_mmap_pgoff() calls f_op-\u003eget_unmapped_area() to\nverify that the file region is made of contiguous pages and to find its\nbase address - but there isn\u0027t any locking to guarantee this region until\nvma_prio_tree_insert() is called by add_vma_to_mm().\n\nNote that moving the functionality into f_op-\u003emmap() doesn\u0027t help as that\nis also called before vma_prio_tree_insert().\n\nInstead make ramfs_nommu_check_mappings() grab nommu_region_sem whilst it\ndoes its checks.  This means that this function will wait whilst mmaps\ntake place.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\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": "27d55f1f4c190b14092fcca3069c7d15df83514f",
      "tree": "e0d305a30fa5b5655b87ecc1b50d1664fb4bf70e",
      "parents": [
        "7e1295d9f8300e8c8d1af01765f475621c19ee1d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 13:07:36 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 13:07:36 2010 -0500"
      },
      "message": "do_add_mount() should sanitize mnt_flags\n\nMNT_WRITE_HOLD shouldn\u0027t leak into new vfsmount and neither\nshould MNT_SHARED (the latter will be set properly, along with\nthe rest of shared-subtree data structures)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7e1295d9f8300e8c8d1af01765f475621c19ee1d",
      "tree": "d6043314012a8620c03f5ddf911f31a5e9564ced",
      "parents": [
        "7b43a79f32c0a05e7562043af98e25c05c89b18e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 13:06:32 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 13:06:32 2010 -0500"
      },
      "message": "CIFS shouldn\u0027t make mountpoints shrinkable\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7b43a79f32c0a05e7562043af98e25c05c89b18e",
      "tree": "920010b3bad9bd2cb7b9f4f2a7305a40400758da",
      "parents": [
        "df1a1ad29739f032f8905310796e558589403d61"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 13:01:26 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 13:01:26 2010 -0500"
      },
      "message": "mnt_flags fixes in do_remount()\n\n* need vfsmount_lock over modifying it\n* need to preserve MNT_SHARED/MNT_UNBINDABLE\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "df1a1ad29739f032f8905310796e558589403d61",
      "tree": "e8ef57ed776c5dd5615a6fbdb74609c631b7f2a9",
      "parents": [
        "8ad08d8a0c3823e9b06ef84c362c9361be323d2d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 12:57:40 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 12:57:40 2010 -0500"
      },
      "message": "attach_recursive_mnt() needs to hold vfsmount_lock over set_mnt_shared()\n\nrace in mnt_flags update\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8ad08d8a0c3823e9b06ef84c362c9361be323d2d",
      "tree": "14b02283f72d5f1345af0cd8c0f305306f6925a6",
      "parents": [
        "9b6e31021122babe3b3a67b102479f740928b5eb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 12:56:08 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 12:56:08 2010 -0500"
      },
      "message": "may_umount() needs namespace_sem\n\notherwise it races with clone_mnt() changing mnt_share/mnt_slaves\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "976ae32be45a736acd49215a7e4771ff91f161c3",
      "tree": "c7baae0475304ef84c8f918e67b087cf7f4388a5",
      "parents": [
        "9e572cc9877ee6c43af60778f6b8d5ba0692d935"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jan 15 12:12:25 2010 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 15 14:49:23 2010 -0800"
      },
      "message": "inotify: only warn once for inotify problems\n\ninotify will WARN() if it finds that the idr and the fsnotify internals\nsomehow got out of sync.  It was only supposed to do this once but due\nto this stupid bug it would warn every single time a problem was\ndetected.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e572cc9877ee6c43af60778f6b8d5ba0692d935",
      "tree": "381c6152ffe3eee6cc34aaa3389836d54cb8b863",
      "parents": [
        "61c39bb354a1f791ba6f562b766a72e508a036ee"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jan 15 12:12:24 2010 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 15 14:49:23 2010 -0800"
      },
      "message": "inotify: do not reuse watch descriptors\n\nSince commit 7e790dd5fc937bc8d2400c30a05e32a9e9eef276 (\"inotify: fix\nerror paths in inotify_update_watch\") inotify changed the manor in which\nit gave watch descriptors back to userspace.  Previous to this commit\ninotify acted like the following:\n\n  inotify_add_watch(X, Y, Z) \u003d 1\n  inotify_rm_watch(X, 1);\n  inotify_add_watch(X, Y, Z) \u003d 2\n\nbut after this patch inotify would return watch descriptors like so:\n\n  inotify_add_watch(X, Y, Z) \u003d 1\n  inotify_rm_watch(X, 1);\n  inotify_add_watch(X, Y, Z) \u003d 1\n\nwhich I saw as equivalent to opening an fd where\n\n  open(file) \u003d 1;\n  close(1);\n  open(file) \u003d 1;\n\nseemed perfectly reasonable.  The issue is that quite a bit of userspace\napparently relies on the behavior in which watch descriptors will not be\nquickly reused.  KDE relies on it, I know some selinux packages rely on\nit, and I have heard complaints from other random sources such as debian\nbug 558981.\n\nAlthough the man page implies what we do is ok, we broke userspace so\nthis patch almost reverts us to the old behavior.  It is still slightly\nracey and I have patches that would fix that, but they are rather large\nand this will fix it for all real world cases.  The race is as follows:\n\n - task1 creates a watch and blocks in idr_new_watch() before it updates\n   the hint.\n - task2 creates a watch and updates the hint.\n - task1 updates the hint with it\u0027s older wd\n - task removes the watch created by task2\n - task adds a new watch and will reuse the wd originally given to task2\n\nit requires moving some locking around the hint (last_wd) but this should\nsolve it for the real world and be -stable safe.\n\nAs a side effect this patch papers over a bug in the lib/idr code which\nis causing a large number WARN\u0027s to pop on people\u0027s system and many\nreports in kerneloops.org.  I\u0027m working on the root cause of that idr\nbug seperately but this should make inotify immune to that issue.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e09f98606dcc156de1146c209d45a0d6d5f51c3f",
      "tree": "dd63ab7c2eaedad409fb0c72d4d675b2d3e9f533",
      "parents": [
        "3daeb42c13567e1505f233f6a699cc0e23c8ab5a"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jan 14 01:33:54 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:49:07 2010 -0600"
      },
      "message": "xfs: xfs_swap_extents needs to handle dynamic fork offsets\n\nWhen swapping extents, we can corrupt inodes by swapping data forks\nthat are in incompatible formats.  This is caused by the two indoes\nhaving different fork offsets due to the presence of an attribute\nfork on an attr2 filesystem.  xfs_fsr tries to be smart about\nsetting the fork offset, but the trick it plays only works on attr1\n(old fixed format attribute fork) filesystems.\n\nChanging the way xfs_fsr sets up the attribute fork will prevent\nthis situation from ever occurring, so in the kernel code we can get\nby with a preventative fix - check that the data fork in the\ndefragmented inode is in a format valid for the inode it is being\nswapped into.  This will lead to files that will silently and\npotentially repeatedly fail defragmentation, so issue a warning to\nthe log when this particular failure occurs to let us know that\nxfs_fsr needs updating/fixing.\n\nTo help identify how to improve xfs_fsr to avoid this issue, add\ntrace points for the inodes being swapped so that we can determine\nwhy the swap was rejected and to confirm that the code is making the\nright decisions and modifications when swapping forks.\n\nA further complication is even when the swap is allowed to proceed\nwhen the fork offset is different between the two inodes then value\nfor the maximum number of extents the data fork can hold can be\nwrong. Make sure these are also set correctly after the swap occurs.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "3daeb42c13567e1505f233f6a699cc0e23c8ab5a",
      "tree": "a5897b35cb4830d73089aace8abd5b2c8bae1d7f",
      "parents": [
        "4b6a46882cca8349e8942e2650c33b11bc571c92"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jan 14 08:44:46 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:46:19 2010 -0600"
      },
      "message": "xfs: fix missing error check in xfs_rtfree_range\n\nWhen xfs_rtfind_forw() returns an error, the block is returned\nuninitialised.  xfs_rtfree_range() is not checking the error return,\nso could be using an uninitialised block number for modifying bitmap\nsummary info.\n\nThe problem was found by gcc when compiling the *userspace* libxfs\ncode - it is an copy of the kernel code with the exact same bug.\ngcc gives an uninitialised variable warning on the userspace code\nbut not on the kernel code. You gotta love the consistency (Mmmm,\nslightly chewy today!).\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "4b6a46882cca8349e8942e2650c33b11bc571c92",
      "tree": "5a5ab0783340fa4acd75a172d857d0077a527809",
      "parents": [
        "126976c7c17d3bdfbc1fe9e0af8bee9f62d14cc6"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jan 11 11:45:21 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:46:02 2010 -0600"
      },
      "message": "xfs: fix stale inode flush avoidance\n\nWhen reclaiming stale inodes, we need to guarantee that inodes are\nunpinned before returning with a \"clean\" status. If we don\u0027t we can\nreclaim inodes that are pinned, leading to use after free in the\ntransaction subsystem as transactions complete.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "126976c7c17d3bdfbc1fe9e0af8bee9f62d14cc6",
      "tree": "01b15c25ad8be7402a54fd090771a12084e8f425",
      "parents": [
        "57817c68229984818fea9e614d6f95249c3fb098"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sun Jan 10 23:51:48 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:45:33 2010 -0600"
      },
      "message": "xfs: Remove inode iolock held check during allocation\n\nlockdep complains about a the lock not being initialised as we do an\nASSERT based check that the lock is not held before we initialise it\nto catch inodes freed with the lock held.\n\nlockdep does this check for us in the lock initialisation code, so\nremove the ASSERT to stop the lockdep warning.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "57817c68229984818fea9e614d6f95249c3fb098",
      "tree": "1c3265ae92ccf51617763a568c4c76be3a596578",
      "parents": [
        "018027be90a6946e8cf3f9b17b5582384f7ed117"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sun Jan 10 23:51:47 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:44:44 2010 -0600"
      },
      "message": "xfs: reclaim all inodes by background tree walks\n\nWe cannot do direct inode reclaim without taking the flush lock to\nensure that we do not reclaim an inode under IO. We check the inode\nis clean before doing direct reclaim, but this is not good enough\nbecause the inode flush code marks the inode clean once it has\ncopied the in-core dirty state to the backing buffer.\n\nIt is the flush lock that determines whether the inode is still\nunder IO, even though it is marked clean, and the inode is still\nrequired at IO completion so we can\u0027t reclaim it even though it is\nclean in core. Hence the requirement that we need to take the flush\nlock even on clean inodes because this guarantees that the inode\nwriteback IO has completed and it is safe to reclaim the inode.\n\nWith delayed write inode flushing, we coul dend up waiting a long\ntime on the flush lock even for a clean inode. The background\nreclaim already handles this efficiently, so avoid all the problems\nby killing the direct reclaim path altogether.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "018027be90a6946e8cf3f9b17b5582384f7ed117",
      "tree": "a8816b9884e21eab9cb3342af9de9ddc28f9f0de",
      "parents": [
        "c8e20be020f234c8d492927a424a7d8bbefd5b5d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sun Jan 10 23:51:46 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:44:21 2010 -0600"
      },
      "message": "xfs: Avoid inodes in reclaim when flushing from inode cache\n\nThe reclaim code will handle flushing of dirty inodes before reclaim\noccurs, so avoid them when determining whether an inode is a\ncandidate for flushing to disk when walking the radix trees.  This\nis based on a test patch from Christoph Hellwig.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "c8e20be020f234c8d492927a424a7d8bbefd5b5d",
      "tree": "ced84d52bf87d72d36a65e3ddca6b4fc4b7f819f",
      "parents": [
        "7284ce6c9f6153d1777df5f310c959724d1bd446"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sun Jan 10 23:51:45 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:43:55 2010 -0600"
      },
      "message": "xfs: reclaim inodes under a write lock\n\nMake the inode tree reclaim walk exclusive to avoid races with\nconcurrent sync walkers and lookups. This is a version of a patch\nposted by Christoph Hellwig that avoids all the code duplication.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "1296cc85c26e94eb865d03f82140f27d598de467",
      "tree": "b8a2bc06ecd992a86179ebcd9c087994c676c291",
      "parents": [
        "5f634d064c709ea02c3cdaa850a08323a4a4bf28"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jan 15 01:27:59 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 15 01:27:59 2010 -0500"
      },
      "message": "ext4: Drop EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE flag\n\nWe should update reserve space if it is delalloc buffer\nand that is indicated by EXT4_GET_BLOCKS_DELALLOC_RESERVE flag.\nSo use EXT4_GET_BLOCKS_DELALLOC_RESERVE in place of\nEXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "5f634d064c709ea02c3cdaa850a08323a4a4bf28",
      "tree": "3f81e9c56cd8348b7bb94f1d54efff696374c929",
      "parents": [
        "1db913823c0f8360fccbd24ca67eb073966a5ffd"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Jan 25 04:00:31 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 25 04:00:31 2010 -0500"
      },
      "message": "ext4: Fix quota accounting error with fallocate\n\nWhen we fallocate a region of the file which we had recently written,\nand which is still in the page cache marked as delayed allocated blocks\nwe need to make sure we don\u0027t do the quota update on writepage path.\nThis is because the needed quota updated would have already be done\nby fallocate.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1db913823c0f8360fccbd24ca67eb073966a5ffd",
      "tree": "ec5f7be2cfa884b04ca3d26c2dee53283fe16ca7",
      "parents": [
        "74d2e4f8d79ae0c4b6ec027958d5b18058662eea"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jan 22 17:06:20 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 22 17:06:20 2010 -0500"
      },
      "message": "ext4: Handle -EDQUOT error on write\n\nWe need to release the journal before we do a write_inode.  Otherwise\nwe could deadlock.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9b6e31021122babe3b3a67b102479f740928b5eb",
      "tree": "aca5a8aa7af09e4aa4c30de4e4479164a44de273",
      "parents": [
        "9850c056559f3633a32d810aaf00ced39437b364"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 13 22:10:57 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 14 09:05:42 2010 -0500"
      },
      "message": "Fix configfs leak\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9850c056559f3633a32d810aaf00ced39437b364",
      "tree": "30e80de94e12ae758736cfb586db39cfa77d69df",
      "parents": [
        "806892e9e12e731a0ca76c8f62ad95cf8eea9614"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 13 15:01:15 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 14 09:05:26 2010 -0500"
      },
      "message": "Fix the -ESTALE handling in do_filp_open()\n\nInstead of playing sick games with path saving, cleanups, just retry\nthe entire thing once with LOOKUP_REVAL added.  Post-.34 we\u0027ll convert\nall -ESTALE handling in there to that style, rather than playing with\nmany retry loops deep in the call chain.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "806892e9e12e731a0ca76c8f62ad95cf8eea9614",
      "tree": "a063df1524ed862ef2475052e1cc1c66de390dc2",
      "parents": [
        "6d125529c6cbfe570ce3bf9a0728548f087499da"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Tue Jan 12 03:36:14 2010 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 14 09:05:26 2010 -0500"
      },
      "message": "ecryptfs: Fix refcnt leak on ecryptfs_follow_link() error path\n\nIf -\u003efollow_link handler return the error, it should decrement\nnd-\u003epath refcnt. But, ecryptfs_follow_link() doesn\u0027t decrement.\n\nThis patch fix it by using usual nd_set_link() style error handling,\ninstead of playing with nd-\u003epath.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6d125529c6cbfe570ce3bf9a0728548f087499da",
      "tree": "89ba434f76d224741bd0e0b0ef02b10a4ff95136",
      "parents": [
        "4ecf09fd3a7c8858198875171b684c73338fad83"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:58:56 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 14 09:05:26 2010 -0500"
      },
      "message": "Fix ACC_MODE() for real\n\ncommit 5300990c0370e804e49d9a59d928c5d53fb73487 had stepped on a rather\nnasty mess: definitions of ACC_MODE used to be different.  Fixed the\nresulting breakage, converting them to variant that takes O_... value;\nall callers have that and it actually simplifies life (see tomoyo part\nof changes).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7b264fc2bef4a3de8bc5ff1a6c5b9e890b069a04",
      "tree": "3193dc707b7c6d89b1136d2f3dac2b649032cd86",
      "parents": [
        "204f2f0e82ec5cecbe671cfe2b132146929213d3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 23 00:43:50 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 14 09:05:25 2010 -0500"
      },
      "message": "hppfs: handle -\u003eput_link()\n\ncurrent code works only because nothing in procfs has non-trivial\n-\u003eput_link().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "204f2f0e82ec5cecbe671cfe2b132146929213d3",
      "tree": "0f57a312898ba3d910289fbee5fcd84e073a06da",
      "parents": [
        "86acdca1b63e6890540fa19495cfc708beff3d8b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 23 00:35:54 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 14 09:05:25 2010 -0500"
      },
      "message": "Kill 9p readlink()\n\nFor symlinks generic_readlink() will work just fine and for directories\nwe don\u0027t want -\u003ereadlink() at all.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "86acdca1b63e6890540fa19495cfc708beff3d8b",
      "tree": "f589566363ef4f77098eba9ced48325f410168e6",
      "parents": [
        "004b35063296b6772fa72404a35b498f1e71e87e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 22 23:45:11 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 14 09:05:25 2010 -0500"
      },
      "message": "fix autofs/afs/etc. magic mountpoint breakage\n\nWe end up trying to kfree() nd.last.name on open(\"/mnt/tmp\", O_CREAT)\nif /mnt/tmp is an autofs direct mount.  The reason is that nd.last_type\nis bogus here; we want LAST_BIND for everything of that kind and we\nget LAST_NORM left over from finding parent directory.\n\nSo make sure that it *is* set properly; set to LAST_BIND before\ndoing -\u003efollow_link() - for normal symlinks it will be changed\nby __vfs_follow_link() and everything else needs it set that way.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e80c14e1ae3cb637d1959a6c9a199ba2e7af5910",
      "tree": "0506046824f7367e62f4a27023de7819eb6b34d9",
      "parents": [
        "7284ce6c9f6153d1777df5f310c959724d1bd446",
        "53281b6d34d44308372d16acb7fb5327609f68b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 13 13:42:49 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 13 13:42:49 2010 -0800"
      },
      "message": "Merge branch \u0027fasync-helper\u0027\n\n* fasync-helper:\n  fasync: split \u0027fasync_helper()\u0027 into separate add/remove functions\n"
    },
    {
      "commit": "2c761270d5520dd84ab0b4e47c24d99ff8503c38",
      "tree": "c23a51fdcc96641661b632d3b3c2c46ad7e53a91",
      "parents": [
        "dbf004d7883b3adb058c0c1a5635bc4ec27651c0"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Jan 12 17:39:16 2010 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 12 21:02:00 2010 -0800"
      },
      "message": "lib: Introduce generic list_sort function\n\nThere are two copies of list_sort() in the tree already, one in the DRM\ncode, another in ubifs.  Now XFS needs this as well.  Create a generic\nlist_sort() function from the ubifs version and convert existing users\nto it so we don\u0027t end up with yet another copy in the tree.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nAcked-by: Dave Airlie \u003cairlied@redhat.com\u003e\nAcked-by: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b4d40a517e0657a081d5d63518c4badd31c60ea",
      "tree": "37b3f593288fd9f8fd97f60a84bd57fef8c0d87a",
      "parents": [
        "79ecb043ea0ae046463f03dea46c5e13a9312205",
        "fd45e4784164d1017521086524e3442318c67370"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:48:48 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:48:48 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: Ensure we force all busy extents in range to disk\n  xfs: Don\u0027t flush stale inodes\n  xfs: fix timestamp handling in xfs_setattr\n  xfs: use DECLARE_EVENT_CLASS\n"
    },
    {
      "commit": "79ecb043ea0ae046463f03dea46c5e13a9312205",
      "tree": "7355a535d159caa8e017a490dc78063f125f4208",
      "parents": [
        "db1fc95744827a04f7e127681493bf1c1d3ab688",
        "ba198098a21a5dc8885fddfb308135bc2f138003"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:48:29 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:48:29 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:\n  GFS2: Use MAX_LFS_FILESIZE for meta inode size\n  GFS2: Fix gfs2_xattr_acl_chmod()\n  GFS2: Fix locking bug in rename\n  GFS2: Ensure uptodate inode size when using O_APPEND\n"
    },
    {
      "commit": "db1fc95744827a04f7e127681493bf1c1d3ab688",
      "tree": "fa1102999c19d48802bca87529cb493460917792",
      "parents": [
        "00fdb75b1959c2f8de8b70bfb63aca422feff2fa",
        "05b5d898235401c489c68e1f3bc5706a29ad5713"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:48:14 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:48:14 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  quota: Fix dquot_transfer for filesystems different from ext4\n"
    },
    {
      "commit": "7f53a09ed40f08416b3029ada8f02252e7596c18",
      "tree": "51d2bef1ca3a4667e5b9058b6f2b365edd101ebd",
      "parents": [
        "d2b34e20c1f431604e0dde910c3ff271c84ed706"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Fri Jan 08 14:43:10 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:34:07 2010 -0800"
      },
      "message": "smaps: fix wrong rss count\n\nA long time ago we regarded zero page as file_rss and vm_normal_page\ndoesn\u0027t return NULL.\n\nBut now, we reinstated ZERO_PAGE and vm_normal_page\u0027s implementation can\nreturn NULL in case of zero page.  Also we don\u0027t count it with file_rss\nany more.\n\nThen, RSS and PSS can\u0027t be matched.  For consistency, Let\u0027s ignore zero\npage in smaps_pte_range.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1306d603fcf1f6682f8575d1ff23631a24184b21",
      "tree": "8e2278cfabf874cb16bf03bd182ae75b87055741",
      "parents": [
        "f146aabfe921006b98dfa4a78506763aedfd3206"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Jan 08 14:42:56 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:34:06 2010 -0800"
      },
      "message": "proc: partially revert \"procfs: provide stack information for threads\"\n\nCommit d899bf7b (procfs: provide stack information for threads) introduced\nto show stack information in /proc/{pid}/status.  But it cause large\nperformance regression.  Unfortunately /proc/{pid}/status is used ps\ncommand too and ps is one of most important component.  Because both to\ntake mmap_sem and page table walk are heavily operation.\n\nIf many process run, the ps performance is,\n\n[before d899bf7b]\n\n% perf stat ps \u003e/dev/null\n\n Performance counter stats for \u0027ps\u0027:\n\n     4090.435806  task-clock-msecs         #      0.032 CPUs\n             229  context-switches         #      0.000 M/sec\n               0  CPU-migrations           #      0.000 M/sec\n             234  page-faults              #      0.000 M/sec\n      8587565207  cycles                   #   2099.425 M/sec\n      9866662403  instructions             #      1.149 IPC\n      3789415411  cache-references         #    926.409 M/sec\n        30419509  cache-misses             #      7.437 M/sec\n\n   128.859521955  seconds time elapsed\n\n[after d899bf7b]\n\n% perf stat  ps  \u003e /dev/null\n\n Performance counter stats for \u0027ps\u0027:\n\n     4305.081146  task-clock-msecs         #      0.028 CPUs\n             480  context-switches         #      0.000 M/sec\n               2  CPU-migrations           #      0.000 M/sec\n             237  page-faults              #      0.000 M/sec\n      9021211334  cycles                   #   2095.480 M/sec\n     10605887536  instructions             #      1.176 IPC\n      3612650999  cache-references         #    839.160 M/sec\n        23917502  cache-misses             #      5.556 M/sec\n\n   152.277819582  seconds time elapsed\n\nThus, this patch revert it. Fortunately /proc/{pid}/task/{tid}/smaps\nprovide almost same information. we can use it.\n\nCommit d899bf7b introduced two features:\n\n 1) Add the annotattion of [thread stack: xxxx] mark to\n    /proc/{pid}/task/{tid}/maps.\n 2) Add StackUsage field to /proc/{pid}/status.\n\nI only revert (2), because I haven\u0027t seen (1) cause regression.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05b5d898235401c489c68e1f3bc5706a29ad5713",
      "tree": "2f8efc6ff1152ed53d297843891b6232a3e14eb1",
      "parents": [
        "3c8ad49b015eb115fbd6982f56d530f53cf57f84"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 06 18:03:36 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 11 13:06:41 2010 +0100"
      },
      "message": "quota: Fix dquot_transfer for filesystems different from ext4\n\nCommit fd8fbfc1 modified the way we find amount of reserved space\nbelonging to an inode. The amount of reserved space is checked\nfrom dquot_transfer and thus inode_reserved_space gets called\neven for filesystems that don\u0027t provide get_reserved_space callback\nwhich results in a BUG.\n\nFix the problem by checking get_reserved_space callback and return 0 if\nthe filesystem does not provide it.\n\nCC: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "ba198098a21a5dc8885fddfb308135bc2f138003",
      "tree": "69202dabd5fd67b46da9ed8af230b8adb98c2b21",
      "parents": [
        "e412bdb1260d13ec5e7b90b537fec2179d6f8989"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 08 13:44:49 2010 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 11 08:57:55 2010 +0000"
      },
      "message": "GFS2: Use MAX_LFS_FILESIZE for meta inode size\n\nUsing ~0ULL was cauing sign issues in filemap_fdatawrite_range, so\nuse MAX_LFS_FILESIZE instead.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fd45e4784164d1017521086524e3442318c67370",
      "tree": "aaaf8f524d4bf094f6debadc6e580f81038f4915",
      "parents": [
        "44e08c45cc14e6190a424be8d450070c8e508fad"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sat Jan 02 02:38:56 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Sun Jan 10 12:22:02 2010 -0600"
      },
      "message": "xfs: Ensure we force all busy extents in range to disk\n\nWhen we search for and find a busy extent during allocation we\nforce the log out to ensure the extent free transaction is on\ndisk before the allocation transaction. The current implementation\nhas a subtle bug in it--it does not handle multiple overlapping\nranges.\n\nThat is, if we free lots of little extents into a single\ncontiguous extent, then allocate the contiguous extent, the busy\nsearch code stops searching at the first extent it finds that\noverlaps the allocated range. It then uses the commit LSN of the\ntransaction to force the log out to.\n\nUnfortunately, the other busy ranges might have more recent\ncommit LSNs than the first busy extent that is found, and this\nresults in xfs_alloc_search_busy() returning before all the\nextent free transactions are on disk for the range being\nallocated. This can lead to potential metadata corruption or\nstale data exposure after a crash because log replay won\u0027t replay\nall the extent free transactions that cover the allocation range.\n\nModified-by: Alex Elder \u003caelder@sgi.com\u003e\n\n(Dropped the \"found\" argument from the xfs_alloc_busysearch trace\nevent.)\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "44e08c45cc14e6190a424be8d450070c8e508fad",
      "tree": "f0938a953d0bce87cade91ec753293c305925296",
      "parents": [
        "d6d59bada372bcf8bd36c3bbc71c485c29dd2a4b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sat Jan 02 02:39:40 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Sun Jan 10 12:22:00 2010 -0600"
      },
      "message": "xfs: Don\u0027t flush stale inodes\n\nBecause inodes remain in cache much longer than inode buffers do\nunder memory pressure, we can get the situation where we have\nstale, dirty inodes being reclaimed but the backing storage has\nbeen freed.  Hence we should never, ever flush XFS_ISTALE inodes\nto disk as there is no guarantee that the backing buffer is in\ncache and still marked stale when the flush occurs.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "d6d59bada372bcf8bd36c3bbc71c485c29dd2a4b",
      "tree": "140a4625597ffac953ce1d0dbbfed7caa436e053",
      "parents": [
        "ea9a48881e093a41a79305fb1545ca0794b203dc"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 23 16:09:13 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Sun Jan 10 12:21:58 2010 -0600"
      },
      "message": "xfs: fix timestamp handling in xfs_setattr\n\nWe currently have some rather odd code in xfs_setattr for\nupdating the a/c/mtime timestamps:\n\n - first we do a non-transaction update if all three are updated\n   together\n - second we implicitly update the ctime for various changes\n   instead of relying on the ATTR_CTIME flag\n - third we set the timestamps to the current time instead of the\n   arguments in the iattr structure in many cases.\n\nThis patch makes sure we update it in a consistent way:\n\n - always transactional\n - ctime is only updated if ATTR_CTIME is set or we do a size\n   update, which is a special case\n - always to the times passed in from the caller instead of the\n   current time\n\nThe only non-size caller of xfs_setattr that doesn\u0027t come from\nthe VFS is updated to set ATTR_CTIME and pass in a valid ctime\nvalue.\n\nReported-by: Eric Blake \u003cebb9@byu.net\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "ea9a48881e093a41a79305fb1545ca0794b203dc",
      "tree": "b17a7fec50d6a1552190235470a24be2078c95ca",
      "parents": [
        "3c8ad49b015eb115fbd6982f56d530f53cf57f84"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Dec 21 14:03:03 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Sun Jan 10 12:21:56 2010 -0600"
      },
      "message": "xfs: use DECLARE_EVENT_CLASS\n\nUsing DECLARE_EVENT_CLASS allows us to to use trace event code\ninstead of duplicating it in the binary.  This was not available\nbefore 2.6.33 so it had to be done as a separate step once the\nprerequisite was merged.\n\nThis only requires changes to xfs_trace.h and the results are\nrather impressive:\n\nhch@brick:~/work/linux-2.6/obj-kvm$ size fs/xfs/xfs.o*\ntext\t   data\t    bss\t    dec\t    hex\tfilename\n 607732\t  41884\t   3616\t 653232\t  9f7b0\tfs/xfs/xfs.o\n1026732\t  41884\t   3808\t1072424\t 105d28\tfs/xfs/xfs.o.old\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "82062e7b50280bcf0feca70ac35a44f375602976",
      "tree": "0321bff42945768990a92c3770d4270497c0e8ee",
      "parents": [
        "dbd6a7cfead4fa2d7ad3fefe47168fcb146ac5ba",
        "31370f62baa1460b785cee9944bdcaf63d19e567"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 08 14:03:55 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 08 14:03:55 2010 -0800"
      },
      "message": "Merge branch \u0027reiserfs/kill-bkl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027reiserfs/kill-bkl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  reiserfs: Relax reiserfs_xattr_set_handle() while acquiring xattr locks\n  reiserfs: Fix unreachable statement\n  reiserfs: Don\u0027t call reiserfs_get_acl() with the reiserfs lock\n  reiserfs: Relax lock on xattr removing\n  reiserfs: Relax the lock before truncating pages\n  reiserfs: Fix recursive lock on lchown\n  reiserfs: Fix mistake in down_write() conversion\n"
    },
    {
      "commit": "dbd6a7cfead4fa2d7ad3fefe47168fcb146ac5ba",
      "tree": "826ac108e6da2b23edbd6dcd9dc126a2ccbbf1c9",
      "parents": [
        "d86527ddcab4684d1a051b5f35f023b4374b1271",
        "a539bd8c86549b545b4ed27a0cfaf53fe649054d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 08 13:57:32 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 08 13:57:32 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: kill some warnings on i386 builds\n"
    },
    {
      "commit": "e2b6d02cca533715d6be40fdfc32d3cc47333358",
      "tree": "0b5acc01e1d464f4bd9c133f7cee0de3df7cbc61",
      "parents": [
        "9035a6450d124a7787e5e3272b630a79d201555f",
        "56335936de1a41c8978fde62b2158af77ddc7258"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 08 13:55:14 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 08 13:55:14 2010 -0800"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  nfs: fix oops in nfs_rename()\n  sunrpc: fix build-time warning\n  sunrpc: on successful gss error pipe write, don\u0027t return error\n  SUNRPC: Fix the return value in gss_import_sec_context()\n  SUNRPC: Fix up an error return value in gss_import_sec_context_kerberos()\n"
    },
    {
      "commit": "a539bd8c86549b545b4ed27a0cfaf53fe649054d",
      "tree": "b31f3a00cc96147e3872534ba0d713f828f89f5b",
      "parents": [
        "74d2e4f8d79ae0c4b6ec027958d5b18058662eea"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Dec 17 00:20:07 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 08 13:32:29 2010 -0600"
      },
      "message": "xfs: kill some warnings on i386 builds\n\nRandy Dunlap Reported printk() format-related warnings reported\non i386 builds in his environment.  Dave Chinner provided this\npatch to eliminate them.\n\nSigned-off by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "e412bdb1260d13ec5e7b90b537fec2179d6f8989",
      "tree": "cf0a89cfefd556c414c5b4a1f47b71ad7218865a",
      "parents": [
        "24b977b5fdea09bf356428870d32c09a275c8a3e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Dec 21 13:55:28 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 08 13:42:59 2010 +0000"
      },
      "message": "GFS2: Fix gfs2_xattr_acl_chmod()\n\nThe ref counting for the bh returned by gfs2_ea_find() was\nwrong. This patch ensures that we always drop the ref count\nto that bh correctly.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "24b977b5fdea09bf356428870d32c09a275c8a3e",
      "tree": "60b93ab4d8ac034952d658a35057d5e729bd331a",
      "parents": [
        "56aa616a03feca630d5afce647367a5d8cfc67b8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Dec 09 13:55:12 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 08 13:42:42 2010 +0000"
      },
      "message": "GFS2: Fix locking bug in rename\n\nThe rename code was taking a resource group lock in cases where\nit wasn\u0027t actually needed, this caused problems if the rename\nwas resulting in an inode being unlinked. The patch ensures that\nwe only take the rgrp lock early if it is really needed.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "56aa616a03feca630d5afce647367a5d8cfc67b8",
      "tree": "a4b4feb0d2ac0f329b98748445adb90a6458a2e9",
      "parents": [
        "74d2e4f8d79ae0c4b6ec027958d5b18058662eea"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Dec 08 10:25:33 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 08 13:42:27 2010 +0000"
      },
      "message": "GFS2: Ensure uptodate inode size when using O_APPEND\n\nThe VFS reads the inode size during generic_file_aio_write() but\nwith no locking around it. In order to get the expected result\nfrom O_APPEND opens, this patch updated the inode size before\ncalling generic_file_aio_write()\n\nThere is of course still a race here, in that there is nothing to\nprevent another node coming in and extending the file in the\nmean time. On the other hand, when used with file locking this\nwill ensure that the expected results are obtained.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "31370f62baa1460b785cee9944bdcaf63d19e567",
      "tree": "cc3846f1a623366c61c4f16860f4ed62c68ea03f",
      "parents": [
        "e0baec1b63632f25ea8101b76edaca0accc061ec"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jan 07 15:55:31 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jan 07 16:02:53 2010 +0100"
      },
      "message": "reiserfs: Relax reiserfs_xattr_set_handle() while acquiring xattr locks\n\nFix remaining xattr locks acquired in reiserfs_xattr_set_handle()\nwhile we are holding the reiserfs lock to avoid lock inversions.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e0baec1b63632f25ea8101b76edaca0accc061ec",
      "tree": "d4395fde34e5c1d714c14e17ffe38f280ebadb0f",
      "parents": [
        "6c28705418de012216161b14a2ff1dda3da3d786"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Wed Jan 06 23:09:50 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jan 07 14:03:18 2010 +0100"
      },
      "message": "reiserfs: Fix unreachable statement\n\nStanse found an unreachable statement in reiserfs_ioctl. There is a\nif followed by error assignment and `break\u0027 with no braces. Add the\nbraces so that we don\u0027t break every time, but only in error case,\nso that REISERFS_IOC_SETVERSION actually works when it returns no\nerror.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Reiserfs \u003creiserfs-devel@vger.kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "6c28705418de012216161b14a2ff1dda3da3d786",
      "tree": "f9765f8ef8dc55a61ba354fb2516a4d172ef4591",
      "parents": [
        "4f3be1b5a98587b86cae05aa5d129dd0b3fff466"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jan 07 12:57:47 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jan 07 13:46:48 2010 +0100"
      },
      "message": "reiserfs: Don\u0027t call reiserfs_get_acl() with the reiserfs lock\n\nreiserfs_get_acl is usually not called under the reiserfs lock,\nas it doesn\u0027t need it. But it happens when it is called by\nreiserfs_acl_chmod(), which creates a dependency inversion against\nthe private xattr inodes mutexes for the given inode.\n\nWe need to call it without the reiserfs lock, especially since\nit\u0027s unnecessary.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "04e4f2b18c8de1389d1e00fef0f42a8099910daf",
      "tree": "cd1ae20d055552a7ea9b9a21ee01a052589a66f5",
      "parents": [
        "93939f4e5df30e6229a0b5257fdcaf3faf88471c"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Wed Jan 06 17:23:17 2010 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:16:02 2010 -0800"
      },
      "message": "FDPIC: Respect PT_GNU_STACK exec protection markings when creating NOMMU stack\n\nThe current code will load the stack size and protection markings, but\nthen only use the markings in the MMU code path.  The NOMMU code path\nalways passes PROT_EXEC to the mmap() call.  While this doesn\u0027t matter\nto most people whilst the code is running, it will cause a pointless\nicache flush when starting every FDPIC application.  Typically this\nicache flush will be of a region on the order of 128KB in size, or may\nbe the entire icache, depending on the facilities available on the CPU.\n\nIn the case where the arch default behaviour seems to be desired\n(EXSTACK_DEFAULT), we probe VM_STACK_FLAGS for VM_EXEC to determine\nwhether we should be setting PROT_EXEC or not.\n\nFor arches that support an MPU (Memory Protection Unit - an MMU without\nthe virtual mapping capability), setting PROT_EXEC or not will make an\nimportant difference.\n\nIt should be noted that this change also affects the executability of\nthe brk region, since ELF-FDPIC has that share with the stack.  However,\nthis is probably irrelevant as NOMMU programs aren\u0027t likely to use the\nbrk region, preferring instead allocation via mmap().\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93939f4e5df30e6229a0b5257fdcaf3faf88471c",
      "tree": "f30acb3e4a35ea96b342f3b1dd25700e7b531def",
      "parents": [
        "b1c0ec8966fa79891b796f58bf2bda1026ca5566",
        "b292cf9ce70d221c3f04ff62db5ab13d9a249ca8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:10:15 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:10:15 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux:\n  sunrpc: fix peername failed on closed listener\n  nfsd: make sure data is on disk before calling -\u003efsync\n  nfsd: fix \"insecure\" export option\n"
    },
    {
      "commit": "56335936de1a41c8978fde62b2158af77ddc7258",
      "tree": "f0061bef629a1c6a14e08f1b660b3beca0adc7cd",
      "parents": [
        "6c8530993e1fdf1d6af0403e796fe14d80b4b097"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Wed Jan 06 18:48:26 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 06 18:48:26 2010 -0500"
      },
      "message": "nfs: fix oops in nfs_rename()\n\nRecent change is missing to update \"rehash\".  With that change, it will\nbecome the cause of adding dentry to hash twice.\n\nThis explains the reason of Oops (dereference the freed dentry in\n__d_lookup()) on my machine.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nReported-by: Marvin \u003cmarvin24@gmx.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7211a4e859ad070b28545c06e0a6cb60b3b8aa31",
      "tree": "2a769132446f73cf593661428e68d7086168a5b2",
      "parents": [
        "f69ac2f5a36948e1adf071074414c5d1907b89b7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Dec 25 17:44:45 2009 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 06 17:37:26 2010 -0500"
      },
      "message": "nfsd: make sure data is on disk before calling -\u003efsync\n\nnfsd is not using vfs_fsync, so I missed it when changing the calling\nconvention during the 2.6.32 window.  This patch fixes it to not only\nstart the data writeout, but also wait for it to complete before calling\ninto -\u003efsync.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c6f7afaeeda5b3c42ea8d7b27e197d223a04675e",
      "tree": "9a86bc9593ef8219bfc469e277d1b327f38aed9e",
      "parents": [
        "34e2fde8a496cf9d7c184ef12eafd3dd854586f1",
        "efd124b999fb4d426b30675f1684521af0872789"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 01:41:07 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 01:41:07 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd\n\n* \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd:\n  exofs: simple_write_end does not mark_inode_dirty\n  exofs: fix pnfs_osd re-definitions in pre-pnfs trees\n"
    },
    {
      "commit": "6307daad8496f5807a2ef60cbada55fe3b59c44e",
      "tree": "fc2e3a56f89c445415fff1e9ce18312f7392b5b4",
      "parents": [
        "f843b0fcc70094d87fea8c7004937388c316ea7a",
        "86470e98cc52532006f47a6cb96d3ebe1ba7ad97"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 05 16:01:04 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 05 16:01:04 2010 -0800"
      },
      "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: Handle O_DIRECT when writing to a refcounted cluster.\n"
    },
    {
      "commit": "efd124b999fb4d426b30675f1684521af0872789",
      "tree": "f9421d61b3c4faf682fc1a52b72b241fa9b37558",
      "parents": [
        "89be503021f550575fc896671b569941140b2c2e"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun Dec 27 17:01:42 2009 +0200"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Jan 05 09:14:32 2010 +0200"
      },
      "message": "exofs: simple_write_end does not mark_inode_dirty\n\nexofs uses simple_write_end() for it\u0027s .write_end handler. But\nit is not enough because simple_write_end() does not call\nmark_inode_dirty() when it extends i_size. So even if we do\ncall mark_inode_dirty at beginning of write out, with a very\nlong IO and a saturated system we might get the .write_inode()\ncalled while still extend-writing to file and miss out on the last\ni_size updates.\n\nSo override .write_end, call simple_write_end(), and afterwords if\ni_size was changed call mark_inode_dirty().\n\nIt stands to logic that since simple_write_end() was the one extending\ni_size it should also call mark_inode_dirty(). But it looks like all\nusers of simple_write_end() are memory-bound pseudo filesystems, who\ncould careless about mark_inode_dirty(). I might submit a\nwarning-comment patch to simple_write_end() in future.\n\nCC: Stable \u003cstable@kernel.org\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n"
    },
    {
      "commit": "89be503021f550575fc896671b569941140b2c2e",
      "tree": "123d325b3cfd21215eee418c4089ce4ceca663d5",
      "parents": [
        "c5974b835a909ff15c3b7e6cf6789b5eb919f419"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Mon Dec 21 16:36:23 2009 +0200"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Jan 05 09:14:32 2010 +0200"
      },
      "message": "exofs: fix pnfs_osd re-definitions in pre-pnfs trees\n\nSome on disk exofs constants and types are defined in the pnfs_osd_xdr.h\nfile. Since we needed these types before the pnfs-objects code was\naccepted to mainline we duplicated the minimal needed definitions into\nan exofs local header. The definitions where conditionally included\ndepending on !CONFIG_PNFS defined. So if PNFS was present in the tree\ndefinitions are taken from there and if not they are defined locally.\n\nThat was all good but, the CONFIG_PNFS is planed to be included upstream\nbefore the pnfs-objects is also included. (The first pnfs batch might be\npnfs-files only)\n\nSo condition exofs local definitions on the absence of pnfs_osd_xdr.h\ninclusion (__PNFS_OSD_XDR_H__ not defined). User code must make sure\nthat in future pnfs_osd_xdr.h will be included before fs/exofs/pnfs.h,\nwhich happens to be so in current code.\n\nOnce pnfs-objects hits mainline, exofs\u0027s local header will be removed.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n"
    },
    {
      "commit": "4f3be1b5a98587b86cae05aa5d129dd0b3fff466",
      "tree": "f4d9acd840357ccdd6d5e667132996c050d0a9fa",
      "parents": [
        "108d3943c021f0b66e860ba98ded40b82b677bd7"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jan 05 02:14:30 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jan 05 08:00:50 2010 +0100"
      },
      "message": "reiserfs: Relax lock on xattr removing\n\nWhen we remove an xattr, we call lookup_and_delete_xattr()\nthat takes some private xattr inodes mutexes. But we hold\nthe reiserfs lock at this time, which leads to dependency\ninversions.\n\nWe can safely call lookup_and_delete_xattr() without the\nreiserfs lock, where xattr inodes lookups only need the\nxattr inodes mutexes.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "108d3943c021f0b66e860ba98ded40b82b677bd7",
      "tree": "0567b063d5365e24bb418476310f412936e4dd8c",
      "parents": [
        "5fe1533fda8ae005541bd418a7a8bc4fa0cda522"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jan 05 00:15:38 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jan 05 08:00:29 2010 +0100"
      },
      "message": "reiserfs: Relax the lock before truncating pages\n\nWhile truncating a file, reiserfs_setattr() calls inode_setattr()\nthat will truncate the mapping for the given inode, but for that\nit needs the pages locks.\n\nIn order to release these, the owners need the reiserfs lock to\ncomplete their jobs. But they can\u0027t, as we don\u0027t release it before\ncalling inode_setattr().\n\nWe need to do that to fix the following softlockups:\n\nINFO: task flush-8:0:2149 blocked for more than 120 seconds.\n\"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\nflush-8:0     D f51af998     0  2149      2 0x00000000\n f51af9ac 00000092 00000002 f51af998 c2803304 00000000 c1894ad0 010f3000\n f51af9cc c1462604 c189ef80 f51af974 c1710304 f715b450 f715b5ec c2807c40\n 00000000 0005bb00 c2803320 c102c55b c1710304 c2807c50 c2803304 00000246\nCall Trace:\n [\u003cc1462604\u003e] ? schedule+0x434/0xb20\n [\u003cc102c55b\u003e] ? resched_task+0x4b/0x70\n [\u003cc106fa22\u003e] ? mark_held_locks+0x62/0x80\n [\u003cc146414d\u003e] ? mutex_lock_nested+0x1fd/0x350\n [\u003cc14640b9\u003e] mutex_lock_nested+0x169/0x350\n [\u003cc1178cde\u003e] ? reiserfs_write_lock+0x2e/0x40\n [\u003cc1178cde\u003e] reiserfs_write_lock+0x2e/0x40\n [\u003cc11719a2\u003e] do_journal_end+0xc2/0xe70\n [\u003cc1172912\u003e] journal_end+0xb2/0x120\n [\u003cc11686b3\u003e] ? pathrelse+0x33/0xb0\n [\u003cc11729e4\u003e] reiserfs_end_persistent_transaction+0x64/0x70\n [\u003cc1153caa\u003e] reiserfs_get_block+0x12ba/0x15f0\n [\u003cc106fa22\u003e] ? mark_held_locks+0x62/0x80\n [\u003cc1154b24\u003e] reiserfs_writepage+0xa74/0xe80\n [\u003cc1465a27\u003e] ? _raw_spin_unlock_irq+0x27/0x50\n [\u003cc11f3d25\u003e] ? radix_tree_gang_lookup_tag_slot+0x95/0xc0\n [\u003cc10b5377\u003e] ? find_get_pages_tag+0x127/0x1a0\n [\u003cc106fa22\u003e] ? mark_held_locks+0x62/0x80\n [\u003cc106fcd4\u003e] ? trace_hardirqs_on_caller+0x124/0x170\n [\u003cc10bc1e0\u003e] __writepage+0x10/0x40\n [\u003cc10bc9ab\u003e] write_cache_pages+0x16b/0x320\n [\u003cc10bc1d0\u003e] ? __writepage+0x0/0x40\n [\u003cc10bcb88\u003e] generic_writepages+0x28/0x40\n [\u003cc10bcbd5\u003e] do_writepages+0x35/0x40\n [\u003cc11059f7\u003e] writeback_single_inode+0xc7/0x330\n [\u003cc11067b2\u003e] writeback_inodes_wb+0x2c2/0x490\n [\u003cc1106a86\u003e] wb_writeback+0x106/0x1b0\n [\u003cc1106cf6\u003e] wb_do_writeback+0x106/0x1e0\n [\u003cc1106c18\u003e] ? wb_do_writeback+0x28/0x1e0\n [\u003cc1106e0a\u003e] bdi_writeback_task+0x3a/0xb0\n [\u003cc10cbb13\u003e] bdi_start_fn+0x63/0xc0\n [\u003cc10cbab0\u003e] ? bdi_start_fn+0x0/0xc0\n [\u003cc105d1f4\u003e] kthread+0x74/0x80\n [\u003cc105d180\u003e] ? kthread+0x0/0x80\n [\u003cc100327a\u003e] kernel_thread_helper+0x6/0x10\n3 locks held by flush-8:0/2149:\n #0:  (\u0026type-\u003es_umount_key#30){+++++.}, at: [\u003cc110676f\u003e] writeback_inodes_wb+0x27f/0x490\n #1:  (\u0026journal-\u003ej_mutex){+.+...}, at: [\u003cc117199a\u003e] do_journal_end+0xba/0xe70\n #2:  (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cc1178cde\u003e] reiserfs_write_lock+0x2e/0x40\nINFO: task fstest:3813 blocked for more than 120 seconds.\n\"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\nfstest        D 00000002     0  3813   3812 0x00000000\n f5103c94 00000082 f5103c40 00000002 f5ad5450 00000007 f5103c28 011f3000\n 00000006 f5ad5450 c10bb005 00000480 c1710304 f5ad5450 f5ad55ec c2907c40\n 00000001 f5ad5450 f5103c74 00000046 00000002 f5ad5450 00000007 f5103c6c\nCall Trace:\n [\u003cc10bb005\u003e] ? free_hot_cold_page+0x1d5/0x280\n [\u003cc1462d64\u003e] io_schedule+0x74/0xc0\n [\u003cc10b5a45\u003e] sync_page+0x35/0x60\n [\u003cc146325a\u003e] __wait_on_bit_lock+0x4a/0x90\n [\u003cc10b5a10\u003e] ? sync_page+0x0/0x60\n [\u003cc10b59e5\u003e] __lock_page+0x85/0x90\n [\u003cc105d660\u003e] ? wake_bit_function+0x0/0x60\n [\u003cc10bf654\u003e] truncate_inode_pages_range+0x1e4/0x2d0\n [\u003cc10bf75f\u003e] truncate_inode_pages+0x1f/0x30\n [\u003cc10bf7cf\u003e] truncate_pagecache+0x5f/0xa0\n [\u003cc10bf86a\u003e] vmtruncate+0x5a/0x70\n [\u003cc10fdb7d\u003e] inode_setattr+0x5d/0x190\n [\u003cc1150117\u003e] reiserfs_setattr+0x1f7/0x2f0\n [\u003cc1464569\u003e] ? down_write+0x49/0x70\n [\u003cc10fde01\u003e] notify_change+0x151/0x330\n [\u003cc10e6f3d\u003e] do_truncate+0x6d/0xa0\n [\u003cc10f4ce2\u003e] do_filp_open+0x9a2/0xcf0\n [\u003cc1465aec\u003e] ? _raw_spin_unlock+0x2c/0x50\n [\u003cc10fec50\u003e] ? alloc_fd+0xe0/0x100\n [\u003cc10e602d\u003e] do_sys_open+0x6d/0x130\n [\u003cc1002cfb\u003e] ? sysenter_exit+0xf/0x16\n [\u003cc10e615e\u003e] sys_open+0x2e/0x40\n [\u003cc1002ccc\u003e] sysenter_do_call+0x12/0x32\n3 locks held by fstest/3813:\n #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#4){+.+.+.}, at: [\u003cc10e6f33\u003e] do_truncate+0x63/0xa0\n #1:  (\u0026sb-\u003es_type-\u003ei_alloc_sem_key#3){+.+.+.}, at: [\u003cc10fdf07\u003e] notify_change+0x257/0x330\n #2:  (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cc1178c8e\u003e] reiserfs_write_lock_once+0x2e/0x50\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5fe1533fda8ae005541bd418a7a8bc4fa0cda522",
      "tree": "411dd7c99f884e914a34ce91d8f282bbc70c63c8",
      "parents": [
        "f3e22f48f37c1e14441c9f72ca8e63b1d4516745"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Jan 04 22:04:01 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jan 05 07:59:38 2010 +0100"
      },
      "message": "reiserfs: Fix recursive lock on lchown\n\nOn chown, reiserfs will call reiserfs_setattr() to change the owner\nof the given inode, but it may also recursively call\nreiserfs_setattr() to propagate the owner change to the private xattr\nfiles for this inode.\n\nHence, the reiserfs lock may be acquired twice which is not wanted\nas reiserfs_setattr() calls journal_begin() that is going to try to\nrelax the lock in order to safely acquire the journal mutex.\n\nUsing reiserfs_write_lock_once() from reiserfs_setattr() solves\nthe problem.\n\nThis fixes the following warning, that precedes a lockdep report.\n\nWARNING: at fs/reiserfs/lock.c:95 reiserfs_lock_check_recursive+0x3f/0x50()\nHardware name: MS-7418\nUnwanted recursive reiserfs lock!\nPid: 4189, comm: fsstress Not tainted 2.6.33-rc2-tip-atom+ #195\nCall Trace:\n [\u003cc1178bff\u003e] ? reiserfs_lock_check_recursive+0x3f/0x50\n [\u003cc1178bff\u003e] ? reiserfs_lock_check_recursive+0x3f/0x50\n [\u003cc103f7ac\u003e] warn_slowpath_common+0x6c/0xc0\n [\u003cc1178bff\u003e] ? reiserfs_lock_check_recursive+0x3f/0x50\n [\u003cc103f84b\u003e] warn_slowpath_fmt+0x2b/0x30\n [\u003cc1178bff\u003e] reiserfs_lock_check_recursive+0x3f/0x50\n [\u003cc1172ae3\u003e] do_journal_begin_r+0x83/0x350\n [\u003cc1172f2d\u003e] journal_begin+0x7d/0x140\n [\u003cc106509a\u003e] ? in_group_p+0x2a/0x30\n [\u003cc10fda71\u003e] ? inode_change_ok+0x91/0x140\n [\u003cc115007d\u003e] reiserfs_setattr+0x15d/0x2e0\n [\u003cc10f9bf3\u003e] ? dput+0xe3/0x140\n [\u003cc1465adc\u003e] ? _raw_spin_unlock+0x2c/0x50\n [\u003cc117831d\u003e] chown_one_xattr+0xd/0x10\n [\u003cc11780a3\u003e] reiserfs_for_each_xattr+0x113/0x2c0\n [\u003cc1178310\u003e] ? chown_one_xattr+0x0/0x10\n [\u003cc14641e9\u003e] ? mutex_lock_nested+0x2a9/0x350\n [\u003cc117826f\u003e] reiserfs_chown_xattrs+0x1f/0x60\n [\u003cc106509a\u003e] ? in_group_p+0x2a/0x30\n [\u003cc10fda71\u003e] ? inode_change_ok+0x91/0x140\n [\u003cc1150046\u003e] reiserfs_setattr+0x126/0x2e0\n [\u003cc1177c20\u003e] ? reiserfs_getxattr+0x0/0x90\n [\u003cc11b0d57\u003e] ? cap_inode_need_killpriv+0x37/0x50\n [\u003cc10fde01\u003e] notify_change+0x151/0x330\n [\u003cc10e659f\u003e] chown_common+0x6f/0x90\n [\u003cc10e67bd\u003e] sys_lchown+0x6d/0x80\n [\u003cc1002ccc\u003e] sysenter_do_call+0x12/0x32\n---[ end trace 7c2b77224c1442fc ]---\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "846f99749ab68bbc7f75c74fec305de675b1a1bf",
      "tree": "4c1ca68cfea804bd5215d57844a16f69c566aedc",
      "parents": [
        "3e27249c84beed1c79d767b350e52ad038db9053"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Jan 02 13:37:12 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 04 12:34:46 2010 -0800"
      },
      "message": "sysfs: Add lockdep annotations for the sysfs active reference\n\nHolding locks over device_del -\u003e kobject_del -\u003e sysfs_deactivate can\ncause deadlocks if those same locks are grabbed in sysfs show or store\nmethods.\n\nThe I model s_active count + completion as a sleeping read/write lock.\nI describe to lockdep sysfs_get_active as a read_trylock,\nsysfs_put_active as a read_unlock, and sysfs_deactivate as a\nwrite_lock and write_unlock pair.  This seems to capture the essence\nfor purposes of finding deadlocks, and in my testing gives finds real\nissues and ignores non-issues.\n\nThis brings us back to holding locks over kobject_del is a problem\nthat ideally we should find a way of addressing, but at least lockdep\ncan tell us about the problems instead of requiring developers to debug\nrare strange system deadlocks, that happen when sysfs files are removed\nwhile being written to.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d4d3b19212a1045ff8224e680375076b3677ede7",
      "tree": "a6ef0044ca7afbc3ddb631a2e158cc8a3b7ba7ba",
      "parents": [
        "e43c259777999d19532cf418ca69ce1288b42edc",
        "2f48912d1443a796f10c42c89cb386f0e3eca04d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 04 12:32:09 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 04 12:32:09 2010 -0800"
      },
      "message": "Merge branch \u0027sh/for-2.6.33\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* \u0027sh/for-2.6.33\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:\n  binfmt_elf_fdpic: Fix build breakage introduced by coredump changes.\n  sh: update defconfigs.\n  sh: Don\u0027t default enable PMB support.\n  sh: Disable PMB for SH4AL-DSP CPUs.\n  sh: Only provide a PCLK definition for legacy CPG CPUs.\n"
    },
    {
      "commit": "e43c259777999d19532cf418ca69ce1288b42edc",
      "tree": "d8fa5de63560d13917df4843f70a73189f77a33d",
      "parents": [
        "3e8d95d95eaf4b332f6e1862ffbaa80c24780767",
        "9d0be50230b333005635967f7ecd4897dbfd181b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 04 12:31:52 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 04 12:31:52 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: Calculate metadata requirements more accurately\n  ext4: Fix accounting of reserved metadata blocks\n"
    },
    {
      "commit": "a87da40875f5510866a699b72818cce09b0b9040",
      "tree": "bc8d18944263c8c0c76103072951c75ce77867da",
      "parents": [
        "45d28b097280a78893ce25a5d0db41e6a2717853",
        "6aff43f817ddc54fcd6f0215bfba5d334b0bbbbd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 04 12:28:26 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 04 12:28:26 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:\n  nilfs2: update mailing list address\n  nilfs2: Storage class should be before const qualifier\n  nilfs2: trivial coding style fix\n"
    },
    {
      "commit": "2f48912d1443a796f10c42c89cb386f0e3eca04d",
      "tree": "bbe8d4b4f095d7b810eb149273cae2aa4494c537",
      "parents": [
        "7dbcd8c55fa9b39fe27383b697b8989697c1e1c5"
      ],
      "author": {
        "name": "Daisuke HATAYAMA",
        "email": "d.hatayama@jp.fujitsu.com",
        "time": "Mon Jan 04 15:42:14 2010 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Jan 04 15:42:14 2010 +0900"
      },
      "message": "binfmt_elf_fdpic: Fix build breakage introduced by coredump changes.\n\nCommit f6151dfea21496d43dbaba32cfcd9c9f404769bc introduces build\nbreakage, so this patch fixes it together with some printk formatting\ncleanup.\n\nSigned-off-by: Daisuke HATAYAMA \u003cd.hatayama@jp.fujitsu.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "f3e22f48f37c1e14441c9f72ca8e63b1d4516745",
      "tree": "762d2fcf7d0c087413fe54897a63b6424aceef84",
      "parents": [
        "835d5247d98f46e35d007dcfa6215e526ca33360"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Jan 03 03:44:53 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Jan 03 03:44:53 2010 +0100"
      },
      "message": "reiserfs: Fix mistake in down_write() conversion\n\nFix a mistake in commit 0719d3434747889b314a1e8add776418c4148bcf\n(reiserfs: Fix reiserfs lock \u003c-\u003e i_xattr_sem dependency inversion)\nthat has converted a down_write() into a down_read() accidentally.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45d28b097280a78893ce25a5d0db41e6a2717853",
      "tree": "0c2049700c5fca3fc9d73d2f347fab21e84765f8",
      "parents": [
        "4207a152bc242effd0b8231143aa5b9f7a1593a9",
        "835d5247d98f46e35d007dcfa6215e526ca33360"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 02 11:17:05 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 02 11:17:05 2010 -0800"
      },
      "message": "Merge branch \u0027reiserfs/kill-bkl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027reiserfs/kill-bkl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  reiserfs: Safely acquire i_mutex from xattr_rmdir\n  reiserfs: Safely acquire i_mutex from reiserfs_for_each_xattr\n  reiserfs: Fix journal mutex \u003c-\u003e inode mutex lock inversion\n  reiserfs: Fix unwanted recursive reiserfs lock in reiserfs_unlink()\n  reiserfs: Relax lock before open xattr dir in reiserfs_xattr_set_handle()\n  reiserfs: Relax reiserfs lock while freeing the journal\n  reiserfs: Fix reiserfs lock \u003c-\u003e i_mutex dependency inversion on xattr\n  reiserfs: Warn on lock relax if taken recursively\n  reiserfs: Fix reiserfs lock \u003c-\u003e i_xattr_sem dependency inversion\n  reiserfs: Fix remaining in-reclaim-fs \u003c-\u003e reclaim-fs-on locking inversion\n  reiserfs: Fix reiserfs lock \u003c-\u003e inode mutex dependency inversion\n  reiserfs: Fix reiserfs lock and journal lock inversion dependency\n  reiserfs: Fix possible recursive lock\n"
    },
    {
      "commit": "4b6764fa9e25cf628e42bbd192eca1e0b8e59061",
      "tree": "7f583f864daf939a4dcadd50a6119629110943bc",
      "parents": [
        "cd6e125c58ae1561bedb6ea6f70b00d6c2599d62"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinderrajput@gmail.com",
        "time": "Fri Jan 01 20:35:23 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 02 10:09:44 2010 -0800"
      },
      "message": "writeback: add missing kernel-doc notation\n\nFix the following htmldocs warning:\n\n  Warning(fs/fs-writeback.c:255): No description found for parameter \u0027sb\u0027\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "835d5247d98f46e35d007dcfa6215e526ca33360",
      "tree": "83caead46ca375781c93648e54adb6873204f569",
      "parents": [
        "8b513f56d4e117f11cf0760abcc030eedefc45c3"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 30 07:40:39 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jan 02 01:59:48 2010 +0100"
      },
      "message": "reiserfs: Safely acquire i_mutex from xattr_rmdir\n\nRelax the reiserfs lock before taking the inode mutex from\nxattr_rmdir() to avoid the usual reiserfs lock \u003c-\u003e inode mutex\nbad dependency.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nTested-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b513f56d4e117f11cf0760abcc030eedefc45c3",
      "tree": "3684dbe60c43a1c6484513e31227604452a4001f",
      "parents": [
        "4dd859697f836cf62c8de08bd9a9f4b4f4beaa91"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 30 07:28:58 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jan 02 01:59:14 2010 +0100"
      },
      "message": "reiserfs: Safely acquire i_mutex from reiserfs_for_each_xattr\n\nRelax the reiserfs lock before taking the inode mutex from\nreiserfs_for_each_xattr() to avoid the usual bad dependencies:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible circular locking dependency detected ]\n2.6.32-atom #179\n-------------------------------------------------------\nrm/3242 is trying to acquire lock:\n (\u0026sb-\u003es_type-\u003ei_mutex_key#4/3){+.+.+.}, at: [\u003cc11428ef\u003e] reiserfs_for_each_xattr+0x23f/0x290\n\nbut task is already holding lock:\n (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cc1143389\u003e] reiserfs_write_lock+0x29/0x40\n\nwhich lock already depends on the new lock.\n\nthe existing dependency chain (in reverse order) is:\n\n-\u003e #1 (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}:\n       [\u003cc105ea7f\u003e] __lock_acquire+0x11ff/0x19e0\n       [\u003cc105f2c8\u003e] lock_acquire+0x68/0x90\n       [\u003cc1401aab\u003e] mutex_lock_nested+0x5b/0x340\n       [\u003cc1143339\u003e] reiserfs_write_lock_once+0x29/0x50\n       [\u003cc1117022\u003e] reiserfs_lookup+0x62/0x140\n       [\u003cc10bd85f\u003e] __lookup_hash+0xef/0x110\n       [\u003cc10bf21d\u003e] lookup_one_len+0x8d/0xc0\n       [\u003cc1141e3a\u003e] open_xa_dir+0xea/0x1b0\n       [\u003cc1142720\u003e] reiserfs_for_each_xattr+0x70/0x290\n       [\u003cc11429ba\u003e] reiserfs_delete_xattrs+0x1a/0x60\n       [\u003cc111ea2f\u003e] reiserfs_delete_inode+0x9f/0x150\n       [\u003cc10c9c32\u003e] generic_delete_inode+0xa2/0x170\n       [\u003cc10c9d4f\u003e] generic_drop_inode+0x4f/0x70\n       [\u003cc10c8b07\u003e] iput+0x47/0x50\n       [\u003cc10c0965\u003e] do_unlinkat+0xd5/0x160\n       [\u003cc10c0b13\u003e] sys_unlinkat+0x23/0x40\n       [\u003cc1002ec4\u003e] sysenter_do_call+0x12/0x32\n\n-\u003e #0 (\u0026sb-\u003es_type-\u003ei_mutex_key#4/3){+.+.+.}:\n       [\u003cc105f176\u003e] __lock_acquire+0x18f6/0x19e0\n       [\u003cc105f2c8\u003e] lock_acquire+0x68/0x90\n       [\u003cc1401aab\u003e] mutex_lock_nested+0x5b/0x340\n       [\u003cc11428ef\u003e] reiserfs_for_each_xattr+0x23f/0x290\n       [\u003cc11429ba\u003e] reiserfs_delete_xattrs+0x1a/0x60\n       [\u003cc111ea2f\u003e] reiserfs_delete_inode+0x9f/0x150\n       [\u003cc10c9c32\u003e] generic_delete_inode+0xa2/0x170\n       [\u003cc10c9d4f\u003e] generic_drop_inode+0x4f/0x70\n       [\u003cc10c8b07\u003e] iput+0x47/0x50\n       [\u003cc10c0965\u003e] do_unlinkat+0xd5/0x160\n       [\u003cc10c0b13\u003e] sys_unlinkat+0x23/0x40\n       [\u003cc1002ec4\u003e] sysenter_do_call+0x12/0x32\n\nother info that might help us debug this:\n\n1 lock held by rm/3242:\n #0:  (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cc1143389\u003e] reiserfs_write_lock+0x29/0x40\n\nstack backtrace:\nPid: 3242, comm: rm Not tainted 2.6.32-atom #179\nCall Trace:\n [\u003cc13ffa13\u003e] ? printk+0x18/0x1a\n [\u003cc105d33a\u003e] print_circular_bug+0xca/0xd0\n [\u003cc105f176\u003e] __lock_acquire+0x18f6/0x19e0\n [\u003cc105c932\u003e] ? mark_held_locks+0x62/0x80\n [\u003cc105cc3b\u003e] ? trace_hardirqs_on+0xb/0x10\n [\u003cc1401098\u003e] ? mutex_unlock+0x8/0x10\n [\u003cc105f2c8\u003e] lock_acquire+0x68/0x90\n [\u003cc11428ef\u003e] ? reiserfs_for_each_xattr+0x23f/0x290\n [\u003cc11428ef\u003e] ? reiserfs_for_each_xattr+0x23f/0x290\n [\u003cc1401aab\u003e] mutex_lock_nested+0x5b/0x340\n [\u003cc11428ef\u003e] ? reiserfs_for_each_xattr+0x23f/0x290\n [\u003cc11428ef\u003e] reiserfs_for_each_xattr+0x23f/0x290\n [\u003cc1143180\u003e] ? delete_one_xattr+0x0/0x100\n [\u003cc11429ba\u003e] reiserfs_delete_xattrs+0x1a/0x60\n [\u003cc1143339\u003e] ? reiserfs_write_lock_once+0x29/0x50\n [\u003cc111ea2f\u003e] reiserfs_delete_inode+0x9f/0x150\n [\u003cc11b0d4f\u003e] ? _atomic_dec_and_lock+0x4f/0x70\n [\u003cc111e990\u003e] ? reiserfs_delete_inode+0x0/0x150\n [\u003cc10c9c32\u003e] generic_delete_inode+0xa2/0x170\n [\u003cc10c9d4f\u003e] generic_drop_inode+0x4f/0x70\n [\u003cc10c8b07\u003e] iput+0x47/0x50\n [\u003cc10c0965\u003e] do_unlinkat+0xd5/0x160\n [\u003cc1401098\u003e] ? mutex_unlock+0x8/0x10\n [\u003cc10c3e0d\u003e] ? vfs_readdir+0x7d/0xb0\n [\u003cc10c3af0\u003e] ? filldir64+0x0/0xf0\n [\u003cc1002ef3\u003e] ? sysenter_exit+0xf/0x16\n [\u003cc105cbe4\u003e] ? trace_hardirqs_on_caller+0x124/0x170\n [\u003cc10c0b13\u003e] sys_unlinkat+0x23/0x40\n [\u003cc1002ec4\u003e] sysenter_do_call+0x12/0x32\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nTested-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4dd859697f836cf62c8de08bd9a9f4b4f4beaa91",
      "tree": "761ac40341fe99a0b78131241541f888d2242b88",
      "parents": [
        "c674905ca74ad0ae5b048afb1ef68663a0d7e987"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 30 07:26:28 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jan 02 01:58:32 2010 +0100"
      },
      "message": "reiserfs: Fix journal mutex \u003c-\u003e inode mutex lock inversion\n\nWe need to relax the reiserfs lock before locking the inode mutex\nfrom xattr_unlink(), otherwise we\u0027ll face the usual bad dependencies:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible circular locking dependency detected ]\n2.6.32-atom #178\n-------------------------------------------------------\nrm/3202 is trying to acquire lock:\n (\u0026journal-\u003ej_mutex){+.+...}, at: [\u003cc113c234\u003e] do_journal_begin_r+0x94/0x360\n\nbut task is already holding lock:\n (\u0026sb-\u003es_type-\u003ei_mutex_key#4/2){+.+...}, at: [\u003cc1142a67\u003e] xattr_unlink+0x57/0xb0\n\nwhich lock already depends on the new lock.\n\nthe existing dependency chain (in reverse order) is:\n\n-\u003e #2 (\u0026sb-\u003es_type-\u003ei_mutex_key#4/2){+.+...}:\n       [\u003cc105ea7f\u003e] __lock_acquire+0x11ff/0x19e0\n       [\u003cc105f2c8\u003e] lock_acquire+0x68/0x90\n       [\u003cc1401a7b\u003e] mutex_lock_nested+0x5b/0x340\n       [\u003cc1142a67\u003e] xattr_unlink+0x57/0xb0\n       [\u003cc1143179\u003e] delete_one_xattr+0x29/0x100\n       [\u003cc11427bb\u003e] reiserfs_for_each_xattr+0x10b/0x290\n       [\u003cc11429ba\u003e] reiserfs_delete_xattrs+0x1a/0x60\n       [\u003cc111ea2f\u003e] reiserfs_delete_inode+0x9f/0x150\n       [\u003cc10c9c32\u003e] generic_delete_inode+0xa2/0x170\n       [\u003cc10c9d4f\u003e] generic_drop_inode+0x4f/0x70\n       [\u003cc10c8b07\u003e] iput+0x47/0x50\n       [\u003cc10c0965\u003e] do_unlinkat+0xd5/0x160\n       [\u003cc10c0b13\u003e] sys_unlinkat+0x23/0x40\n       [\u003cc1002ec4\u003e] sysenter_do_call+0x12/0x32\n\n-\u003e #1 (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}:\n       [\u003cc105ea7f\u003e] __lock_acquire+0x11ff/0x19e0\n       [\u003cc105f2c8\u003e] lock_acquire+0x68/0x90\n       [\u003cc1401a7b\u003e] mutex_lock_nested+0x5b/0x340\n       [\u003cc1143359\u003e] reiserfs_write_lock+0x29/0x40\n       [\u003cc113c23c\u003e] do_journal_begin_r+0x9c/0x360\n       [\u003cc113c680\u003e] journal_begin+0x80/0x130\n       [\u003cc1127363\u003e] reiserfs_remount+0x223/0x4e0\n       [\u003cc10b6dd6\u003e] do_remount_sb+0xa6/0x140\n       [\u003cc10ce6a0\u003e] do_mount+0x560/0x750\n       [\u003cc10ce914\u003e] sys_mount+0x84/0xb0\n       [\u003cc1002ec4\u003e] sysenter_do_call+0x12/0x32\n\n-\u003e #0 (\u0026journal-\u003ej_mutex){+.+...}:\n       [\u003cc105f176\u003e] __lock_acquire+0x18f6/0x19e0\n       [\u003cc105f2c8\u003e] lock_acquire+0x68/0x90\n       [\u003cc1401a7b\u003e] mutex_lock_nested+0x5b/0x340\n       [\u003cc113c234\u003e] do_journal_begin_r+0x94/0x360\n       [\u003cc113c680\u003e] journal_begin+0x80/0x130\n       [\u003cc1116d63\u003e] reiserfs_unlink+0x83/0x2e0\n       [\u003cc1142a74\u003e] xattr_unlink+0x64/0xb0\n       [\u003cc1143179\u003e] delete_one_xattr+0x29/0x100\n       [\u003cc11427bb\u003e] reiserfs_for_each_xattr+0x10b/0x290\n       [\u003cc11429ba\u003e] reiserfs_delete_xattrs+0x1a/0x60\n       [\u003cc111ea2f\u003e] reiserfs_delete_inode+0x9f/0x150\n       [\u003cc10c9c32\u003e] generic_delete_inode+0xa2/0x170\n       [\u003cc10c9d4f\u003e] generic_drop_inode+0x4f/0x70\n       [\u003cc10c8b07\u003e] iput+0x47/0x50\n       [\u003cc10c0965\u003e] do_unlinkat+0xd5/0x160\n       [\u003cc10c0b13\u003e] sys_unlinkat+0x23/0x40\n       [\u003cc1002ec4\u003e] sysenter_do_call+0x12/0x32\n\nother info that might help us debug this:\n\n2 locks held by rm/3202:\n #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#4/3){+.+.+.}, at: [\u003cc114274b\u003e] reiserfs_for_each_xattr+0x9b/0x290\n #1:  (\u0026sb-\u003es_type-\u003ei_mutex_key#4/2){+.+...}, at: [\u003cc1142a67\u003e] xattr_unlink+0x57/0xb0\n\nstack backtrace:\nPid: 3202, comm: rm Not tainted 2.6.32-atom #178\nCall Trace:\n [\u003cc13ff9e3\u003e] ? printk+0x18/0x1a\n [\u003cc105d33a\u003e] print_circular_bug+0xca/0xd0\n [\u003cc105f176\u003e] __lock_acquire+0x18f6/0x19e0\n [\u003cc1142a67\u003e] ? xattr_unlink+0x57/0xb0\n [\u003cc105f2c8\u003e] lock_acquire+0x68/0x90\n [\u003cc113c234\u003e] ? do_journal_begin_r+0x94/0x360\n [\u003cc113c234\u003e] ? do_journal_begin_r+0x94/0x360\n [\u003cc1401a7b\u003e] mutex_lock_nested+0x5b/0x340\n [\u003cc113c234\u003e] ? do_journal_begin_r+0x94/0x360\n [\u003cc113c234\u003e] do_journal_begin_r+0x94/0x360\n [\u003cc10411b6\u003e] ? run_timer_softirq+0x1a6/0x220\n [\u003cc103cb00\u003e] ? __do_softirq+0x50/0x140\n [\u003cc113c680\u003e] journal_begin+0x80/0x130\n [\u003cc103cba2\u003e] ? __do_softirq+0xf2/0x140\n [\u003cc104f72f\u003e] ? hrtimer_interrupt+0xdf/0x220\n [\u003cc1116d63\u003e] reiserfs_unlink+0x83/0x2e0\n [\u003cc105c932\u003e] ? mark_held_locks+0x62/0x80\n [\u003cc11b8d08\u003e] ? trace_hardirqs_on_thunk+0xc/0x10\n [\u003cc1002fd8\u003e] ? restore_all_notrace+0x0/0x18\n [\u003cc1142a67\u003e] ? xattr_unlink+0x57/0xb0\n [\u003cc1142a74\u003e] xattr_unlink+0x64/0xb0\n [\u003cc1143179\u003e] delete_one_xattr+0x29/0x100\n [\u003cc11427bb\u003e] reiserfs_for_each_xattr+0x10b/0x290\n [\u003cc1143150\u003e] ? delete_one_xattr+0x0/0x100\n [\u003cc1401cb9\u003e] ? mutex_lock_nested+0x299/0x340\n [\u003cc11429ba\u003e] reiserfs_delete_xattrs+0x1a/0x60\n [\u003cc1143309\u003e] ? reiserfs_write_lock_once+0x29/0x50\n [\u003cc111ea2f\u003e] reiserfs_delete_inode+0x9f/0x150\n [\u003cc11b0d1f\u003e] ? _atomic_dec_and_lock+0x4f/0x70\n [\u003cc111e990\u003e] ? reiserfs_delete_inode+0x0/0x150\n [\u003cc10c9c32\u003e] generic_delete_inode+0xa2/0x170\n [\u003cc10c9d4f\u003e] generic_drop_inode+0x4f/0x70\n [\u003cc10c8b07\u003e] iput+0x47/0x50\n [\u003cc10c0965\u003e] do_unlinkat+0xd5/0x160\n [\u003cc1401068\u003e] ? mutex_unlock+0x8/0x10\n [\u003cc10c3e0d\u003e] ? vfs_readdir+0x7d/0xb0\n [\u003cc10c3af0\u003e] ? filldir64+0x0/0xf0\n [\u003cc1002ef3\u003e] ? sysenter_exit+0xf/0x16\n [\u003cc105cbe4\u003e] ? trace_hardirqs_on_caller+0x124/0x170\n [\u003cc10c0b13\u003e] sys_unlinkat+0x23/0x40\n [\u003cc1002ec4\u003e] sysenter_do_call+0x12/0x32\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nTested-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c674905ca74ad0ae5b048afb1ef68663a0d7e987",
      "tree": "3f269bdda58519c012cf0505e36cee158ec7064b",
      "parents": [
        "3f14fea6bbd3444dd46a2af3a2e219e792616645"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 30 07:12:03 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jan 02 01:57:32 2010 +0100"
      },
      "message": "reiserfs: Fix unwanted recursive reiserfs lock in reiserfs_unlink()\n\nreiserfs_unlink() may or may not be called under the reiserfs\nlock.\nBut it also takes the reiserfs lock and can then acquire it\nrecursively which leads to do_journal_begin_r() that fails to\nrelax the reiserfs lock before grabbing the journal mutex,\ncreating an unexpected lock inversion.\n\nWe need to ensure reiserfs_unlink() won\u0027t get the reiserfs lock\nrecursively using reiserfs_write_lock_once().\n\nThis fixes the following warning that precedes a lock inversion\nreport (reiserfs lock \u003c-\u003e journal mutex).\n\n------------[ cut here ]------------\nWARNING: at fs/reiserfs/lock.c:95 reiserfs_lock_check_recursive+0x3a/0x50()\nHardware name: MS-7418\nUnwanted recursive reiserfs lock!\nPid: 3208, comm: dbench Not tainted 2.6.32-atom #177\nCall Trace:\n [\u003cc114327a\u003e] ? reiserfs_lock_check_recursive+0x3a/0x50\n [\u003cc114327a\u003e] ? reiserfs_lock_check_recursive+0x3a/0x50\n [\u003cc10373a7\u003e] warn_slowpath_common+0x67/0xc0\n [\u003cc114327a\u003e] ? reiserfs_lock_check_recursive+0x3a/0x50\n [\u003cc1037446\u003e] warn_slowpath_fmt+0x26/0x30\n [\u003cc114327a\u003e] reiserfs_lock_check_recursive+0x3a/0x50\n [\u003cc113c213\u003e] do_journal_begin_r+0x83/0x360\n [\u003cc105eb16\u003e] ? __lock_acquire+0x1296/0x19e0\n [\u003cc1142a57\u003e] ? xattr_unlink+0x57/0xb0\n [\u003cc113c670\u003e] journal_begin+0x80/0x130\n [\u003cc1116d5d\u003e] reiserfs_unlink+0x7d/0x2d0\n [\u003cc1142a57\u003e] ? xattr_unlink+0x57/0xb0\n [\u003cc1142a57\u003e] ? xattr_unlink+0x57/0xb0\n [\u003cc1142a57\u003e] ? xattr_unlink+0x57/0xb0\n [\u003cc1142a64\u003e] xattr_unlink+0x64/0xb0\n [\u003cc1143169\u003e] delete_one_xattr+0x29/0x100\n [\u003cc11427ab\u003e] reiserfs_for_each_xattr+0x10b/0x290\n [\u003cc1143140\u003e] ? delete_one_xattr+0x0/0x100\n [\u003cc1401ca9\u003e] ? mutex_lock_nested+0x299/0x340\n [\u003cc11429aa\u003e] reiserfs_delete_xattrs+0x1a/0x60\n [\u003cc11432f9\u003e] ? reiserfs_write_lock_once+0x29/0x50\n [\u003cc111ea1f\u003e] reiserfs_delete_inode+0x9f/0x150\n [\u003cc11b0d0f\u003e] ? _atomic_dec_and_lock+0x4f/0x70\n [\u003cc111e980\u003e] ? reiserfs_delete_inode+0x0/0x150\n [\u003cc10c9c32\u003e] generic_delete_inode+0xa2/0x170\n [\u003cc10c9d4f\u003e] generic_drop_inode+0x4f/0x70\n [\u003cc10c8b07\u003e] iput+0x47/0x50\n [\u003cc10c0965\u003e] do_unlinkat+0xd5/0x160\n [\u003cc10505c6\u003e] ? up_read+0x16/0x30\n [\u003cc1022ab7\u003e] ? do_page_fault+0x187/0x330\n [\u003cc1002fd8\u003e] ? restore_all_notrace+0x0/0x18\n [\u003cc1022930\u003e] ? do_page_fault+0x0/0x330\n [\u003cc105cbe4\u003e] ? trace_hardirqs_on_caller+0x124/0x170\n [\u003cc10c0a00\u003e] sys_unlink+0x10/0x20\n [\u003cc1002ec4\u003e] sysenter_do_call+0x12/0x32\n---[ end trace 2e35d71a6cc69d0c ]---\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nTested-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "3f14fea6bbd3444dd46a2af3a2e219e792616645"
}
