)]}'
{
  "log": [
    {
      "commit": "4142e0d1def2c0176c27fd2e810243045a62eb6d",
      "tree": "a21f76fafcd7609419a3ce610d8b9360748ccd76",
      "parents": [
        "33f1de69312432baecb997a570b7d77c4d02d1ed",
        "2daea67e966dc0c42067ebea015ddac6834cef88"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 14:36:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 14:36:47 2009 -0700"
      },
      "message": "Merge branch \u0027osync_cleanup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027osync_cleanup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  fsync: wait for data writeout completion before calling -\u003efsync\n  vfs: Remove generic_osync_inode() and sync_page_range{_nolock}()\n  fat: Opencode sync_page_range_nolock()\n  pohmelfs: Use new syncing helper\n  xfs: Convert sync_page_range() to simple filemap_write_and_wait_range()\n  ocfs2: Update syncing after splicing to match generic version\n  ntfs: Use new syncing helpers and update comments\n  ext4: Remove syncing logic from ext4_file_write\n  ext3: Remove syncing logic from ext3_file_write\n  ext2: Update comment about generic_osync_inode\n  vfs: Introduce new helpers for syncing after writing to O_SYNC file or IS_SYNC inode\n  vfs: Rename generic_file_aio_write_nolock\n  ocfs2: Use __generic_file_aio_write instead of generic_file_aio_write_nolock\n  pohmelfs: Use __generic_file_aio_write instead of generic_file_aio_write_nolock\n  vfs: Remove syncing from generic_file_direct_write() and generic_file_buffered_write()\n  vfs: Export __generic_file_aio_write() and add some comments\n  vfs: Introduce filemap_fdatawait_range\n"
    },
    {
      "commit": "33f1de69312432baecb997a570b7d77c4d02d1ed",
      "tree": "24e9e7487ec3b892e120409aa2ac1b1263794373",
      "parents": [
        "041d6d0be82bed7e0b87181dba5d10b8ab14afd9",
        "86d006365610fe6cda243d89b67d5047dca44656"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 14:35:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 14:35:56 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw:\n  GFS2: Whitespace fixes\n  GFS2: Remove unused sysfs file\n  GFS2: Be extra careful about deallocating inodes\n  GFS2: Remove no_formal_ino generating code\n  GFS2: Rename eattr.[ch] as xattr.[ch]\n  GFS2: Clean up of extended attribute support\n  GFS2: Add explanation of extended attr on-disk format\n  GFS2: Add \"-o errors\u003dpanic|withdraw\" mount options\n  GFS2: jumping to wrong label?\n  GFS2: free disk inode which is deleted by remote node -V2\n  GFS2: Add a document explaining GFS2\u0027s uevents\n  GFS2: Add sysfs link to device\n  GFS2: Replace assertion with proper error handling\n  GFS2: Improve error handling in inode allocation\n  GFS2: Add some more info to uevents\n  GFS2: Add online uevent to GFS2\n"
    },
    {
      "commit": "041d6d0be82bed7e0b87181dba5d10b8ab14afd9",
      "tree": "b7af53fa7ca104d30b9759c1f951439af7df3734",
      "parents": [
        "af8cb8aa38296ecc43aca7fae9e574db7b8ae0c4",
        "cbc8cc33529b0e0e55ae0ff077b8cb0b71d54c7a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 14:35:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 14:35:07 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6:\n  udf: Fix possible corruption when close races with write\n  udf: Perform preallocation only for regular files\n  udf: Remove wrong assignment in udf_symlink\n  udf: Remove dead code\n"
    },
    {
      "commit": "af8cb8aa38296ecc43aca7fae9e574db7b8ae0c4",
      "tree": "636090652a055bff0930ad713e315ff185282330",
      "parents": [
        "6cdb5930a6fa0e35b236f4aa0e056001fe1384b4",
        "41f4db0f48c72db3a93cc1a0b18368d9a9aca700"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 14:34:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 14:34:33 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: (21 commits)\n  fs/Kconfig: move nilfs2 outside misc filesystems\n  nilfs2: convert nilfs_bmap_lookup to an inline function\n  nilfs2: allow btree code to directly call dat operations\n  nilfs2: add update functions of virtual block address to dat\n  nilfs2: remove individual gfp constants for each metadata file\n  nilfs2: stop zero-fill of btree path just before free it\n  nilfs2: remove unused btree argument from btree functions\n  nilfs2: remove nilfs_dat_abort_start and nilfs_dat_abort_free\n  nilfs2: shorten freeze period due to GC in write operation v3\n  nilfs2: add more check routines in mount process\n  nilfs2: An unassigned variable is assigned to a never used structure member\n  nilfs2: use GFP_NOIO for bio_alloc instead of GFP_NOWAIT\n  nilfs2: stop using periodic write_super callback\n  nilfs2: clean up nilfs_write_super\n  nilfs2: fix disorder of nilfs_write_super in nilfs_sync_fs\n  nilfs2: remove redundant super block commit\n  nilfs2: implement nilfs_show_options to display mount options in /proc/mounts\n  nilfs2: always lookup disk block address before reading metadata block\n  nilfs2: use semaphore to protect pointer to a writable FS-instance\n  nilfs2: fix format string compile warning (ino_t)\n  ...\n"
    },
    {
      "commit": "6cdb5930a6fa0e35b236f4aa0e056001fe1384b4",
      "tree": "f7627d65c283ab122d69c20605355cb2c397f112",
      "parents": [
        "99bc47067910f7070e65ee318a6dd79a2371f1e5",
        "9162ab2000e08be076883b5a295a771223264ce8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 14:33:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 14:33:13 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: consolidate reconnect logic in smb_init routines\n  cifs: Replace wrtPending with a real reference count\n  cifs: protect GlobalOplock_Q with its own spinlock\n  cifs: use tcon pointer in cifs_show_options\n  cifs: send IPv6 addr in upcall with colon delimiters\n  [CIFS] Fix checkpatch warnings\n  PATCH] cifs: fix broken mounts when a SSH tunnel is used (try #4)\n  [CIFS] Memory leak in ntlmv2 hash calculation\n  [CIFS] potential NULL dereference in parse_DFS_referrals()\n"
    },
    {
      "commit": "d7e9660ad9d5e0845f52848bce31bcf5cdcdea6b",
      "tree": "c6c67d145771187b194d79d603742b31090a59d6",
      "parents": [
        "b8cb48aae1b8c50b37dcb7710363aa69a7a0d9ca",
        "13af7a6ea502fcdd4c0e3d7de6e332b102309491"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 10:37:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 10:37:28 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1623 commits)\n  netxen: update copyright\n  netxen: fix tx timeout recovery\n  netxen: fix file firmware leak\n  netxen: improve pci memory access\n  netxen: change firmware write size\n  tg3: Fix return ring size breakage\n  netxen: build fix for INET\u003dn\n  cdc-phonet: autoconfigure Phonet address\n  Phonet: back-end for autoconfigured addresses\n  Phonet: fix netlink address dump error handling\n  ipv6: Add IFA_F_DADFAILED flag\n  net: Add DEVTYPE support for Ethernet based devices\n  mv643xx_eth.c: remove unused txq_set_wrr()\n  ucc_geth: Fix hangs after switching from full to half duplex\n  ucc_geth: Rearrange some code to avoid forward declarations\n  phy/marvell: Make non-aneg speed/duplex forcing work for 88E1111 PHYs\n  drivers/net/phy: introduce missing kfree\n  drivers/net/wan: introduce missing kfree\n  net: force bridge module(s) to be GPL\n  Subject: [PATCH] appletalk: Fix skb leak when ipddp interface is not loaded\n  ...\n\nFixed up trivial conflicts:\n\n - arch/x86/include/asm/socket.h\n\n   converted to \u003casm-generic/socket.h\u003e in the x86 tree.  The generic\n   header has the same new #define\u0027s, so that works out fine.\n\n - drivers/net/tun.c\n\n   fix conflict between 89f56d1e9 (\"tun: reuse struct sock fields\") that\n   switched over to using \u0027tun-\u003esocket.sk\u0027 instead of the redundantly\n   available (and thus removed) \u0027tun-\u003esk\u0027, and 2b980dbd (\"lsm: Add hooks\n   to the TUN driver\") which added a new \u0027tun-\u003esk\u0027 use.\n\n   Noted in \u0027next\u0027 by Stephen Rothwell.\n"
    },
    {
      "commit": "cbc8cc33529b0e0e55ae0ff077b8cb0b71d54c7a",
      "tree": "5edace261ca6d707456d1bde03c0bf719ac8a365",
      "parents": [
        "81056dd04465902461b627169c4b4487a11acba1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Aug 07 00:27:27 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 19:13:01 2009 +0200"
      },
      "message": "udf: Fix possible corruption when close races with write\n\nWhen we close a file, we remove preallocated blocks from it. But this\ntruncation was not protected by i_mutex and thus it could have raced with a\nwrite through a different fd and cause crashes or even filesystem corruption.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "81056dd04465902461b627169c4b4487a11acba1",
      "tree": "902b49848f8d2033c24ad78ac5d391bf092091ef",
      "parents": [
        "7c6e3d1aaeb3b25b49510d193000c27037004acb"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jul 16 18:02:25 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 19:13:00 2009 +0200"
      },
      "message": "udf: Perform preallocation only for regular files\n\nSo far we preallocated blocks also for directories but that brings a\nproblem, when to get rid of preallocated blocks we don\u0027t need. So far\nwe removed them in udf_clear_inode() which has a disadvantage that\n1) blocks are unavailable long after writing to a directory finished\n   and thus one can get out of space unnecessarily early\n2) releasing blocks from udf_clear_inode is problematic because VFS\n   does not expect us to redirty inode there and it also slows down\n   memory reclaim.\n\nSo preallocate blocks only for regular files where we can drop preallocation\nin udf_release_file.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "7c6e3d1aaeb3b25b49510d193000c27037004acb",
      "tree": "1d20b31e4e74708812b6bd5821775bbac2eae539",
      "parents": [
        "5891d9dd2a47d38c205115211841a3d82304628f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jul 16 17:36:54 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 19:13:00 2009 +0200"
      },
      "message": "udf: Remove wrong assignment in udf_symlink\n\nRecomputation of the pointer was wrong (it should have been just increment).\nLuckily, we never use the computed value. Remove it.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "5891d9dd2a47d38c205115211841a3d82304628f",
      "tree": "8ee321785b597895bbd2ed8f47772e3e09f62b07",
      "parents": [
        "0cc6d77e55eca9557bbe41bf2db94b31aa8fcb2a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jul 16 17:35:11 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 19:13:00 2009 +0200"
      },
      "message": "udf: Remove dead code\n\nRemove code that gets never used.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "2daea67e966dc0c42067ebea015ddac6834cef88",
      "tree": "0adef51c45c7dd31062824eb3ba102a349966608",
      "parents": [
        "18f2ee705d98034b0f229a3202d827468d4bffd9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Sep 03 12:39:39 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:17 2009 +0200"
      },
      "message": "fsync: wait for data writeout completion before calling -\u003efsync\n\nCurrenly vfs_fsync(_range) first calls filemap_fdatawrite to write out\nthe data, the calls into -\u003efsync to write out the metadata and then finally\ncalls filemap_fdatawait to wait for the data I/O to complete.  What sounds\nlike a clever micro-optimization actually is nast trap for many filesystems.\n\nFor many modern filesystems i_size or other inode information is only\nupdated on I/O completion and we need to wait for I/O to finish before\nwe can write out the metadata.  For old fashionen filesystems that\ninstanciate blocks during the actual write and also update the metadata\nat that point it opens up a large window were we could expose uninitialized\nblocks after a crash.  While a few filesystems that need it already wait\nfor the I/O to finish inside their -\u003efsync methods it is rather suboptimal\nas it is done under the i_mutex and also always for the whole file instead\nof just a part as we could do for O_SYNC handling.\n\nHere is a small audit of all fsync instances in the tree:\n\n - spufs_mfc_fsync:\n - ps3flash_fsync:\n - vol_cdev_fsync:\n - printer_fsync:\n - fb_deferred_io_fsync:\n - bad_file_fsync:\n - simple_sync_file:\n\n\tdon\u0027t care - filesystems/drivers do\u0027t use the page cache or are\n\tpurely in-memory.\n\n - simple_fsync:\n - file_fsync:\n - affs_file_fsync:\n - fat_file_fsync:\n - jfs_fsync:\n - ubifs_fsync:\n - reiserfs_dir_fsync:\n - reiserfs_sync_file:\n\n\tnever touch pagecache themselves.  We need to wait before if we do\n\tnot want to expose stale data after an allocation.\n\n - afs_fsync:\n - fuse_fsync_common:\n\n\tdo the waiting writeback itself in awkward ways, would benefit from\n\tproper semantics\n\n - block_fsync:\n\n\tDoes a filemap_write_and_wait on the block device inode.  Because we\n\tnow have f_mapping that is the same inode we call it on in vfs_fsync.\n\tSo just removing it and letting the VFS do the work in one go would\n\tbe an improvement.\n\n - btrfs_sync_file:\n - cifs_fsync:\n - xfs_file_fsync:\n\n\tneed the wait first and currently do it themselves. would benefit from\n\tdoing it outside i_mutex.\n\n - coda_fsync:\n - ecryptfs_fsync:\n - exofs_file_fsync:\n - shm_fsync:\n\n\tonly passes the fsync through to the lower layer\n\n - ext3_sync_file:\n\n\tdoesn\u0027t seem to care, comments are confusing.\n\n - ext4_sync_file:\n\n\twould need the wait to work correctly for delalloc mode with late\n\ti_size updates.  Otherwise the ext3 comment applies.\n\n\tcurrently implemens it\u0027s own writeback and wait in an odd way,\n\tcould benefit from doing it properly.\n\n - gfs2_fsync:\n\n\tnot needed for journaled data mode, but probably harmless there.\n\tCurrently writes back data asynchronously itself.  Needs some\n\tmajor audit.\n\n - hostfs_fsync:\n\n\tjust calls fsync/datasync on the host FD.  Without the wait before\n\tdata might not even be inflight yet if we\u0027re unlucky.\n\n - hpfs_file_fsync:\n - ncp_fsync:\n\n\tno-ops.  Dangerous before and after.\n\n - jffs2_fsync:\n\n\tjust calls jffs2_flush_wbuf_gc, not sure how this relates to data.\n\n - nfs_fsync_dir:\n\n\tjust increments stats, claims all directory operations are synchronous\n\n - nfs_file_fsync:\n\n\tonly writes out data???  Looks very odd.\n\n - nilfs_sync_file:\n\n\tlooks like it expects all data done, but not sure from the code\n\n - ntfs_dir_fsync:\n - ntfs_file_fsync:\n\n\tappear to do their own data writeback.  Very convoluted code.\n\n - ocfs2_sync_file:\n\n\tdoes it\u0027s own data writeback, but no wait.  probably needs the wait.\n\n - smb_fsync:\n\n\taccording to a comment expects all pages written already, probably needs\n\tthe wait before.\n\nThis patch only changes vfs_fsync_range, removal of the wait in the methods\nthat have it is left to the filesystem maintainers.  Note that most\nfilesystems really do need an audit for their fsync methods given the\ngems found in this very brief audit.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "18f2ee705d98034b0f229a3202d827468d4bffd9",
      "tree": "1da282e5eb90dc8e8a1e46214e0e7639138d3568",
      "parents": [
        "2f3d675bcd4a84251d6e8eea8096ec8fc795e5d6"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 18 18:43:15 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:17 2009 +0200"
      },
      "message": "vfs: Remove generic_osync_inode() and sync_page_range{_nolock}()\n\nRemove these three functions since nobody uses them anymore.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "2f3d675bcd4a84251d6e8eea8096ec8fc795e5d6",
      "tree": "3b186e4960d4553fac577be5f1def6d17196beca",
      "parents": [
        "aa3caafe53cab7ef60605e481cd5d7943e1c3022"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Aug 17 17:00:02 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:17 2009 +0200"
      },
      "message": "fat: Opencode sync_page_range_nolock()\n\nfat_cont_expand() is the only user of sync_page_range_nolock(). It\u0027s also the\nonly user of generic_osync_inode() which does not have a file open.  So\nopencode needed actions for FAT so that we can convert generic_osync_inode() to\na standard syncing path.\n\nUpdate a comment about generic_osync_inode().\n\nCC: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "af0f4414f343429971d33b0dd8dccc85c1f3dcd2",
      "tree": "1b053812591d19f618240672eb74fd74912c29c1",
      "parents": [
        "d23c937b0f740888765676f6f82f509dbbb2bbad"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 18 18:32:55 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:17 2009 +0200"
      },
      "message": "xfs: Convert sync_page_range() to simple filemap_write_and_wait_range()\n\nChristoph Hellwig says that it is enough for XFS to call\nfilemap_write_and_wait_range() instead of sync_page_range() because we do\nall the metadata syncing when forcing the log.\n\nCC: Felix Blyakher \u003cfelixb@sgi.com\u003e\nCC: xfs@oss.sgi.com\nCC: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "d23c937b0f740888765676f6f82f509dbbb2bbad",
      "tree": "df4e085d935805f54061436ee820460c79143087",
      "parents": [
        "ebbbf757c6b8577ac2fb6181c08c2059153bb0e2"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 18 18:24:31 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:16 2009 +0200"
      },
      "message": "ocfs2: Update syncing after splicing to match generic version\n\nUpdate ocfs2 specific splicing code to use generic syncing helper. The sync now\ndoes not happen under rw_lock because generic_write_sync() acquires i_mutex\nwhich ranks above rw_lock. That should not matter because standard fsync path\ndoes not hold it either.\n\nAcked-by: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nAcked-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCC: ocfs2-devel@oss.oracle.com\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "ebbbf757c6b8577ac2fb6181c08c2059153bb0e2",
      "tree": "0c29915bd629c4faf314d052b003a5dab19d6f74",
      "parents": [
        "0d34ec62e18984ac9476208660372306ef54e70d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 18 18:13:58 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:16 2009 +0200"
      },
      "message": "ntfs: Use new syncing helpers and update comments\n\nUse new syncing helpers in .write and .aio_write functions. Also\nremove superfluous syncing in ntfs_file_buffered_write() and update\ncomments about generic_osync_inode().\n\nCC: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCC: linux-ntfs-dev@lists.sourceforge.net\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0d34ec62e18984ac9476208660372306ef54e70d",
      "tree": "7b75d266b832bb8457369082fba86456ef88e568",
      "parents": [
        "e367626b6164aeecb97fb7c20509ed8696babc26"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 18 17:48:27 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:16 2009 +0200"
      },
      "message": "ext4: Remove syncing logic from ext4_file_write\n\nThe syncing is now properly handled by generic_file_aio_write() so\nno special ext4 code is needed.\n\nCC: linux-ext4@vger.kernel.org\nCC: tytso@mit.edu\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e367626b6164aeecb97fb7c20509ed8696babc26",
      "tree": "e69721734412f9373aea87297c4ff9450cf55308",
      "parents": [
        "a2a735ad666a04306a708b5a0109cc1fe113f569"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 18 17:51:23 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:16 2009 +0200"
      },
      "message": "ext3: Remove syncing logic from ext3_file_write\n\nSyncing is now properly done by generic_file_aio_write() so no special logic is\nneeded in ext3.\n\nCC: linux-ext4@vger.kernel.org\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "a2a735ad666a04306a708b5a0109cc1fe113f569",
      "tree": "1b880e0e8eb9e9b019d3e6443751cd56e5fe3d58",
      "parents": [
        "148f948ba877f4d3cdef036b1ff6d9f68986706a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 18 17:54:11 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:16 2009 +0200"
      },
      "message": "ext2: Update comment about generic_osync_inode\n\nWe rely on generic_write_sync() now.\n\nCC: linux-ext4@vger.kernel.org\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "148f948ba877f4d3cdef036b1ff6d9f68986706a",
      "tree": "c07963f08bf8c2119ec00df64e4293e2e60acaa1",
      "parents": [
        "eef99380679e20e7edc096aa4d8a98b875404d79"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Aug 17 19:52:36 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:15 2009 +0200"
      },
      "message": "vfs: Introduce new helpers for syncing after writing to O_SYNC file or IS_SYNC inode\n\nIntroduce new function for generic inode syncing (vfs_fsync_range) and use\nit from fsync() path. Introduce also new helper for syncing after a sync\nwrite (generic_write_sync) using the generic function.\n\nUse these new helpers for syncing from generic VFS functions. This makes\nO_SYNC writes to block devices acquire i_mutex for syncing. If we really\ncare about this, we can make block_fsync() drop the i_mutex and reacquire\nit before it returns.\n\nCC: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCC: ocfs2-devel@oss.oracle.com\nCC: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCC: Felix Blyakher \u003cfelixb@sgi.com\u003e\nCC: xfs@oss.sgi.com\nCC: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCC: linux-ntfs-dev@lists.sourceforge.net\nCC: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCC: linux-ext4@vger.kernel.org\nCC: tytso@mit.edu\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "eef99380679e20e7edc096aa4d8a98b875404d79",
      "tree": "358a39148e8513eed9ba6aaff13f6bf660a2ce1e",
      "parents": [
        "918941a3f3d46c2a69971b4718aaf13b1be2f1a7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Aug 20 17:43:41 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:15 2009 +0200"
      },
      "message": "vfs: Rename generic_file_aio_write_nolock\n\ngeneric_file_aio_write_nolock() is now used only by block devices and raw\ncharacter device. Filesystems should use __generic_file_aio_write() in case\ngeneric_file_aio_write() doesn\u0027t suit them. So rename the function to\nblkdev_aio_write() and move it to fs/blockdev.c.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "918941a3f3d46c2a69971b4718aaf13b1be2f1a7",
      "tree": "3ef80cb4b8107be981cc87904c7e80c0e383e5e5",
      "parents": [
        "b04f932171e8a99bb8ca2f863b2b9eadb85741e8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Aug 17 18:50:08 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:15 2009 +0200"
      },
      "message": "ocfs2: Use __generic_file_aio_write instead of generic_file_aio_write_nolock\n\nUse the new helper. We have to submit data pages ourselves in case of O_SYNC\nwrite because __generic_file_aio_write does not do it for us. OCFS2 developpers\nmight think about moving the sync out of i_mutex which seems to be easily\npossible but that\u0027s out of scope of this patch.\n\nCC: ocfs2-devel@oss.oracle.com\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "41f4db0f48c72db3a93cc1a0b18368d9a9aca700",
      "tree": "1cf648ef55b9cfa28012268ab6b0b5c3477534f1",
      "parents": [
        "0f3fe33b398abbecfcf9f08c16959d1a9a14a49a"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 08 16:09:46 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:16 2009 +0900"
      },
      "message": "fs/Kconfig: move nilfs2 outside misc filesystems\n\nSome people asked me questions like the following:\n\nOn Wed, 15 Jul 2009 13:11:21 +0200, Leon Woestenberg wrote:\n\u003e just wondering, any reasons why NILFS2 is one of the miscellaneous\n\u003e filesystems and, for example, btrfs, is not in Kconfig?\n\nActually, nilfs is NOT a filesystem came from other operating systems,\nbut a filesystem created purely for Linux.  Nor is it a flash\nfilesystem but that for generic block devices.\n\nSo, this moves nilfs outside the misc category as I responded in LKML\n\"Re: Why does NILFS2 hide under Miscellaneous filesystems?\"\n(Message-Id: \u003c20090716.002526.93465395.ryusuke@osrg.net\u003e).\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "0f3fe33b398abbecfcf9f08c16959d1a9a14a49a",
      "tree": "a60a3e8a3b90b173a58a2ba9d86e1363598bd279",
      "parents": [
        "2e0c2c73923fed27337039ddfd69985e6c4b91fe"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 15 02:29:28 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:16 2009 +0900"
      },
      "message": "nilfs2: convert nilfs_bmap_lookup to an inline function\n\nThe nilfs_bmap_lookup() is now a wrapper function of\nnilfs_bmap_lookup_at_level().\n\nThis moves the nilfs_bmap_lookup() to a header file converting it to\nan inline function and gives an opportunity for optimization.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "2e0c2c73923fed27337039ddfd69985e6c4b91fe",
      "tree": "a6c4a318776f5804f53994acad7254c7404418f0",
      "parents": [
        "bd8169efae8bdd292675c386010f6b35f0771057"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 15 15:34:33 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:16 2009 +0900"
      },
      "message": "nilfs2: allow btree code to directly call dat operations\n\nThe current btree code is written so that btree functions call dat\noperations via wrapper functions in bmap.c when they allocate, free,\nor modify virtual block addresses.\n\nThis abstraction requires additional function calls and causes\nfrequent call of nilfs_bmap_get_dat() function since it is used in the\nevery wrapper function.\n\nThis removes the wrapper functions and makes them available from\nbtree.c and direct.c, which will increase the opportunity of\ncompiler optimization.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "bd8169efae8bdd292675c386010f6b35f0771057",
      "tree": "aea73bd670910874eb78fd1f2c8ce8b2a494dfcb",
      "parents": [
        "7a102b09232be1ad7c180dfd1f46c7aa95dff1e0"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 15 17:22:13 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:15 2009 +0900"
      },
      "message": "nilfs2: add update functions of virtual block address to dat\n\nThis is a preparation for the successive cleanup (\"nilfs2: allow btree\nto directly call dat operations\").\n\nThis adds functions bundling a few operations to change an entry of\nvirtual block address on the dat file.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "7a102b09232be1ad7c180dfd1f46c7aa95dff1e0",
      "tree": "81691c3a48e3108db1a5341c8dcf4531ac404cac",
      "parents": [
        "3218929dbd25245e0f601df1e359a3ed3f7fb03b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 15 13:47:09 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:15 2009 +0900"
      },
      "message": "nilfs2: remove individual gfp constants for each metadata file\n\nThis gets rid of NILFS_CPFILE_GFP, NILFS_SUFILE_GFP, NILFS_DAT_GFP,\nand NILFS_IFILE_GFP.  All of these constants refer to NILFS_MDT_GFP,\nand can be removed.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "3218929dbd25245e0f601df1e359a3ed3f7fb03b",
      "tree": "4f3f0f21b9f2e6eaa255315c659c1168ad3b5c96",
      "parents": [
        "6d28f7ea43856449ed2f344cb209af3ba1c6b757"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 15 01:54:59 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:15 2009 +0900"
      },
      "message": "nilfs2: stop zero-fill of btree path just before free it\n\nThe btree path object is cleared just before it is freed.\n\nThis will remove the code doing the unnecessary clear operation.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "6d28f7ea43856449ed2f344cb209af3ba1c6b757",
      "tree": "e41a19062d0956f698eb6ec7deccb6d8ebabfced",
      "parents": [
        "9ead98637300dc7caefd904bbe1e092bf4d21f87"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 15 01:14:10 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:15 2009 +0900"
      },
      "message": "nilfs2: remove unused btree argument from btree functions\n\nEven though many btree functions take a btree object as their first\nargument, most of them are not used in their functions.\n\nThis sticky use of the btree argument is hurting code readability and\ngiving the possibility of inefficient code generation.\n\nSo, this removes the unnecessary btree arguments.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9ead98637300dc7caefd904bbe1e092bf4d21f87",
      "tree": "e90ef82f107ae807cf5b1ef6f8e92afe7c7a8f70",
      "parents": [
        "1cf58fa840472ec7df6bf2312885949ebb308853"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Aug 14 23:39:45 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:15 2009 +0900"
      },
      "message": "nilfs2: remove nilfs_dat_abort_start and nilfs_dat_abort_free\n\nThese functions are not called from any functions.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "1cf58fa840472ec7df6bf2312885949ebb308853",
      "tree": "2743a6ab63331703e6c9abbb714e2bf13744d009",
      "parents": [
        "43be0ec0387a5ccce2e064cb78502e7b2b4dd590"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Thu Sep 03 22:24:17 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:15 2009 +0900"
      },
      "message": "nilfs2: shorten freeze period due to GC in write operation v3\n\nThis is a re-revised patch to shorten freeze period.\nThis version include a fix of the bug Konishi-san mentioned last time.\n\nWhen GC is runnning, GC moves live block to difference segments.\nCopying live blocks into memory is done in a transaction,\nhowever it is not necessarily to be in the transaction.\nThis patch will get the nilfs_ioctl_move_blocks() out from\ntransaction lock and put it before the transaction.\n\nI ran sysbench fileio test against nilfs partition.\nI copied some DVD/CD images and created snapshot to create live blocks\nbefore starting the benchmark.\n\nFollowings are summary of rc8 and rc8 w/ the patch of per-request\nstatistics, which is min/max and avg.  I ran each test three times and\nbellow is average of those numers.\n\nAccording to this benchmark result, average time is slightly degrated.\nHowever, worstcase (max) result is significantly improved.\nThis can address a few seconds write freeze.\n\n- random write per-request performance of rc8\n min   0.843ms\n max 680.406ms\n avg   3.050ms\n- random write per-request performance of rc8 w/ this patch\n min   0.843ms -\u003e 100.00%\n max 380.490ms -\u003e  55.90%\n avg   3.233ms -\u003e 106.00%\n\n- sequential write per-request performance of rc8\n min   0.736ms\n max 774.343ms\n avg   2.883ms\n- sequential write per-request performance of rc8 w/ this patch\n min   0.720ms -\u003e  97.80%\n max  644.280ms-\u003e  83.20%\n avg   3.130ms -\u003e 108.50%\n\n-----8\u003c-----8\u003c-----nilfs_cleanerd.conf-----8\u003c-----8\u003c-----\nprotection_period       150\nselection_policy        timestamp       # timestamp in ascend order\nnsegments_per_clean     2\ncleaning_interval       2\nretry_interval          60\nuse_mmap\nlog_priority            info\n-----8\u003c-----8\u003c-----nilfs_cleanerd.conf-----8\u003c-----8\u003c-----\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "43be0ec0387a5ccce2e064cb78502e7b2b4dd590",
      "tree": "e412246fce3f999b46b960ef416f1f10653ca895",
      "parents": [
        "a4f0b9c5b4ae83636dafde8f3a0e04b5e411a0f3"
      ],
      "author": {
        "name": "Zhu Yanhai",
        "email": "zhu.yanhai@gmail.com",
        "time": "Wed Aug 12 14:17:59 2009 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:14 2009 +0900"
      },
      "message": "nilfs2: add more check routines in mount process\n\nnilfs2: Add more safeguard routines and protections in mount process,\nwhich also makes nilfs2 report consistency error messages when\ncheckpoint number is invalid.\n\nSigned-off-by: Zhu Yanhai \u003czhu.yanhai@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "a4f0b9c5b4ae83636dafde8f3a0e04b5e411a0f3",
      "tree": "885111c7beec6e69680768c7fb1a8b22d53cd175",
      "parents": [
        "c1b353f04a42f1b531be920149b85343d56a6b3b"
      ],
      "author": {
        "name": "Zhang Qiang",
        "email": "zhangqiang.buaa@gmail.com",
        "time": "Sun Aug 09 19:13:10 2009 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:14 2009 +0900"
      },
      "message": "nilfs2: An unassigned variable is assigned to a never used structure member\n\nnilfs2: In procedure \u0027nilfs_get_sb()\u0027, when a nilfs filesysttem is\nmounted for the first time, local variable \u0027nilfs-\u003ens_last_cno\u0027 is\nused before loading the latest checkpoint number from disk (in\n\u0027nilfs_fill_super\u0027). \u0027nilfs-\u003ens_last_cno\u0027 is assigned to \u0027sd.cno\u0027, but\n\u0027sd.cno\u0027 has never been used in the procedure.\n\nSigned-off-by: Zhang Qiang \u003czhangqiang.buaa@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "c1b353f04a42f1b531be920149b85343d56a6b3b",
      "tree": "40d81fd322b8ed70beba950ab47dbd0b90487936",
      "parents": [
        "1dfa27105a6cf4171c439fd40a004a0a17838115"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jun 19 15:25:42 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:14 2009 +0900"
      },
      "message": "nilfs2: use GFP_NOIO for bio_alloc instead of GFP_NOWAIT\n\nAlberto Bertogli advised me about bio_alloc() use in nilfs:\nOn Sat, 13 Jun 2009 22:52:40 -0300, Alberto Bertogli wrote:\n\u003e By the way, those bio_alloc()s are using GFP_NOWAIT but it looks\n\u003e like they could use at least GFP_NOIO or GFP_NOFS, since the caller\n\u003e can (and sometimes do) sleep. The only caller is nilfs_submit_bh(),\n\u003e which calls nilfs_submit_seg_bio() which can sleep calling\n\u003e wait_for_completion().\n\nThis takes in the comment and replaces the use of GFP_NOWAIT flag with\nGFP_NOIO.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "1dfa27105a6cf4171c439fd40a004a0a17838115",
      "tree": "7d348398a9e623324ca86eafd050b8c12abf3cea",
      "parents": [
        "79efdd94111f30c373fce05e4e5822d8ff671c2a"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Thu Jul 23 01:33:49 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:14 2009 +0900"
      },
      "message": "nilfs2: stop using periodic write_super callback\n\nThis removes nilfs_write_super and commit super block in nilfs\ninternal thread, instead of periodic write_super callback.\n\nVFS layer calls -\u003ewrite_super callback periodically.  However,\nit looks like that calling back is ommited when disk I/O is busy.\nAnd when cleanerd (nilfs GC) is runnig, disk I/O tend to be busy thus\nnilfs superblock is not synchronized as nilfs designed.\n\nTo avoid it, syncing superblock by nilfs thread instead of pdflush.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "79efdd94111f30c373fce05e4e5822d8ff671c2a",
      "tree": "9d12c0e87146fb4fb63362f567e574d629a222a1",
      "parents": [
        "6233caa9d5b153c2190d6c1c35c1dd1010104fc1"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Thu Jul 23 01:26:34 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:14 2009 +0900"
      },
      "message": "nilfs2: clean up nilfs_write_super\n\nSeparate conditions that check if syncing super block and alternative\nsuper block are required as inline functions to reuse the conditions.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "6233caa9d5b153c2190d6c1c35c1dd1010104fc1",
      "tree": "885fdeacf10bbbecebf94fc274bfd84ff28066f6",
      "parents": [
        "ec5d66abdb0caf8b753a138568f20770a3d64c8c"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Thu Jul 23 01:26:33 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:14 2009 +0900"
      },
      "message": "nilfs2: fix disorder of nilfs_write_super in nilfs_sync_fs\n\nThis fixes disorder of nilfs_write_super in nilfs_sync_fs.  Commiting\nsuper block must be the end of the function so that every changes are\nreflected.\n\n-\u003esync_fs() is not called frequently so this makes nilfs_sync_fs call\nnilfs_commit_super instead of nilfs_write_super.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "ec5d66abdb0caf8b753a138568f20770a3d64c8c",
      "tree": "238dab276eab98a6aa0f560812e62adde759143a",
      "parents": [
        "b58a285ba40866e22e5876969a8f796a74311d9e"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Jul 10 19:57:28 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:13 2009 +0900"
      },
      "message": "nilfs2: remove redundant super block commit\n\nThis removes redundant super block commit.\n\nnilfs_write_super will call nilfs_commit_super to store super block\ninto block device.  However, nilfs_put_super will call\nnilfs_commit_super right after calling nilfs_write_super.  So calling\nnilfs_write_super in nilfs_put_super would be redundant.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b58a285ba40866e22e5876969a8f796a74311d9e",
      "tree": "9a667fdb99c0429c1871da626cb7589dec54adb7",
      "parents": [
        "143511046765504d2d1be633efd710f8d84e0407"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Wed Jun 24 20:06:34 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:13 2009 +0900"
      },
      "message": "nilfs2: implement nilfs_show_options to display mount options in /proc/mounts\n\nThis is a patch to display mount options in procfs.\nMount options will show up in the /proc/mounts as other fs does.\n\n...\n/dev/sda6 /mnt nilfs2 ro,relatime,barrier\u003doff,cp\u003d3,order\u003dstrict 0 0\n...\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "143511046765504d2d1be633efd710f8d84e0407",
      "tree": "bd9b8570880cfda44a9fad7a2567b977ab53f631",
      "parents": [
        "027d6404eb4327878454db72a006adfcb8001bb8"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Sep 06 17:49:49 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:13 2009 +0900"
      },
      "message": "nilfs2: always lookup disk block address before reading metadata block\n\nThe current metadata file code skips disk address lookup for its data\nblock if the buffer has a mapped flag.\n\nThis has a potential risk to cause read request to be performed\nagainst the stale block address that GC moved, and it may lead to meta\ndata corruption.  The mapped flag is safe if the buffer has an\nuptodate flag, otherwise it may prevent necessary update of disk\naddress in the next read.\n\nThis will avoid the potential problem by ensuring disk address lookup\nbefore reading metadata block even for buffers with the mapped flag.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "027d6404eb4327878454db72a006adfcb8001bb8",
      "tree": "671c0d84ee5fd19ef85a3ff15d99a3519c1ed8bf",
      "parents": [
        "b5696e5e0dbfb6323277d51d67d230317c18aba9"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Aug 02 22:45:33 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:13 2009 +0900"
      },
      "message": "nilfs2: use semaphore to protect pointer to a writable FS-instance\n\nwill get rid of nilfs_get_writer() and nilfs_put_writer() pair used to\nretain a writable FS-instance for a period.\n\nThe pair functions were making up some kind of recursive lock with a\nmutex, but they became overkill since the commit\n201913ed746c7724a40d33ee5a0b6a1fd2ef3193.  Furthermore, they caused\nthe following lockdep warning because the mutex can be released by a\ntask which didn\u0027t lock it:\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\n [ BUG: bad unlock balance detected! ]\n -------------------------------------\n kswapd0/422 is trying to release lock (\u0026nilfs-\u003ens_writer_mutex) at:\n [\u003cc1359ff5\u003e] mutex_unlock+0x8/0xa\n but there are no more locks to release!\n\n other info that might help us debug this:\n no locks held by kswapd0/422.\n\n stack backtrace:\n Pid: 422, comm: kswapd0 Not tainted 2.6.31-rc4-nilfs #51\n Call Trace:\n  [\u003cc1358f97\u003e] ? printk+0xf/0x18\n  [\u003cc104fea7\u003e] print_unlock_inbalance_bug+0xcc/0xd7\n  [\u003cc11578de\u003e] ? prop_put_global+0x3/0x35\n  [\u003cc1050195\u003e] lock_release+0xed/0x1dc\n  [\u003cc1359ff5\u003e] ? mutex_unlock+0x8/0xa\n  [\u003cc1359f83\u003e] __mutex_unlock_slowpath+0xaf/0x119\n  [\u003cc1359ff5\u003e] mutex_unlock+0x8/0xa\n  [\u003cd1284add\u003e] nilfs_mdt_write_page+0xd8/0xe1 [nilfs2]\n  [\u003cc1092653\u003e] shrink_page_list+0x379/0x68d\n  [\u003cc109171b\u003e] ? isolate_pages_global+0xb4/0x18c\n  [\u003cc1092bd2\u003e] shrink_list+0x26b/0x54b\n  [\u003cc10930be\u003e] shrink_zone+0x20c/0x2a2\n  [\u003cc10936b7\u003e] kswapd+0x407/0x591\n  [\u003cc1091667\u003e] ? isolate_pages_global+0x0/0x18c\n  [\u003cc1040603\u003e] ? autoremove_wake_function+0x0/0x33\n  [\u003cc10932b0\u003e] ? kswapd+0x0/0x591\n  [\u003cc104033b\u003e] kthread+0x69/0x6e\n  [\u003cc10402d2\u003e] ? kthread+0x0/0x6e\n  [\u003cc1003e33\u003e] kernel_thread_helper+0x7/0x1a\n\nThis patch uses a reader/writer semaphore instead of the own lock and\nkills this warning.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b5696e5e0dbfb6323277d51d67d230317c18aba9",
      "tree": "e4ee23f43dad9da26ee470b54ef1afcc41971ddc",
      "parents": [
        "1b2f5a641bca91966fd91dc489238068a0ab4b69"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Thu Sep 03 17:42:48 2009 +0200"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:13 2009 +0900"
      },
      "message": "nilfs2: fix format string compile warning (ino_t)\n\nUnlike on most other architectures ino_t is an unsigned int on s390.\nSo add an explicit cast to avoid this compile warning:\n\nfs/nilfs2/recovery.c: In function \u0027recover_dsync_blocks\u0027:\nfs/nilfs2/recovery.c:555: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 3 has type \u0027ino_t\u0027\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "1b2f5a641bca91966fd91dc489238068a0ab4b69",
      "tree": "85ab9020e9628d43ffabc6ab354efcf6ea1ef3d2",
      "parents": [
        "74fca6a42863ffacaf7ba6f1936a9f228950f657"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 22 19:10:07 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:12 2009 +0900"
      },
      "message": "nilfs2: fix ignored error code in __nilfs_read_inode()\n\nThe __nilfs_read_inode function is ignoring the error code returned\nfrom nilfs_read_inode_common(), and wrongly delivers a success code\n(zero) when it escapes from the function in erroneous cases.\n\nThis adds the missing error handling.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "86d006365610fe6cda243d89b67d5047dca44656",
      "tree": "7ddc920e35524759f004cb4c5766ccb506044321",
      "parents": [
        "2b88f7c535a8125213def012a67c1b0a667ceb2e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 14 09:50:57 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 14 09:50:57 2009 +0100"
      },
      "message": "GFS2: Whitespace fixes\n\nReported-by: Daniel Walker \u003cdwalker@fifo99.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "86d710146fb9975f04c505ec78caa43d227c1018",
      "tree": "c7f95412b7760e6b7e3c15eab8b2ac944256d7ac",
      "parents": [
        "86373435d2299b722ec87c416005953215f049c1",
        "ab3bbaa8b257845e248e9a01d12a69ca245f4197"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 16:39:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 16:39:11 2009 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (87 commits)\n  NFSv4: Disallow \u0027mount -t nfs4 -overs\u003d2\u0027 and \u0027mount -t nfs4 -overs\u003d3\u0027\n  NFS: Allow the \"nfs\" file system type to support NFSv4\n  NFS: Move details of nfs4_get_sb() to a helper\n  NFS: Refactor NFSv4 text-based mount option validation\n  NFS: Mount option parser should detect missing \"port\u003d\"\n  NFS: out of date comment regarding O_EXCL above nfs3_proc_create()\n  NFS: Handle a zero-length auth flavor list\n  SUNRPC: Ensure that sunrpc gets initialised before nfs, lockd, etc...\n  nfs: fix compile error in rpc_pipefs.h\n  nfs: Remove reference to generic_osync_inode from a comment\n  SUNRPC: cache must take a reference to the cache detail\u0027s module on open()\n  NFS: Use the DNS resolver in the mount code.\n  NFS: Add a dns resolver for use with NFSv4 referrals and migration\n  SUNRPC: Fix a typo in cache_pipefs_files\n  nfs: nfs4xdr: optimize low level decoding\n  nfs: nfs4xdr: get rid of READ_BUF\n  nfs: nfs4xdr: simplify decode_exchange_id by reusing decode_opaque_inline\n  nfs: nfs4xdr: get rid of COPYMEM\n  nfs: nfs4xdr: introduce decode_sessionid helper\n  nfs: nfs4xdr: introduce decode_verifier helper\n  ...\n"
    },
    {
      "commit": "774a694f8cd08115d130a290d73c6d8563f26b1b",
      "tree": "2b5f834ac7a149278d2a7e44d7afe69f40ef1431",
      "parents": [
        "4f0ac854167846bd55cd81dbc9a36e03708aa01c",
        "e1f8450854d69f0291882804406ea1bab3ca44b4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:23:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:23:18 2009 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (64 commits)\n  sched: Fix sched::sched_stat_wait tracepoint field\n  sched: Disable NEW_FAIR_SLEEPERS for now\n  sched: Keep kthreads at default priority\n  sched: Re-tune the scheduler latency defaults to decrease worst-case latencies\n  sched: Turn off child_runs_first\n  sched: Ensure that a child can\u0027t gain time over it\u0027s parent after fork()\n  sched: enable SD_WAKE_IDLE\n  sched: Deal with low-load in wake_affine()\n  sched: Remove short cut from select_task_rq_fair()\n  sched: Turn on SD_BALANCE_NEWIDLE\n  sched: Clean up topology.h\n  sched: Fix dynamic power-balancing crash\n  sched: Remove reciprocal for cpu_power\n  sched: Try to deal with low capacity, fix update_sd_power_savings_stats()\n  sched: Try to deal with low capacity\n  sched: Scale down cpu_power due to RT tasks\n  sched: Implement dynamic cpu_power\n  sched: Add smt_gain\n  sched: Update the cpu_power sum during load-balance\n  sched: Add SD_PREFER_SIBLING\n  ...\n"
    },
    {
      "commit": "ab3bbaa8b257845e248e9a01d12a69ca245f4197",
      "tree": "f3054be9bd612194826ed6969d01346d329c3306",
      "parents": [
        "332a3392188e0ad966543c87b8da2b9d246f301d",
        "2ecda72b49a0849ce41e7fa1fa974a245b9119f8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 11 14:59:37 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 11 14:59:37 2009 -0400"
      },
      "message": "Merge branch \u0027nfs-for-2.6.32\u0027\n"
    },
    {
      "commit": "a9c86d42599519f3d83b5f46bdab25046fe47b84",
      "tree": "9b269e3162e5cc0c1a8dfc3349303c902718a9a9",
      "parents": [
        "a12e4d304ce701844c639541d90df86e165d03f9",
        "1110afbe728838ac7ce973c37af9e11385dbaef9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 09:19:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 09:19:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (377 commits)\n  ASoC: au1x: PSC-AC97 bugfixes\n  ALSA: dummy - Increase MAX_PCM_SUBSTREAMS to 128\n  ALSA: dummy - Add debug proc file\n  ALSA: Add const prefix to proc helper functions\n  ALSA: Re-export snd_pcm_format_name() function\n  ALSA: hda - Use auto model for HP laptops with ALC268 codec\n  ALSA: cs46xx - Fix minimum period size\n  ASoC: Fix WM835x Out4 capture enumeration\n  ALSA: Remove unneeded ifdef from sound/core.h\n  ALSA: Remove struct snd_monitor_file from public sound/core.h\n  ASoC: Remove unuused hw_read_t\n  sound: oxygen: work around MCE when changing volume\n  ALSA: dummy - Fake buffer allocations\n  ALSA: hda/realtek: Added support for CLEVO M540R subsystem, 6 channel + digital\n  ASoC: fix pxa2xx-ac97.c breakage\n  ALSA: dummy - Fix the timer calculation in systimer mode\n  ALSA: dummy - Add more description\n  ALSA: dummy - Better jiffies handling\n  ALSA: dummy - Support high-res timer mode\n  ALSA: Release v1.0.21\n  ...\n"
    },
    {
      "commit": "a12e4d304ce701844c639541d90df86e165d03f9",
      "tree": "6ad7314b63a3303d9aa36f1c7eeb68abf64d3592",
      "parents": [
        "89af571ca633ada14d17746519a179553a732d31",
        "500b067c5e6ceea49cf280a02597b1169320e08c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 09:17:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 09:17:05 2009 -0700"
      },
      "message": "Merge branch \u0027writeback\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027writeback\u0027 of git://git.kernel.dk/linux-2.6-block:\n  writeback: check for registered bdi in flusher add and inode dirty\n  writeback: add name to backing_dev_info\n  writeback: add some debug inode list counters to bdi stats\n  writeback: get rid of pdflush completely\n  writeback: switch to per-bdi threads for flushing data\n  writeback: move dirty inodes from super_block to backing_dev_info\n  writeback: get rid of generic_sync_sb_inodes() export\n"
    },
    {
      "commit": "f6f79190866d5b2d06a2114d673f91f54e7c7ce4",
      "tree": "025bc2ff00351c71a719cb5bc2aa3f59133400f6",
      "parents": [
        "0d03d59d9b31cd1e33b7e46a80b6fef66244b1f2",
        "a3c8b97396ef42edfb845788ba6f53b2a93ce980"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 08:55:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 08:55:49 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (57 commits)\n  binfmt_elf: fix PT_INTERP bss handling\n  TPM: Fixup boot probe timeout for tpm_tis driver\n  sysfs: Add labeling support for sysfs\n  LSM/SELinux: inode_{get,set,notify}secctx hooks to access LSM security context information.\n  VFS: Factor out part of vfs_setxattr so it can be called from the SELinux hook for inode_setsecctx.\n  KEYS: Add missing linux/tracehook.h #inclusions\n  KEYS: Fix default security_session_to_parent()\n  Security/SELinux: includecheck fix kernel/sysctl.c\n  KEYS: security_cred_alloc_blank() should return int under all circumstances\n  IMA: open new file for read\n  KEYS: Add a keyctl to install a process\u0027s session keyring on its parent [try #6]\n  KEYS: Extend TIF_NOTIFY_RESUME to (almost) all architectures [try #6]\n  KEYS: Do some whitespace cleanups [try #6]\n  KEYS: Make /proc/keys use keyid not numread as file position [try #6]\n  KEYS: Add garbage collection for dead, revoked and expired keys. [try #6]\n  KEYS: Flag dead keys to induce EKEYREVOKED [try #6]\n  KEYS: Allow keyctl_revoke() on keys that have SETATTR but not WRITE perm [try #6]\n  KEYS: Deal with dead-type keys appropriately [try #6]\n  CRED: Add some configurable debugging [try #6]\n  selinux: Support for the new TUN LSM hooks\n  ...\n"
    },
    {
      "commit": "500b067c5e6ceea49cf280a02597b1169320e08c",
      "tree": "5e2e9bfd66f825f845fdf395b6303b884769ff6d",
      "parents": [
        "d993831fa7ffeb89e994f046f93eeb09ec91df08"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 09 09:10:25 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: check for registered bdi in flusher add and inode dirty\n\nAlso a debugging aid. We want to catch dirty inodes being added to\nbacking devices that don\u0027t do writeback.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d993831fa7ffeb89e994f046f93eeb09ec91df08",
      "tree": "da4f94bbf022c83988bda71adf1f1b3a88cb4592",
      "parents": [
        "f09b00d3e789a88fa6c7c03cedc62cb65c1de0cb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 12 14:45:52 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: add name to backing_dev_info\n\nThis enables us to track who does what and print info. Its main use\nis catching dirty inodes on the default_backing_dev_info, so we can\nfix that up.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d0bceac747b547c0b4769b91fec7d3c15600153f",
      "tree": "f8de99db3c0cdafb01a801d1c2e94b2f5ddac967",
      "parents": [
        "03ba3782e8dcc5b0e1efe440d33084f066e38cae"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 18 08:20:32 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:25 2009 +0200"
      },
      "message": "writeback: get rid of pdflush completely\n\nIt is now unused, so kill it off.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "03ba3782e8dcc5b0e1efe440d33084f066e38cae",
      "tree": "e5a6513b411de16a46199530ec98ef9b7f1efc50",
      "parents": [
        "66f3b8e2e103a0b93b945764d98e9ba46cb926dd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 09 09:08:54 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:25 2009 +0200"
      },
      "message": "writeback: switch to per-bdi threads for flushing data\n\nThis gets rid of pdflush for bdi writeout and kupdated style cleaning.\npdflush writeout suffers from lack of locality and also requires more\nthreads to handle the same workload, since it has to work in a\nnon-blocking fashion against each queue. This also introduces lumpy\nbehaviour and potential request starvation, since pdflush can be starved\nfor queue access if others are accessing it. A sample ffsb workload that\ndoes random writes to files is about 8% faster here on a simple SATA drive\nduring the benchmark phase. File layout also seems a LOT more smooth in\nvmstat:\n\n r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa\n 0  1      0 608848   2652 375372    0    0     0 71024  604    24  1 10 48 42\n 0  1      0 549644   2712 433736    0    0     0 60692  505    27  1  8 48 44\n 1  0      0 476928   2784 505192    0    0     4 29540  553    24  0  9 53 37\n 0  1      0 457972   2808 524008    0    0     0 54876  331    16  0  4 38 58\n 0  1      0 366128   2928 614284    0    0     4 92168  710    58  0 13 53 34\n 0  1      0 295092   3000 684140    0    0     0 62924  572    23  0  9 53 37\n 0  1      0 236592   3064 741704    0    0     4 58256  523    17  0  8 48 44\n 0  1      0 165608   3132 811464    0    0     0 57460  560    21  0  8 54 38\n 0  1      0 102952   3200 873164    0    0     4 74748  540    29  1 10 48 41\n 0  1      0  48604   3252 926472    0    0     0 53248  469    29  0  7 47 45\n\nwhere vanilla tends to fluctuate a lot in the creation phase:\n\n r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa\n 1  1      0 678716   5792 303380    0    0     0 74064  565    50  1 11 52 36\n 1  0      0 662488   5864 319396    0    0     4   352  302   329  0  2 47 51\n 0  1      0 599312   5924 381468    0    0     0 78164  516    55  0  9 51 40\n 0  1      0 519952   6008 459516    0    0     4 78156  622    56  1 11 52 37\n 1  1      0 436640   6092 541632    0    0     0 82244  622    54  0 11 48 41\n 0  1      0 436640   6092 541660    0    0     0     8  152    39  0  0 51 49\n 0  1      0 332224   6200 644252    0    0     4 102800  728    46  1 13 49 36\n 1  0      0 274492   6260 701056    0    0     4 12328  459    49  0  7 50 43\n 0  1      0 211220   6324 763356    0    0     0 106940  515    37  1 10 51 39\n 1  0      0 160412   6376 813468    0    0     0  8224  415    43  0  6 49 45\n 1  1      0  85980   6452 886556    0    0     4 113516  575    39  1 11 54 34\n 0  2      0  85968   6452 886620    0    0     0  1640  158   211  0  0 46 54\n\nA 10 disk test with btrfs performs 26% faster with per-bdi flushing. A\nSSD based writeback test on XFS performs over 20% better as well, with\nthe throughput being very stable around 1GB/sec, where pdflush only\nmanages 750MB/sec and fluctuates wildly while doing so. Random buffered\nwrites to many files behave a lot better as well, as does random mmap\u0027ed\nwrites.\n\nA separate thread is added to sync the super blocks. In the long term,\nadding sync_supers_bdi() functionality could get rid of this thread again.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "66f3b8e2e103a0b93b945764d98e9ba46cb926dd",
      "tree": "442bf5664214f0a1448e4010b09868cc58fdd3d1",
      "parents": [
        "d8a8559cd7a9ccac98d5f6f13297a2ff68a43627"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 02 09:19:46 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:25 2009 +0200"
      },
      "message": "writeback: move dirty inodes from super_block to backing_dev_info\n\nThis is a first step at introducing per-bdi flusher threads. We should\nhave no change in behaviour, although sb_has_dirty_inodes() is now\nridiculously expensive, as there\u0027s no easy way to answer that question.\nNot a huge problem, since it\u0027ll be deleted in subsequent patches.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d8a8559cd7a9ccac98d5f6f13297a2ff68a43627",
      "tree": "165e02117205e9790c21b2facc130b23addf3775",
      "parents": [
        "0d03d59d9b31cd1e33b7e46a80b6fef66244b1f2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 02 12:34:32 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:25 2009 +0200"
      },
      "message": "writeback: get rid of generic_sync_sb_inodes() export\n\nThis adds two new exported functions:\n\n- writeback_inodes_sb(), which only attempts to writeback dirty inodes on\n  this super_block, for WB_SYNC_NONE writeout.\n- sync_inodes_sb(), which writes out all dirty inodes on this super_block\n  and also waits for the IO to complete.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a3c8b97396ef42edfb845788ba6f53b2a93ce980",
      "tree": "530c5bdbc534618311dab3e0af245835af56db0f",
      "parents": [
        "74fca6a42863ffacaf7ba6f1936a9f228950f657",
        "9f0ab4a3f0fdb1ff404d150618ace2fa069bb2e1"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Sep 11 08:04:49 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Sep 11 08:04:49 2009 +1000"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "3827119e207823ff0f3e85271bef7a0dc953ee38",
      "tree": "66d2a24524628b3123b39e1364281886d2f9074f",
      "parents": [
        "9d416811f8cab11bf595b2880c557c33e3ae1ae9",
        "93fe4483e6fd3e71d17cd919de14b3b1f9eb3795"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Sep 10 15:33:04 2009 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Sep 10 15:33:04 2009 +0200"
      },
      "message": "Merge branch \u0027topic/soundcore-preclaim\u0027 into for-linus\n\n* topic/soundcore-preclaim:\n  sound: make OSS device number claiming optional and schedule its removal\n  sound: request char-major-* module aliases for missing OSS devices\n  chrdev: implement __[un]register_chrdev()\n"
    },
    {
      "commit": "9f0ab4a3f0fdb1ff404d150618ace2fa069bb2e1",
      "tree": "513bd54b92aad6ba44173e11e85a3203c26583fb",
      "parents": [
        "ec57935837a78f9661125b08a5d08b697568e040"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Tue Sep 08 19:49:40 2009 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Sep 10 20:11:12 2009 +1000"
      },
      "message": "binfmt_elf: fix PT_INTERP bss handling\n\nIn fs/binfmt_elf.c, load_elf_interp() calls padzero() for .bss even if\nthe PT_LOAD has no PROT_WRITE and no .bss.  This generates EFAULT.\n\nHere is a small test case.  (Yes, there are other, useful PT_INTERP\nwhich have only .text and no .data/.bss.)\n\n\t----- ptinterp.S\n\t_start: .globl _start\n\t\t nop\n\t\t int3\n\t-----\n\t$ gcc -m32 -nostartfiles -nostdlib -o ptinterp ptinterp.S\n\t$ gcc -m32 -Wl,--dynamic-linker\u003dptinterp -o hello hello.c\n\t$ ./hello\n\tSegmentation fault  # during execve() itself\n\n\tAfter applying the patch:\n\t$ ./hello\n\tTrace trap  # user-mode execution after execve() finishes\n\nIf the ELF headers are actually self-inconsistent, then dying is fine.\nBut having no PROT_WRITE segment is perfectly normal and correct if\nthere is no segment with p_memsz \u003e p_filesz (i.e. bss).  John Reiser\nsuggested checking for PROT_WRITE in the bss logic.  I think it makes\nmost sense to simply apply the bss logic only when there is bss.\n\nThis patch looks less trivial than it is due to some reindentation.\nIt just moves the \"if (last_bss \u003e elf_bss) {\" test up to include the\npartial-page bss logic as well as the more-pages bss logic.\n\nReported-by: John Reiser \u003cjreiser@bitwagon.com\u003e\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "526b678093a8a4bcf1ffffbe17bcf21c057eddf5",
      "tree": "6c0a5b35783f1e89406b667c9c525571d1b4d24e",
      "parents": [
        "752015d1b0683a8c623ebfe4c62893413e9b30d3",
        "18f4c644773bc8de1fd9c5182b30c231aafb94ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 20:04:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 20:04:54 2009 -0700"
      },
      "message": "Merge branch \u0027lookup-permissions-cleanup\u0027\n\n* lookup-permissions-cleanup:\n  jffs2/jfs/xfs: switch over to \u0027check_acl\u0027 rather than \u0027permission()\u0027\n  ext[234]: move over to \u0027check_acl\u0027 permission model\n  shmfs: use \u0027check_acl\u0027 instead of \u0027permission\u0027\n  Make \u0027check_acl()\u0027 a first-class filesystem op\n  Simplify exec_permission_lite(), part 3\n  Simplify exec_permission_lite() further\n  Simplify exec_permission_lite() logic\n  Do not call \u0027ima_path_check()\u0027 for each path component\n"
    },
    {
      "commit": "752015d1b0683a8c623ebfe4c62893413e9b30d3",
      "tree": "1ad20299d64fd85678ae9714f88d8683ed335da1",
      "parents": [
        "74fca6a42863ffacaf7ba6f1936a9f228950f657"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Tue Sep 08 19:49:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 20:03:47 2009 -0700"
      },
      "message": "binfmt_elf: fix PT_INTERP bss handling\n\nIn fs/binfmt_elf.c, load_elf_interp() calls padzero() for .bss even if\nthe PT_LOAD has no PROT_WRITE and no .bss.  This generates EFAULT.\n\nHere is a small test case.  (Yes, there are other, useful PT_INTERP\nwhich have only .text and no .data/.bss.)\n\n\t----- ptinterp.S\n\t_start: .globl _start\n\t\t nop\n\t\t int3\n\t-----\n\t$ gcc -m32 -nostartfiles -nostdlib -o ptinterp ptinterp.S\n\t$ gcc -m32 -Wl,--dynamic-linker\u003dptinterp -o hello hello.c\n\t$ ./hello\n\tSegmentation fault  # during execve() itself\n\n\tAfter applying the patch:\n\t$ ./hello\n\tTrace trap  # user-mode execution after execve() finishes\n\nIf the ELF headers are actually self-inconsistent, then dying is fine.\nBut having no PROT_WRITE segment is perfectly normal and correct if\nthere is no segment with p_memsz \u003e p_filesz (i.e. bss).  John Reiser\nsuggested checking for PROT_WRITE in the bss logic.  I think it makes\nmost sense to simply apply the bss logic only when there is bss.\n\nThis patch looks less trivial than it is due to some reindentation.\nIt just moves the \"if (last_bss \u003e elf_bss) {\" test up to include the\npartial-page bss logic as well as the more-pages bss logic.\n\nReported-by: John Reiser \u003cjreiser@bitwagon.com\u003e\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ddd29ec6597125c830f7badb608a86c98b936b64",
      "tree": "e6df1ef9a635179de78650d006ecb4cd1453ebb1",
      "parents": [
        "1ee65e37e904b959c24404139f5752edc66319d5"
      ],
      "author": {
        "name": "David P. Quigley",
        "email": "dpquigl@tycho.nsa.gov",
        "time": "Wed Sep 09 14:25:37 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Sep 10 10:11:29 2009 +1000"
      },
      "message": "sysfs: Add labeling support for sysfs\n\nThis patch adds a setxattr handler to the file, directory, and symlink\ninode_operations structures for sysfs. The patch uses hooks introduced in the\nprevious patch to handle the getting and setting of security information for\nthe sysfs inodes. As was suggested by Eric Biederman the struct iattr in the\nsysfs_dirent structure has been replaced by a structure which contains the\niattr, secdata and secdata length to allow the changes to persist in the event\nthat the inode representing the sysfs_dirent is evicted. Because sysfs only\nstores this information when a change is made all the optional data is moved\ninto one dynamically allocated field.\n\nThis patch addresses an issue where SELinux was denying virtd access to the PCI\nconfiguration entries in sysfs. The lack of setxattr handlers for sysfs\nrequired that a single label be assigned to all entries in sysfs. Granting virtd\naccess to every entry in sysfs is not an acceptable solution so fine grained\nlabeling of sysfs is required such that individual entries can be labeled\nappropriately.\n\n[sds:  Fixed compile-time warnings, coding style, and setting of inode security init flags.]\n\nSigned-off-by: David P. Quigley \u003cdpquigl@tycho.nsa.gov\u003e\nSigned-off-by: Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b1ab7e4b2a88d3ac13771463be8f302ce1616cfc",
      "tree": "c08825120cb290a4307d36ee0bee806ad2aae83c",
      "parents": [
        "733e5e4b4eb1bc1e27acbe092200154051171426"
      ],
      "author": {
        "name": "David P. Quigley",
        "email": "dpquigl@tycho.nsa.gov",
        "time": "Thu Sep 03 14:25:56 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Sep 10 10:11:22 2009 +1000"
      },
      "message": "VFS: Factor out part of vfs_setxattr so it can be called from the SELinux hook for inode_setsecctx.\n\nThis factors out the part of the vfs_setxattr function that performs the\nsetting of the xattr and its notification. This is needed so the SELinux\nimplementation of inode_setsecctx can handle the setting of the xattr while\nmaintaining the proper separation of layers.\n\nSigned-off-by: David P. Quigley \u003cdpquigl@tycho.nsa.gov\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2b88f7c535a8125213def012a67c1b0a667ceb2e",
      "tree": "9351a2c0a444c5054bf9b4744f37b3ac30a2ab32",
      "parents": [
        "acf7e2444acfaf4c8540603b76d71010eea3fc24"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 09 15:59:35 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 09 15:59:35 2009 +0100"
      },
      "message": "GFS2: Remove unused sysfs file\n\nThe /sys/fs/gfs2/\u003cfsname\u003e/lock_module/id file has been unused for\nsome time now, so we can remove it. We still accept the mount option\nthough, as userspace still sends that.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2ecda72b49a0849ce41e7fa1fa974a245b9119f8",
      "tree": "d0c4eb474536581d79ae41ab72cb24c10571c83a",
      "parents": [
        "764302ccb88dd0df062eccd507b6c6de24f1c560"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:50:07 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:50:07 2009 -0400"
      },
      "message": "NFSv4: Disallow \u0027mount -t nfs4 -overs\u003d2\u0027 and \u0027mount -t nfs4 -overs\u003d3\u0027\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "764302ccb88dd0df062eccd507b6c6de24f1c560",
      "tree": "00f9f1e80c07495e6649eccb17faf7b3d4f2a25a",
      "parents": [
        "a6fe23be90aa78783523a25330e09bfaa43a1581"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Sep 08 19:50:03 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:50:03 2009 -0400"
      },
      "message": "NFS: Allow the \"nfs\" file system type to support NFSv4\n\nWhen mounting an \"nfs\" type file system, recognize \"v4,\" \"vers\u003d4,\" or\n\"nfsvers\u003d4\" mount options, and convert the file system to \"nfs4\" under\nthe covers.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n[trondmy: fixed up binary mount code so it sets the \u0027version\u0027 field too]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a6fe23be90aa78783523a25330e09bfaa43a1581",
      "tree": "f77656861a6464f114e2e4bf5b9f5016bf18c0c5",
      "parents": [
        "7630c852e19c7fffb85b50d98eeb5516fec7c088"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Sep 08 19:50:00 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:50:00 2009 -0400"
      },
      "message": "NFS: Move details of nfs4_get_sb() to a helper\n\nClean up: Refactor nfs4_get_sb() to allow its guts to be invoked by\nnfs_get_sb().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7630c852e19c7fffb85b50d98eeb5516fec7c088",
      "tree": "cc22b94697a175eccf9b0f090854d93e9cf8de38",
      "parents": [
        "4cfd74fc99a41fdc161f243e1c16199656d33ab1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Sep 08 19:49:57 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:49:57 2009 -0400"
      },
      "message": "NFS: Refactor NFSv4 text-based mount option validation\n\nClean up: Refactor the part of nfs4_validate_mount_options() that\nhandles text-based options, so we can call it from the NFSv2/v3\noption validation function.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4cfd74fc99a41fdc161f243e1c16199656d33ab1",
      "tree": "b92cb5a87dfeb13cc042768351ffda6a64d58713",
      "parents": [
        "dbab8360ed8abca38121109feab47c4bea895994"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Sep 08 19:49:47 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:49:47 2009 -0400"
      },
      "message": "NFS: Mount option parser should detect missing \"port\u003d\"\n\nThe meaning of not specifying the \"port\u003d\" mount option is different\nfor \"-t nfs\" and \"-t nfs4\" mounts.  The default port value for\nNFSv2/v3 mounts is 0, but the default for NFSv4 mounts is 2049.\n\nTo support \"-t nfs -o vers\u003d4\", the mount option parser must detect\nwhen \"port\u003d\" is missing so that the correct default port value can be\nset depending on which NFS version is requested.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dbab8360ed8abca38121109feab47c4bea895994",
      "tree": "05e37cba3e719a5a93e416ac70fd5e6dde1151c9",
      "parents": [
        "5eecfde615894dc1c2e3f85b515a96ae2e408fb5"
      ],
      "author": {
        "name": "Harshula Jayasuriya",
        "email": "harshula@redhat.com",
        "time": "Tue Sep 08 19:49:33 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:49:33 2009 -0400"
      },
      "message": "NFS: out of date comment regarding O_EXCL above nfs3_proc_create()\n\nHi Trond,\n\nRecently we were observing the behaviour difference between a 2.4.x and\n2.6.x kernel with respect to O_EXCL. A comment from 2.4.x era, \"For now,\nwe don\u0027t implement O_EXCL.\" seems inaccurate in TOT.\n\nIf so, here\u0027s a patch to remove the comment.\n\nThis patch is against:\ngit://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nSigned-off-by: Harshula Jayasuriya \u003charshula@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "18f4c644773bc8de1fd9c5182b30c231aafb94ef",
      "tree": "b423bdb22304c6af3ad0f26b873e6081fafc8f01",
      "parents": [
        "1d5ccd1c422d7d292a9e45248aa36771900c6331"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 12:29:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:09:04 2009 -0700"
      },
      "message": "jffs2/jfs/xfs: switch over to \u0027check_acl\u0027 rather than \u0027permission()\u0027\n\nThis avoids an indirect call in the VFS for each path component lookup.\n\nWell, at least as long as you own the directory in question, and the ACL\ncheck is unnecessary.\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d5ccd1c422d7d292a9e45248aa36771900c6331",
      "tree": "6fa8e117697dcb42dfec026149dfea49325bed98",
      "parents": [
        "6d848a488ad83cc3891bb274691118f45ce6aab9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 12:12:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:09:04 2009 -0700"
      },
      "message": "ext[234]: move over to \u0027check_acl\u0027 permission model\n\nDon\u0027t implement per-filesystem \u0027extX_permission()\u0027 functions that have\nto be called for every path component operation, and instead just expose\nthe actual ACL checking so that the VFS layer can now do it for us.\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5909ccaa300a4a834ffa275327af4df0b9cb5295",
      "tree": "b4e402a2a544be7c59bccd4b4533787f2f19e7bc",
      "parents": [
        "cb9179ead0aa0e3b7b4087cdba59baf16bbeef6d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 11:51:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:07:44 2009 -0700"
      },
      "message": "Make \u0027check_acl()\u0027 a first-class filesystem op\n\nThis is stage one in flattening out the callchains for the common\npermission testing.  Rather than have most filesystem implement their\nown inode-\u003ei_op-\u003epermission function that just calls back down to the\nVFS layers \u0027generic_permission()\u0027 with the per-filesystem ACL checking\nfunction, the filesystem can just expose its \u0027check_acl\u0027 function\ndirectly, and let the VFS layer do everything for it.\n\nThis is all just preparatory - no filesystem actually enables this yet.\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb9179ead0aa0e3b7b4087cdba59baf16bbeef6d",
      "tree": "04d91abc90dc3f48d70bc95bc9bed6f561369008",
      "parents": [
        "f1ac9f6bfea6f21e8ab6dbbe46879d62a6fba8c0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 11:08:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:07:44 2009 -0700"
      },
      "message": "Simplify exec_permission_lite(), part 3\n\nDon\u0027t call down to the generic inode_permission() function just to\ncall the inode-specific permission function - just do it directly.\n\nThe generic inode_permission() code does things like checking MAY_WRITE\nand devcgroup_inode_permission(), neither of which are relevant for the\nlight pathname walk permission checks (we always do just MAY_EXEC, and\nthe inode is never a special device).\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1ac9f6bfea6f21e8ab6dbbe46879d62a6fba8c0",
      "tree": "01b4e3c84e1403f6c900dd4412aa09cd335c030c",
      "parents": [
        "b7a437b08a44a3ed7e3a052eb39d2c5f618b603b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 10:53:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:07:43 2009 -0700"
      },
      "message": "Simplify exec_permission_lite() further\n\nThis function is only called for path components that are already known\nto be directories (they have a \u0027-\u003elookup\u0027 method).  So don\u0027t bother\ndoing that whole S_ISDIR() testing, the whole point of the \u0027lite()\u0027\nversion is that we know that we are looking at a directory component,\nand that we\u0027re only checking name lookup permission.\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b7a437b08a44a3ed7e3a052eb39d2c5f618b603b",
      "tree": "fdb03edf0254e9f24fe7f3e3e2f75d3ac0a3f9e0",
      "parents": [
        "e8e66ed25b5cbeebed69c475f6c108e52078a3b3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 10:50:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:07:43 2009 -0700"
      },
      "message": "Simplify exec_permission_lite() logic\n\nInstead of returning EAGAIN and having the caller do something\nspecial for that case,  just do the special case directly.\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8e66ed25b5cbeebed69c475f6c108e52078a3b3",
      "tree": "1827efb3f775eb27238ccaf174cac9228f83cebf",
      "parents": [
        "7c8460db30dfd085ef3837c8fb02ecf2e718b983"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 10:05:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:07:17 2009 -0700"
      },
      "message": "Do not call \u0027ima_path_check()\u0027 for each path component\n\nNot only is that a supremely timing-critical path, but it\u0027s hopefully\nsome day going to be lockless for the common case, and ima can\u0027t do\nthat.\n\nPlus the integrity code doesn\u0027t even care about non-regular files, so it\nwas always a total waste of time and effort.\n\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "acf7e2444acfaf4c8540603b76d71010eea3fc24",
      "tree": "7c31957ffbbb4008f368b8640c289f72657330a5",
      "parents": [
        "8d8291ae93ecb4a246e87e452d55cca412373300"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 08 18:00:30 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 08 18:00:30 2009 +0100"
      },
      "message": "GFS2: Be extra careful about deallocating inodes\n\nThere is a potential race in the inode deallocation code if two\nnodes try to deallocate the same inode at the same time. Most of\nthe issue is solved by the iopen locking. There is still a small\nwindow which is not covered by the iopen lock. This patches fixes\nthat and also makes the deallocation code more robust in the face of\nany errors in the rgrp bitmaps, or erroneous iopen callbacks from\nother nodes.\n\nThis does introduce one extra disk read, but that is generally not\nan issue since its the same block that must be written to later\nin the deallocation process. The total disk accesses therefore stay\nthe same,\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "acd0c935178649f72c44ec49ca83bee35ce1f79e",
      "tree": "c0cb2f8fbbaa54567785b5430e5be8c8b51f5724",
      "parents": [
        "e07cccf4046978df10f2e13fe2b99b2f9b3a65db"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Fri Sep 04 13:08:46 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Sep 07 11:54:58 2009 +1000"
      },
      "message": "IMA: update ima_counts_put\n\n- As ima_counts_put() may be called after the inode has been freed,\nverify that the inode is not NULL, before dereferencing it.\n\n- Maintain the IMA file counters in may_open() properly, decrementing\nany counter increments on subsequent errors.\n\nReported-by: Ciprian Docan \u003cdocan@eden.rutgers.edu\u003e\nReported-by: J.R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "5136a6c0fd5b26bbf39ad761cf7a4fc563ad83a3",
      "tree": "7c905238cb2c5c9cd959cd652010b0eaf5f91db3",
      "parents": [
        "e505a8d5f96a84f3043ce0c4eaee8f045996896c",
        "bc8cec0dff072f1a45ce7f6b2c5234bb3411ac51"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 14:57:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 14:57:04 2009 -0700"
      },
      "message": "Merge git://git.infradead.org/~dwmw2/mtd-2.6.31\n\n* git://git.infradead.org/~dwmw2/mtd-2.6.31:\n  JFFS2: add missing verify buffer allocation/deallocation\n  mtd: nftl: fix offset alignments\n  mtd: nftl: write support is broken\n  mtd: m25p80: fix null pointer dereference bug\n"
    },
    {
      "commit": "0edfa2b1b5a5e1475e76dd3c792447687d966de4",
      "tree": "a811a6955bb0fffc883e59eb261206b132e9e6dc",
      "parents": [
        "5a09adf13067609d8ab9fcae11dc99fd0084e35c",
        "3725867dccfb83e4b0cff64e916a04258f300591"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 14:25:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 14:25:14 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: actually enable the swapext compat handler\n"
    },
    {
      "commit": "5a09adf13067609d8ab9fcae11dc99fd0084e35c",
      "tree": "be2908bf2a8a20e9bebb4a064611ca5c2e2977f9",
      "parents": [
        "931f70350e9c298887c78e852d179ef7efcce304",
        "b1f1b8ce0a1d71cbc72f7540134d52b79bd8f5ac"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 14:24:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 14:24:33 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:\n  nilfs2: fix preempt count underflow in nilfs_btnode_prepare_change_key\n"
    },
    {
      "commit": "9de6886ec6e37f45807266a702bb7621498395ad",
      "tree": "39402a2d467a856d0f956015a7ad0772719bf1b6",
      "parents": [
        "ac7ac9f2b9bfd9b68a1571d27e4c8bebb4788914"
      ],
      "author": {
        "name": "Nicolas Pitre",
        "email": "nico@cam.org",
        "time": "Sat Sep 05 00:25:37 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 13:41:08 2009 -0700"
      },
      "message": "ext2: fix unbalanced kmap()/kunmap()\n\nIn ext2_rename(), dir_page is acquired through ext2_dotdot().  It is\nthen released through ext2_set_link() but only if old_dir !\u003d new_dir.\nFailing that, the pkmap reference count is never decremented and the\npage remains pinned forever.  Repeat that a couple times with highmem\npages and all pkmap slots get exhausted, and every further kmap() calls\nend up stalling on the pkmap_map_wait queue at which point the whole\nsystem comes to a halt.\n\nSigned-off-by: Nicolas Pitre \u003cnico@marvell.com\u003e\nAcked-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac7ac9f2b9bfd9b68a1571d27e4c8bebb4788914",
      "tree": "02aa160e02f7f1f4a65a7f478e9a92c0b7ad0088",
      "parents": [
        "ac89a9174decf343de049a06fad75681f71890eb",
        "8379e7c46cc48f51197dd663fc6676f47f2a1e71"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 13:38:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 13:38:37 2009 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:\n  ocfs2: ocfs2_write_begin_nolock() should handle len\u003d0\n  ocfs2: invalidate dentry if its dentry_lock isn\u0027t initialized.\n"
    },
    {
      "commit": "a2a8474c3fff88d8dd52d05cb450563fb26fd26c",
      "tree": "455415da039a77627f47ed19318bb9c8aa17de4d",
      "parents": [
        "dd5d241ea955006122d76af88af87de73fec25b4"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 05 11:17:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 05 11:30:42 2009 -0700"
      },
      "message": "exec: do not sleep in TASK_TRACED under -\u003ecred_guard_mutex\n\nTom Horsley reports that his debugger hangs when it tries to read\n/proc/pid_of_tracee/maps, this happens since\n\n\t\"mm_for_maps: take -\u003ecred_guard_mutex to fix the race with exec\"\n\t04b836cbf19e885f8366bccb2e4b0474346c02d\n\ncommit in 2.6.31.\n\nBut the root of the problem lies in the fact that do_execve() path calls\ntracehook_report_exec() which can stop if the tracer sets PT_TRACE_EXEC.\n\nThe tracee must not sleep in TASK_TRACED holding this mutex.  Even if we\nremove -\u003ecred_guard_mutex from mm_for_maps() and proc_pid_attr_write(),\nanother task doing PTRACE_ATTACH should not hang until it is killed or the\ntracee resumes.\n\nWith this patch do_execve() does not use -\u003ecred_guard_mutex directly and\nwe do not hold it throughout, instead:\n\n\t- introduce prepare_bprm_creds() helper, it locks the mutex\n\t  and calls prepare_exec_creds() to initialize bprm-\u003ecred.\n\n\t- install_exec_creds() drops the mutex after commit_creds(),\n\t  and thus before tracehook_report_exec()-\u003eptrace_stop().\n\n\t  or, if exec fails,\n\n\t  free_bprm() drops this mutex when bprm-\u003ecred !\u003d NULL which\n\t  indicates install_exec_creds() was not called.\n\nReported-by: Tom Horsley \u003ctom.horsley@att.net\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8379e7c46cc48f51197dd663fc6676f47f2a1e71",
      "tree": "ee6ae04dd7014bfe311ea0f48a0aea734a96c2ed",
      "parents": [
        "a1b08e75dff3dc18a88444803753e667bb1d126e"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Fri Sep 04 11:12:01 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 14:28:31 2009 -0700"
      },
      "message": "ocfs2: ocfs2_write_begin_nolock() should handle len\u003d0\n\nBug introduced by mainline commit e7432675f8ca868a4af365759a8d4c3779a3d922\nThe bug causes ocfs2_write_begin_nolock() to oops when len\u003d0.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "9162ab2000e08be076883b5a295a771223264ce8",
      "tree": "95a51f8e1fe17a3916ed77554ac6de7e0c82b556",
      "parents": [
        "6ab409b53dcaf28f83d518a6702f904b7cee3f41"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Sep 03 12:07:17 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Sep 03 15:30:48 2009 +0000"
      },
      "message": "cifs: consolidate reconnect logic in smb_init routines\n\nThere\u0027s a large cut and paste chunk of code in smb_init and\nsmall_smb_init to handle reconnects. Break it out into a separate\nfunction, clean it up and have both routines call it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "bc8cec0dff072f1a45ce7f6b2c5234bb3411ac51",
      "tree": "c0794baebf16ecbbedbe79daaba80281fdad1e03",
      "parents": [
        "16f05c2b68520f94e365f9d347a7076f4ff00ad5"
      ],
      "author": {
        "name": "Massimo Cirillo",
        "email": "maxcir@gmail.com",
        "time": "Thu Aug 27 10:44:09 2009 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Thu Sep 03 15:01:34 2009 +0100"
      },
      "message": "JFFS2: add missing verify buffer allocation/deallocation\n\nThe function jffs2_nor_wbuf_flash_setup() doesn\u0027t allocate the verify buffer\nif CONFIG_JFFS2_FS_WBUF_VERIFY is defined, so causing a kernel panic when\nthat macro is enabled and the verify function is called. Similarly the\njffs2_nor_wbuf_flash_cleanup() must free the buffer if\nCONFIG_JFFS2_FS_WBUF_VERIFY is enabled.\nThe following patch fixes the problem.\nThe following patch applies to 2.6.30 kernel.\n\nSigned-off-by: Massimo Cirillo \u003cmaxcir@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "6c1488fd581a447ec87c4b59f0d33f95f0aa441b",
      "tree": "ae7229de1dc5582413e76f45ffdc04ae941e1daa",
      "parents": [
        "ee18d64c1f632043a02e6f5ba5e045bb26a5465f"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Sep 02 11:40:32 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Sep 03 12:06:12 2009 +1000"
      },
      "message": "IMA: open new file for read\n\nWhen creating a new file, ima_path_check() assumed the new file\nwas being opened for write. Call ima_path_check() with the\nappropriate acc_mode so that the read/write counters are\nincremented correctly.\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "e0e817392b9acf2c98d3be80c233dddb1b52003d",
      "tree": "ee680c020039313c9f9c40ab3542bb30a7363381",
      "parents": [
        "ed6d76e4c32de0c2ad5f1d572b948ef49e465176"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 02 09:13:40 2009 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Sep 02 21:29:01 2009 +1000"
      },
      "message": "CRED: Add some configurable debugging [try #6]\n\nAdd a config option (CONFIG_DEBUG_CREDENTIALS) to turn on some debug checking\nfor credential management.  The additional code keeps track of the number of\npointers from task_structs to any given cred struct, and checks to see that\nthis number never exceeds the usage count of the cred struct (which includes\nall references, not just those from task_structs).\n\nFurthermore, if SELinux is enabled, the code also checks that the security\npointer in the cred struct is never seen to be invalid.\n\nThis attempts to catch the bug whereby inode_has_perm() faults in an nfsd\nkernel thread on seeing cred-\u003esecurity be a NULL pointer (it appears that the\ncredential struct has been previously released):\n\n\thttp://www.kerneloops.org/oops.php?number\u003d252883\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "f14eff1cc2f418a7c5e23aedc6a1bdca3343b871",
      "tree": "fd8d5f7ed2b2e94eff4007e8da0e9ed205d8d5c9",
      "parents": [
        "84e9dabf6e6a78928c6a1a8ba235c9fb0908d0f8",
        "326ba5010a5429a5a528b268b36a5900d4ab0eba"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 02 08:20:32 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 02 08:20:35 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.31-rc8\u0027 into sched/core\n\nMerge reason: bump from rc5 to rc8, but also pick up TP_perf_assign()\n              API, a patch will be queued that depends on it.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6ab409b53dcaf28f83d518a6702f904b7cee3f41",
      "tree": "050bfb690ac9df049343034681478a5bb174a823",
      "parents": [
        "1b49c5566136455764a8d17ead25784f534c202d"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@linux.vnet.ibm.com",
        "time": "Mon Aug 31 11:07:12 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Sep 01 22:35:01 2009 +0000"
      },
      "message": "cifs: Replace wrtPending with a real reference count\n\nCurrently, cifs_close() tries to wait until all I/O is complete and then\nfrees the file private data.  If I/O does not completely in a reasonable\namount of time it frees the structure anyway, leaving a potential use-\nafter-free situation.\n\nThis patch changes the wrtPending counter to a complete reference count and\nlets the last user free the structure.\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nTested-by: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "1b49c5566136455764a8d17ead25784f534c202d",
      "tree": "6946842743140355a6f6b1fb1f27fbfa59132337",
      "parents": [
        "8e047d09ee1143058b71f40c5f4d028dde52d883"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Aug 28 10:11:11 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Sep 01 22:25:29 2009 +0000"
      },
      "message": "cifs: protect GlobalOplock_Q with its own spinlock\n\nRight now, the GlobalOplock_Q is protected by the GlobalMid_Lock. That\nlock is also used for completely unrelated purposes (mostly for managing\nthe global mid queue). Give the list its own dedicated spinlock\n(cifs_oplock_lock) and rename the list to cifs_oplock_list to\neliminate the camel-case.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "8e047d09ee1143058b71f40c5f4d028dde52d883",
      "tree": "05db83ba0f9c5a4af824d60c3b15f4c0204b615b",
      "parents": [
        "8c58b54574d18b3782b2a261b9dae3c4e90b6b04"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Aug 28 10:11:10 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Sep 01 22:25:19 2009 +0000"
      },
      "message": "cifs: use tcon pointer in cifs_show_options\n\nMinor nit: we already have a tcon pointer so we don\u0027t need to\ndereference cifs_sb again.\n\nAlso initialize the vars in the declaration.\n\nReported-by: Peter Staubach \u003cstaubach@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "8c58b54574d18b3782b2a261b9dae3c4e90b6b04",
      "tree": "76e32545f819dce52b1cb0bdc6236dd539c271bc",
      "parents": [
        "ca43e3beee38623a3f80691b28623d6ecf214742"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Aug 17 16:26:49 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Sep 01 22:24:10 2009 +0000"
      },
      "message": "cifs: send IPv6 addr in upcall with colon delimiters\n\nMake it easier on the upcall program by adding \u0027:\u0027 delimiters between\neach group of hex digits.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "3725867dccfb83e4b0cff64e916a04258f300591",
      "tree": "5c7f888895bf63994a85a02658f1a3433b2dccae",
      "parents": [
        "bc990f5cb424cdca9dda866785d088e2c2110ecc"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Sep 01 14:03:08 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 17:00:46 2009 -0500"
      },
      "message": "xfs: actually enable the swapext compat handler\n\nFix a small typo in the compat ioctl handler that cause the swapext\ncompat handler to never be called.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nTested-by: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "ca43e3beee38623a3f80691b28623d6ecf214742",
      "tree": "779d99d0f4a29d3fc6541f48423da9852eb6bbbe",
      "parents": [
        "bdb97adcdf0993adbd2eef44b4533620d43792de"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Sep 01 17:20:50 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Sep 01 17:20:50 2009 +0000"
      },
      "message": "[CIFS] Fix checkpatch warnings\n\nAlso update version number to 1.61\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "bdb97adcdf0993adbd2eef44b4533620d43792de",
      "tree": "5d2a120233c93d6a372d26d5ce3fc6cb6525fa6e",
      "parents": [
        "1b3859bc9e20d764316346665fc93ecea2d2b176"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Thu Aug 20 13:03:34 2009 +0530"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Sep 01 17:08:48 2009 +0000"
      },
      "message": "PATCH] cifs: fix broken mounts when a SSH tunnel is used (try #4)\n\nOne more try..\n\nIt seems there is a regression that got introduced while Jeff fixed\nall the mount/umount races. While attempting to find whether a tcp\nsession is already existing, we were not checking whether the \"port\"\nused are the same. When a second mount is attempted with a different\n\"port\u003d\" option, it is being ignored. Because of this the cifs mounts\nthat uses a SSH tunnel appears to be broken.\n\nSteps to reproduce:\n\n1. create 2 shares\n# SSH Tunnel a SMB session\n2. ssh -f -L 6111:127.0.0.1:445 root@localhost \"sleep 86400\"\n3. ssh -f -L 6222:127.0.0.1:445 root@localhost \"sleep 86400\"\n4. tcpdump -i lo 6111 \u0026\n5. mkdir -p /mnt/mnt1\n6. mkdir -p /mnt/mnt2\n7. mount.cifs //localhost/a /mnt/mnt1 -o username\u003dguest,ip\u003d127.0.0.1,port\u003d6111\n#(shows tcpdump activity on port 6111)\n8. mount.cifs //localhost/b /mnt/mnt2 -o username\u003dguest,ip\u003d127.0.0.1,port\u003d6222\n#(shows tcpdump activity only on port 6111 and not on 6222\n\nFix by adding a check to compare the port _only_ if the user tries to\noverride the tcp port with \"port\u003d\" option, before deciding that an\nexisting tcp session is found. Also, clean up a bit by replacing\nif-else if by a switch statment while at it as suggested by Jeff.\n\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "1b3859bc9e20d764316346665fc93ecea2d2b176",
      "tree": "9a643e0bf74d9b8339ae4bc45df1988ed306dc4d",
      "parents": [
        "2920ee2b47fc8e6aebe1d1956b2725f48fa93cc5"
      ],
      "author": {
        "name": "Alexander Strakh",
        "email": "strakh@ispras.ru",
        "time": "Tue Sep 01 17:02:24 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Sep 01 17:02:24 2009 +0000"
      },
      "message": "[CIFS] Memory leak in ntlmv2 hash calculation\n\n in function calc_ntlmv2_hash memory is not released.\n1. If in the line 333 we successfully allocate memory and assign it to\npctxt variable:\n       pctxt \u003d kmalloc(sizeof(struct HMACMD5Context), GFP_KERNEL);\nthen we go to line 376 and exit wihout releasing memory pointed to by pctxt\nvariable.\n\nAdd a memory  releasing for pctxt variable before exit from function\ncalc_ntlmv2_hash.\n\nSigned-off-by: Alexander Strakh \u003cstrakh@ispras.ru\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "37d0892c5a94e208cf863e3b7bac014edee4346d",
      "tree": "642ecefb31c58451dc70964963b05412c269e831",
      "parents": [
        "cda9856f1ca62484433b9f734cd0fd553a5e4850"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Sep 01 11:26:22 2009 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 31 17:44:05 2009 -1000"
      },
      "message": "autofs4 - fix missed case when changing to use struct path\n\nIn the recent change by Al Viro that changes verious subsystems\nto use \"struct path\" one case was missed in the autofs4 module\nwhich causes mounts to no longer expire.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "2920ee2b47fc8e6aebe1d1956b2725f48fa93cc5"
}
