)]}'
{
  "log": [
    {
      "commit": "8d44d9741f6808c107a144f469fb89e6fe7c55e3",
      "tree": "8260a685c5eb6710a36991548d6cb9dbf31520c7",
      "parents": [
        "3264d4ded4d916d294d776b77b72d477c63ac3be"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Fri Jul 25 01:46:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:34 2008 -0700"
      },
      "message": "fat: fix parse_options()\n\nCurrent parse_options() exits too early.  We need to run the code of\nbottom in this function even if users doesn\u0027t specify options.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3264d4ded4d916d294d776b77b72d477c63ac3be",
      "tree": "faa1e7e73e8ba3535688d27c62b9e0f22f824f56",
      "parents": [
        "90415deac75a761a25239af6f56381546f8d2201"
      ],
      "author": {
        "name": "Shen Feng",
        "email": "shen@cn.fujitsu.com",
        "time": "Fri Jul 25 01:46:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "reiserfs: remove double definitions of xattr macros\n\nremove the definitions of macros:\nXATTR_SECURITY_PREFIX\nXATTR_TRUSTED_PREFIX\nXATTR_USER_PREFIX\nsince they are defined in linux/xattr.h\n\nSigned-off-by: Shen Feng \u003cshen@cn.fujitsu.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90415deac75a761a25239af6f56381546f8d2201",
      "tree": "dbe5a717fa3629533653af99492cd348a0ec7e1f",
      "parents": [
        "afe70259076fff0446001eaa1a287f615241a357"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Fri Jul 25 01:46:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "reiserfs: convert j_commit_lock to mutex\n\nj_commit_lock is a semaphore but uses it as if it were a mutex.  This patch\nconverts it to a mutex.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Edward Shishkin \u003cedward.shishkin@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afe70259076fff0446001eaa1a287f615241a357",
      "tree": "d619c7f6235264a7b08aec16ba3563a686415079",
      "parents": [
        "f68215c4640a38d66429014e524a627bf572d26a"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Fri Jul 25 01:46:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "reiserfs: convert j_flush_sem to mutex\n\nj_flush_sem is a semaphore but uses it as if it were a mutex.  This patch\nconverts it to a mutex.\n\n[akpm@linux-foundation.org: fix mutex_trylock retval treatment]\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Edward Shishkin \u003cedward.shishkin@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f68215c4640a38d66429014e524a627bf572d26a",
      "tree": "9880a7adbdcda5dba88fe875520b787555b80802",
      "parents": [
        "00b441970a0ab48185244300ac7d4e4eb76df692"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Fri Jul 25 01:46:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "reiserfs: convert j_lock to mutex\n\nj_lock is a semaphore but uses it as if it were a mutex.  This patch converts\nit to a mutex.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Edward Shishkin \u003cedward.shishkin@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00b441970a0ab48185244300ac7d4e4eb76df692",
      "tree": "5e0e7b72b0388dd889da267e669dd1e427e82946",
      "parents": [
        "4506567b24d3ea707e46e8aad64caef539382f4b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 25 01:46:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "reiserfs: correct mount option parsing to detect when quota options can be changed\n\nWe should not allow user to change quota mount options when quota is just\nsuspended.  It would make mount options and internal quota state inconsistent.\n\nAlso we should not allow user to change quota format when quota is turned on.\nOn the other hand we can just silently ignore when some option is set to the\nvalue it already has (some mount versions do this on remount).  Finally, we\nshould not discard current quota options if parsing of mount options fails.\n\nCc: \u003creiserfs-devel@vger.kernel.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4506567b24d3ea707e46e8aad64caef539382f4b",
      "tree": "71ae6e1674f3675f178c8d14a0b024b77808d01b",
      "parents": [
        "5d4f7fddf8882b214e4aabb3bdb37f90a72b2537"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 25 01:46:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "reiserfs: fix typos in messages and comments (journalled -\u003e journaled)\n\nCc: \u003creiserfs-devel@vger.kernel.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d4f7fddf8882b214e4aabb3bdb37f90a72b2537",
      "tree": "b8cf1f13c1032367c0160722764adf1cbca9e92a",
      "parents": [
        "895c23f8c39c0c8d7b536bb2566d4aa968d78be2"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 25 01:46:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "reiserfs: fix synchronization of quota files in journal\u003ddata mode\n\nIn journal\u003ddata mode, it is not enough to do write_inode_now() as done in\nvfs_quota_on() to write all data to their final location (which is needed for\nquota_read to work correctly).  Calling journal_end_sync() before calling\nvfs_quota_on() does it\u0027s job because transactions are committed to the journal\nand data marked as dirty in memory so write_inode_now() writes them to their\nfinal locations.\n\nCc: \u003creiserfs-devel@vger.kernel.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "895c23f8c39c0c8d7b536bb2566d4aa968d78be2",
      "tree": "3744aca0dc59f075e53af348062ad11efdb21192",
      "parents": [
        "39f8d472f280dee6503a364d1d911b9e20ce3ec9"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias@kaehlcke.net",
        "time": "Fri Jul 25 01:46:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "hfsplus: convert the extents_lock in a mutex\n\nApple Extended HFS file system: The semaphore extents lock is used as a\nmutex.  Convert it to the mutex API.\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias@kaehlcke.net\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39f8d472f280dee6503a364d1d911b9e20ce3ec9",
      "tree": "43c05018acca3e30234b914e4bf80439915a2807",
      "parents": [
        "3084b72de73a6f8af0f16989ffb348068bd066d4"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias@kaehlcke.net",
        "time": "Fri Jul 25 01:46:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "hfs: convert extents_lock in a mutex\n\nApple Macintosh file system: The semaphore extens_lock is used as a mutex.\nConvert it to the mutex API\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias@kaehlcke.net\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3084b72de73a6f8af0f16989ffb348068bd066d4",
      "tree": "ef0993d1c2d8e14237cda0277eb68e4fb3653523",
      "parents": [
        "de0ca06a99c33df8333955642843331ab6b6e7ff"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias@kaehlcke.net",
        "time": "Fri Jul 25 01:46:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "hfs: convert bitmap_lock in a mutex\n\nApple Macintosh file system: The semaphore bitmap_lock is used as a mutex.\nConvert it to the mutex API\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias@kaehlcke.net\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de0ca06a99c33df8333955642843331ab6b6e7ff",
      "tree": "3799e038c41476fd6366dae2a7919474125c4bd8",
      "parents": [
        "c0a1633b6201ef79e31b7da464d44fdf5953054d"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 01:46:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "coda: remove CODA_FS_OLD_API\n\nWhile fixing CONFIG_ leakages to the userspace kernel headers I ran into\nCODA_FS_OLD_API.\n\nAfter five years, are there still people using the old API left?\nEspecially considering that you have to choose at compile time which API\nto support in the kernel (and distributions tend to offer the new API for\nsome time).\n\nJan: \"The old API can definitely go.  Around the time the new\n      interface went in there were some non-Coda userspace file system\n      implementations that took a while longer to convert to the new API,\n      but by now they all switched to the new interface or in some cases\n      to a FUSE-based solution.\"\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Jan Harkes \u003cjaharkes@cs.cmu.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0a1633b6201ef79e31b7da464d44fdf5953054d",
      "tree": "f379e3541e56aa805c5e3b15b2e5eadd3ca8cc28",
      "parents": [
        "275c0a8f1253a7542ad9726956c918d8a1f694c4"
      ],
      "author": {
        "name": "Adam Greenblatt",
        "email": "adam.greenblatt@gmail.com",
        "time": "Fri Jul 25 01:46:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "isofs: fix minor filesystem corruption\n\nSome iso9660 images contain files with rockridge data that is either\nincorrect or incompletely parsed.  Prior to commit\nf2966632a134e865db3c819346a1dc7d96e05309 (\"[PATCH] rock: handle directory\noverflows\") (included with kernel 2.6.13) the kernel ignored the rockridge\ndata for these files, while still allowing the files to be accessed under\ntheir non-rockridge names.  That commit inadvertently changed things so\nthat files with invalid rockridge data could not be accessed at all.  (I\nran across the problem when comparing some old CDs with hard disk copies I\nhad made long ago under kernel 2.4: a few of the files on the hard disk\ncopies were no longer visible on the CDs.)\n\nThis change reverts to the pre-2.6.13 behavior.\n\nSigned-off-by: Adam Greenblatt \u003cadam.greenblatt@gmail.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.25.x, 2.6.26.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "275c0a8f1253a7542ad9726956c918d8a1f694c4",
      "tree": "775834cb708749217f56523b9517aba700978409",
      "parents": [
        "cbe5f466f6995e10a10c7ae66d6dc8608f08a6b8"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Fri Jul 25 01:46:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:33 2008 -0700"
      },
      "message": "ext3: validate directory entry data before use\n\next3_dx_find_entry uses ext3_next_entry without verifying that the entry\nis valid.  If its rec_len \u003d\u003d 0 this causes an infinite loop.  Refactor the\nloop to check the validity of entries before checking whether they match\nand moving onto the next one.\n\nThere are other uses of ext3_next_entry in this file which also look\nproblematic.  They should be reviewed and fixed if/when we have a\ntest-case that triggers them.\n\nThis patch fixes the first case (image hdb.25.softlockup.gz) reported in\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10882.\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cbe5f466f6995e10a10c7ae66d6dc8608f08a6b8",
      "tree": "237bbbda6ddd6e38dc7004cd870cbce7af0684c4",
      "parents": [
        "8ef2720397bb813d4985405a5ae7b8ad6474188b"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Fri Jul 25 01:46:30 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "jbd: don\u0027t abort if flushing file data failed\n\nIn ordered mode, the current jbd aborts the journal if a file data buffer\nhas an error.  But this behavior is unintended, and we found that it has\nbeen adopted accidentally.\n\nThis patch undoes it and just calls printk() instead of aborting the\njournal.  Additionally, set AS_EIO into the address_space object of the\nfailed buffer which is submitted by journal_do_submit_data() so that\nfsync() can get -EIO.\n\nMissing error checkings are also added to inform errors on file data\nbuffers to the user.  The following buffers are targeted.\n\n  (a) the buffer which has already been written out by pdflush\n  (b) the buffer which has been unlocked before scanned in the\n      t_locked_list loop\n\n[akpm@linux-foundation.org: improve grammar in a printk]\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8ef2720397bb813d4985405a5ae7b8ad6474188b",
      "tree": "d96e7aeeff719a658324661301a7c026f11a3263",
      "parents": [
        "fc80c44277b3c92d808b73e9d40e120229aa4b6a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jul 25 01:46:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "ext3: kill 2 useless magic numbers\n\ndx_root_limit() will never return 20, and I can\u0027t figure out what 20\nstands for.  This function has never changed since htree directory\nindexing was merged.\n\nSimilar for dx_node_limit() and the magic 22.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Andreas Dilger \u003cadilger@sun.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc80c44277b3c92d808b73e9d40e120229aa4b6a",
      "tree": "db0848f89305aa3c90b07ad773badc17f858405e",
      "parents": [
        "a10320e8f7c4dcfa050aac566092f29b40458d5a"
      ],
      "author": {
        "name": "Toshiyuki Okajima",
        "email": "toshi.okajima@jp.fujitsu.com",
        "time": "Fri Jul 25 01:46:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "jbd: positively dispose the unmapped data buffers in journal_commit_transaction()\n\nAfter ext3-ordered files are truncated, there is a possibility that the\npages which cannot be estimated still remain.  Remaining pages can be\nreleased when the system has really few memory.  So, it is not memory\nleakage.  But the resource management software etc.  may not work\ncorrectly.\n\nIt is possible that journal_unmap_buffer() cannot release the buffers, and\nthe pages to which they belong because they are attached to a commiting\ntransaction and journal_unmap_buffer() cannot release them.  To release\nsuch the buffers and the pages later, journal_unmap_buffer() leaves it to\njournal_commit_transaction().  (journal_unmap_buffer() puts the mark\n\u0027BH_Freed\u0027 to the buffers so that journal_commit_transaction() can\nidentify whether they can be released or not.)\n\nIn the journalled mode and the writeback mode, jbd does with only metadata\nbuffers.  But in the ordered mode, jbd does with metadata buffers and also\ndata buffers.\n\nActually, journal_commit_transaction() releases only the metadata buffers\nof which release is demanded by journal_unmap_buffer(), and also releases\nthe pages to which they belong if possible.\n\nAs a result, the data buffers of which release is demanded by\njournal_unmap_buffer() remain after a transaction commits.  And also the\npages to which they belong remain.\n\nSuch the remained pages don\u0027t have mapping any longer.  Due to this fact,\nthere is a possibility that the pages which cannot be estimated remain.\n\nThe metadata buffers marked \u0027BH_Freed\u0027 and the pages to which\nthey belong can be released at \u0027JBD: commit phase 7\u0027.\n\nTherefore, by applying the same code into \u0027JBD: commit phase 2\u0027 (where the\ndata buffers are done with), journal_commit_transaction() can also release\nthe data buffers marked \u0027BH_Freed\u0027 and the pages to which they belong.\n\nAs a result, all the buffers marked \u0027BH_Freed\u0027 can be released, and also\nall the pages to which these buffers belong can be released at\njournal_commit_transaction().  So, the page which cannot be estimated is\nlost.\n\n\u003c\u003cExcerpt of code at \u0027JBD: commit phase 7\u0027\u003e\u003e\n \u003e         spin_lock(\u0026journal-\u003ej_list_lock);\n \u003e         while (commit_transaction-\u003et_forget) {\n \u003e                 transaction_t *cp_transaction;\n \u003e                 struct buffer_head *bh;\n \u003e\n \u003e                 jh \u003d commit_transaction-\u003et_forget;\n \u003e...\n \u003e                 if (buffer_freed(bh)) {\n \u003e                 ^^^^^^^^^^^^^^^^^^^^^^^^\n \u003e                         clear_buffer_freed(bh);\n \u003e                        ^^^^^^^^^^^^^^^^^^^^^^^^\n \u003e                         clear_buffer_jbddirty(bh);\n \u003e                 }\n \u003e\n \u003e                 if (buffer_jbddirty(bh)) {\n \u003e                         JBUFFER_TRACE(jh, \"add to new checkpointing trans\");\n \u003e                         __journal_insert_checkpoint(jh, commit_transaction);\n \u003e                         JBUFFER_TRACE(jh, \"refile for checkpoint writeback\");\n \u003e                         __journal_refile_buffer(jh);\n \u003e                         jbd_unlock_bh_state(bh);\n \u003e                 } else {\n \u003e                         J_ASSERT_BH(bh, !buffer_dirty(bh));\n \u003e ...\n \u003e                         JBUFFER_TRACE(jh, \"refile or unfile freed buffer\");\n \u003e                         __journal_refile_buffer(jh);\n \u003e                         if (!jh-\u003eb_transaction) {\n \u003e                                 jbd_unlock_bh_state(bh);\n \u003e                                  /* needs a brelse */\n \u003e                                 journal_remove_journal_head(bh);\n \u003e                                 release_buffer_page(bh);\n \u003e                                 ^^^^^^^^^^^^^^^^^^^^^^^^\n \u003e                         } else\n \u003e                 }\n****************************************************************\n* Apply the code of \"^^^^^^\" lines into \u0027JBD: commit phase 2\u0027 *\n****************************************************************\n\nAt journal_commit_transaction() code, there is one extra message in the\nseries of jbd debug messages.  (\"JBD: commit phase 2\") This patch fixes\nit, too.\n\nSigned-off-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a10320e8f7c4dcfa050aac566092f29b40458d5a",
      "tree": "5ec4dbd114fb5700ba8f0edeea80eea75227d2bc",
      "parents": [
        "3ccc3167b0e5d46ab3bf03e22fbdb7616ce038cd"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 01:46:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "jbd: unexport journal_update_superblock\n\nRemove the unused EXPORT_SYMBOL(journal_update_superblock).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ccc3167b0e5d46ab3bf03e22fbdb7616ce038cd",
      "tree": "2dcd2ebb5ffa7271541d23e721101fca57a0eb33",
      "parents": [
        "95450f5a7e53d5752ce1a0d0b8282e10fe745ae0"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Fri Jul 25 01:46:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "ext3: handle deleting corrupted indirect blocks\n\nWhile freeing indirect blocks we attach a journal head to the parent\nbuffer head, free the blocks, then journal the parent.  If the indirect\nblock list is corrupted and points to the parent the journal head will be\ndetached when the block is cleared, causing an OOPS.\n\nCheck for that explicitly and handle it gracefully.\n\nThis patch fixes the third case (image hdb.20000057.nullderef.gz)\nreported in http://bugzilla.kernel.org/show_bug.cgi?id\u003d10882.\n\nImmediately above the change, in the ext3_free_data function, we call\next3_clear_blocks to clear the indirect blocks in this parent block.  If\none of those blocks happens to actually be the parent block it will clear\nb_private / BH_JBD.\n\nI did the check at the end rather than earlier as it seemed more elegant.\nI don\u0027t think there should be much practical difference, although it is\npossible the FS may not be quite so badly corrupted if we did it the other\nway (and didn\u0027t clear the block at all).  To be honest, I\u0027m not convinced\nthere aren\u0027t other similar failure modes lurking in this code, although I\ncouldn\u0027t find any with a quick review.\n\n[akpm@linux-foundation.org: fix printk warning]\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95450f5a7e53d5752ce1a0d0b8282e10fe745ae0",
      "tree": "acd55d917280641fd3487b73e67298caeac9ee80",
      "parents": [
        "ae76dd9a6b5bbe5315fb7028e03f68f75b8538f3"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Fri Jul 25 01:46:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "ext3: don\u0027t read inode block if the buffer has a write error\n\nA transient I/O error can corrupt inode data.  Here is the scenario:\n\n(1) update inode_A at the block_B\n(2) pdflush writes out new inode_A to the filesystem, but it results\n    in write I/O error, at this point, BH_Uptodate flag of the buffer\n    for block_B is cleared and BH_Write_EIO is set\n(3) create new inode_C which located at block_B, and\n    __ext3_get_inode_loc() tries to read on-disk block_B because the\n    buffer is not uptodate\n(4) if it can read on-disk block_B successfully, inode_A is\n    overwritten by old data\n\nThis patch makes __ext3_get_inode_loc() not read the inode block if the\nbuffer has BH_Write_EIO flag.  In this case, the buffer should have the\nlatest information, so setting the uptodate flag to the buffer (this\navoids WARN_ON_ONCE() in mark_buffer_dirty().)\n\nAccording to this change, we would need to test BH_Write_EIO flag for the\nerror checking.  Currently nobody checks write I/O errors on metadata\nbuffers, but it will be done in other patches I\u0027m working on.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: sugita \u003cyumiko.sugita.yf@hitachi.com\u003e\nCc: Satoshi OSHIMA \u003csatoshi.oshima.fk@hitachi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae76dd9a6b5bbe5315fb7028e03f68f75b8538f3",
      "tree": "3b877057e84fda45782dd25a3c8be91173324922",
      "parents": [
        "ef1afd39519b74fbe1f63c9ab5a14490effec0e3"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Fri Jul 25 01:46:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "ext3: handle corrupted orphan list at mount\n\nIf the orphan node list includes valid, untruncatable nodes with nlink \u003e 0\nthe ext3_orphan_cleanup loop which attempts to delete them will not do so,\ncausing it to loop forever. Fix by checking for such nodes in the\next3_orphan_get function.\n\nThis patch fixes the second case (image hdb.20000009.softlockup.gz)\nreported in http://bugzilla.kernel.org/show_bug.cgi?id\u003d10882.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: printk warning fix]\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef1afd39519b74fbe1f63c9ab5a14490effec0e3",
      "tree": "161247cae3a51ee42dc10d95db79705871dc0eb7",
      "parents": [
        "3f31fddfa26b7594b44ff2b34f9a04ba409e0f91"
      ],
      "author": {
        "name": "Shen Feng",
        "email": "shen@cn.fujitsu.com",
        "time": "Fri Jul 25 01:46:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "ext3: remove double definitions of xattr macros\n\nremove the definitions of macros:\nXATTR_TRUSTED_PREFIX\nXATTR_USER_PREFIX\nsince they are defined in linux/xattr.h\n\nSigned-off-by: Shen Feng \u003cshen@cn.fujitsu.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f31fddfa26b7594b44ff2b34f9a04ba409e0f91",
      "tree": "88994baf22f65dc4da0bef17ce61eda09c59db2a",
      "parents": [
        "9ebfbe9f926553eabc21b4400918d1216b27ed0c"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Fri Jul 25 01:46:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "jbd: fix race between free buffer and commit transaction\n\njournal_try_to_free_buffers() could race with jbd commit transaction when\nthe later is holding the buffer reference while waiting for the data\nbuffer to flush to disk.  If the caller of journal_try_to_free_buffers()\nrequest tries hard to release the buffers, it will treat the failure as\nerror and return back to the caller.  We have seen the directo IO failed\ndue to this race.  Some of the caller of releasepage() also expecting the\nbuffer to be dropped when passed with GFP_KERNEL mask to the\nreleasepage()-\u003ejournal_try_to_free_buffers().\n\nWith this patch, if the caller is passing the __GFP_WAIT and __GFP_FS to\nindicating this call could wait, in case of try_to_free_buffers() failed,\nlet\u0027s waiting for journal_commit_transaction() to finish commit the\ncurrent committing transaction, then try to free those buffers again.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nReviewed-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ebfbe9f926553eabc21b4400918d1216b27ed0c",
      "tree": "fb49beb7726579f0d798cf4d72aab646f52e2e1c",
      "parents": [
        "1984bb763c2e50d0ebfb0cf56d1b319bd7afe63a"
      ],
      "author": {
        "name": "Shen Feng",
        "email": "shen@cn.fujitsu.com",
        "time": "Fri Jul 25 01:46:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "ext3: improve some code in rb tree part of dir.c\n\n- remove unnecessary code in free_rb_tree_fname\n - rename free_rb_tree_fname to ext3_htree_create_dir_info\n   since it and ext3_htree_free_dir_info are a pair\n - replace kmalloc with kzalloc in ext3_htree_free_dir_info\n\nSigned-off-by: Shen Feng \u003cshen@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1984bb763c2e50d0ebfb0cf56d1b319bd7afe63a",
      "tree": "dde3d0c06ee054d2d4439e6ac16da831f83a72a7",
      "parents": [
        "f4d79ca2fa211cffc07306eeed7013448e77d7ec"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Fri Jul 25 01:46:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "jbd: tidy up revoke cache initialisation and destruction\n\nMake revocation cache destruction safe to call if initialisation fails\npartially or entirely.  This allows it to be used to cleanup in the case\nof initialisation failure, simplifying that code slightly.\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4d79ca2fa211cffc07306eeed7013448e77d7ec",
      "tree": "dee0ba9ed8102f5d0bcadc1e93ca7affe2414e8f",
      "parents": [
        "3850f7a521dc17659ef6758a219f083418788490"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Fri Jul 25 01:46:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "jbd: eliminate duplicated code in revocation table init/destroy functions\n\nThe revocation table initialisation/destruction code is repeated for each\nof the two revocation tables stored in the journal.  Refactoring the\nduplicated code into functions is tidier, simplifies the logic in\ninitialisation in particular, and slightly reduces the code size.\n\nThere should not be any functional change.\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3850f7a521dc17659ef6758a219f083418788490",
      "tree": "d576d48a13f4c31aef846dd7f178f3159c38e138",
      "parents": [
        "d06bf1d252fe16f5f0d13e04da7a9913420aa1cf"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Fri Jul 25 01:46:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "jbd: replace potentially false assertion with if block\n\nIf an error occurs during jbd cache initialisation it is possible for the\njournal_head_cache to be NULL when journal_destroy_journal_head_cache is\ncalled.  Replace the J_ASSERT with an if block to handle the situation\ncorrectly.\n\nNote that even with this fix things will break badly if jbd is statically\ncompiled in and cache initialisation fails.\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d06bf1d252fe16f5f0d13e04da7a9913420aa1cf",
      "tree": "2b552d620b0a114d3085ddee3f9a1929040d8bf0",
      "parents": [
        "99aeaf639f61ab6be1967e5f92e2e28dafad8383"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 25 01:46:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "ext3: correct mount option parsing to detect when quota options can be changed\n\nWe should not allow user to change quota mount options when quota is just\nsuspended.  I would make mount options and internal quota state inconsistent.\nAlso we should not allow user to change quota format when quota is turned on.\nOn the other hand we can just silently ignore when some option is set to the\nvalue it already has (mount does this on remount).\n\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99aeaf639f61ab6be1967e5f92e2e28dafad8383",
      "tree": "0110d1098d20717424a44ea8bf1e8227708d1557",
      "parents": [
        "9cfe7b9010aa66da5f3b2bc33d9e30a4d53bd274"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 25 01:46:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:31 2008 -0700"
      },
      "message": "ext3: fix typos in messages and comments (journalled -\u003e journaled)\n\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9cfe7b9010aa66da5f3b2bc33d9e30a4d53bd274",
      "tree": "7cbafe89d4101f3bb0ca2132154e414dec4aecf7",
      "parents": [
        "50c33a84db4aa5082e3af8d873b22344ae2ebea8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 25 01:46:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:31 2008 -0700"
      },
      "message": "ext3: fix synchronization of quota files in journal\u003ddata mode\n\nIn journal\u003ddata mode, it is not enough to do write_inode_now as done in\nvfs_quota_on() to write all data to their final location (which is needed for\nquota_read to work correctly).  Calling journal_flush() does its job.\n\nReported-by: Nick \u003cgentuu@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f905f06fca5d3949eca12f5a43e251a404b3470a",
      "tree": "303e8789f8e0dc5f82a712298a9086f242deb3d3",
      "parents": [
        "fb523f32275344282f20ef3352cbf03e599241e6"
      ],
      "author": {
        "name": "Shen Feng",
        "email": "shen@cn.fujitsu.com",
        "time": "Fri Jul 25 01:46:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:31 2008 -0700"
      },
      "message": "ext2: remove double definitions of xattr macros\n\nremove the definitions of macros:\nXATTR_TRUSTED_PREFIX\nXATTR_USER_PREFIX\nsince they are defined in linux/xattr.h\n\nSigned-off-by: Shen Feng \u003cshen@cn.fujitsu.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb523f32275344282f20ef3352cbf03e599241e6",
      "tree": "a21bc5f9e196d0ec786582e1a96b3dc5aafcf6b0",
      "parents": [
        "bbcd6d543de335bf81e96477f46a60a8bf51039c"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 01:46:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:30 2008 -0700"
      },
      "message": "minix: remove !NO_TRUNCATE code\n\nThis patch removes the !NO_TRUNCATE code that anyway required a manual\nediting of the code for being used.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba92a43dbaee339cf5915ef766d3d3ffbaaf103c",
      "tree": "eacaba8fedc91caec87fc5d10f213ad533c1d1e1",
      "parents": [
        "2b4bc46052ea8cd7c370b67ca0b9c26586f1439a"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Fri Jul 25 01:45:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:28 2008 -0700"
      },
      "message": "exec: remove some includes\n\nfs/exec.c used to need mman.h pagemap.h swap.h and rmap.h when it did\nmm-ish stuff in install_arg_page(); but no need for them after 2.6.22.\n\n[akpm@linux-foundation.org: unbreak arm]\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b7bbf8fa6ba329b3552b75a0716f5fbc6f839499",
      "tree": "e15abdaaabf03a2f504b899417218486cfeb9ea8",
      "parents": [
        "3f307891ce0e7b0438c432af1aacd656a092ff45"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Jul 25 01:45:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:26 2008 -0700"
      },
      "message": "fs: ldm.[ch] use get_unaligned_* helpers\n\nReplace the private BE16/BE32/BE64 macros with direct calls to\nget_unaligned_be16/32/64.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb2e405fc1fc8b20d9c78eaa1c7fd5a297efde43",
      "tree": "b22ee51689090eea8485570a7f06aca7429eb0fa",
      "parents": [
        "4b9f12a3779c548b68bc9af7d94030868ad3aa1b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 02:55:49 2008 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 17:32:41 2008 -0700"
      },
      "message": "fix fs/nfs/nfsroot.c compilation\n\nThis fixes the following compile error caused by commit\nf9247273cb69ba101877e946d2d83044409cc8c5 (\"UFS: add const to parser\ntoken table\"):\n\n    CC      fs/nfs/nfsroot.o\n  /home/bunk/linux/kernel-2.6/git/linux-2.6/fs/nfs/nfsroot.c:130: error: tokens causes a section type conflict\n  make[3]: *** [fs/nfs/nfsroot.o] Error 1\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9247273cb69ba101877e946d2d83044409cc8c5",
      "tree": "e173999eddfa9954550f221730feb8c03ebfc743",
      "parents": [
        "b340e8a57ef381e69c99a7a8ede61a6bf71a8014"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 24 17:22:13 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 11:50:15 2008 -0700"
      },
      "message": "UFS: add const to parser token table\n\nThis patch adds a \"const\" to the parser token table. I\u0027ve done an\nallmodconfig build to see if this produces any warnings/failures and the\npatch includes a fix for the only warning that was produced.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nAcked-by: Alexander Viro \u003caviro@redhat.com\u003e\nAcked-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aa55ddf340c9fa3f303ee16bbf35887e42c50304",
      "tree": "62194eef352ef852e6da1a9a3b685d2f56ac9c3b",
      "parents": [
        "06a3598552dc3b2b30eb18bd53bbac2a901489d7"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:33 2008 -0700"
      },
      "message": "autofs4: remove unused ioctls\n\nThe ioctls AUTOFS_IOC_TOGGLEREGHOST and AUTOFS_IOC_ASKREGHOST were added\nseveral years ago but what they were intended for has never been\nimplemented (as far as I\u0027m aware noone uses them) so remove them.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06a3598552dc3b2b30eb18bd53bbac2a901489d7",
      "tree": "bb209268deac3b12d63d07c67a76ba10561f6a11",
      "parents": [
        "ec6e8c7d3f9073336ec7b2eed3fcda6f922087c3"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: reorganize expire pending wait function calls\n\nThis patch re-orgnirzes the checking for and waiting on active expires and\nelininates redundant checks.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec6e8c7d3f9073336ec7b2eed3fcda6f922087c3",
      "tree": "f88f8c2c972477e64f29ad619b9f42f6d5dcf961",
      "parents": [
        "6e60a9ab5f5d314735467752f623072f5b75157a"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix direct mount pending expire race - correction\n\nAppologies, somehow I seem to have sent an out dated version of this\npatch. Here is an additional patch that brings the patch up to date.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e60a9ab5f5d314735467752f623072f5b75157a",
      "tree": "1a42df40e6fad52bd6be74970af8eb56870fe6ba",
      "parents": [
        "97e7449a7ad883bf9f516fc970778d75999c7843"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix direct mount pending expire race\n\nFor direct and offset type mounts that are covered by another mount we\ncannot check the AUTOFS_INF_EXPIRING flag during a path walk which leads\nto lookups walking into an expiring mount while it is being expired.\n\nFor example, for the direct multi-mount map entry with a couple of\noffsets:\n\n/race/mm1  /      \u003cserver1\u003e:/\u003cpath1\u003e\n           /om1   \u003cserver2\u003e:/\u003cpath2\u003e\n           /om2   \u003cserver1\u003e:/\u003cpath3\u003e\n\nan autofs trigger mount is mounted on /race/mm1 and when accessed it is\nover mounted and trigger mounts made for /race/mm1/om1 and /race/mm1/om2.\nSo it isn\u0027t possible for path walks to see the expiring flag at all and\nthey happily walk into the file system while it is expiring.\n\nWhen expiring these mounts follow_down() must stop at the autofs mount and\nall processes must block in the -\u003efollow_link() method (except the daemon)\nuntil the expire is complete.  This is done by decrementing the d_mounted\nfield of the autofs trigger mount root dentry until the expire is\ncompleted.  In -\u003efollow_link() all processes wait on the expire and the\nmount following is completed for the daemon until the expire is complete.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97e7449a7ad883bf9f516fc970778d75999c7843",
      "tree": "903f6de243847eb12d1a372b271b15046ecdc774",
      "parents": [
        "26e81b3142f1ba497d4cd0365c13661684b784ce"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix indirect mount pending expire race\n\nThe selection of a dentry for expiration and the setting of the\nAUTOFS_INF_EXPIRING flag isn\u0027t done atomically which can lead to lookups\nwalking into an expiring mount.\n\nWhat happens is that an expire is initiated by the daemon and a dentry is\nselected for expire but, since there is no lock held between the selection\nand setting of the expiring flag, a process may find the flag clear and\ncontinue walking into the mount tree at the same time the daemon attempts\nthe expire it.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26e81b3142f1ba497d4cd0365c13661684b784ce",
      "tree": "b21545ceca70a0e93da1e4e6b19b5dcb99549d2d",
      "parents": [
        "ff9cd499d6258952385cb2f12e9a3c0908fd5786"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix pending checks\n\nThere are two cases for which a dentry that has a pending mount request\ndoes not wait for completion.  One is via autofs4_revalidate() and the\nother via autofs4_follow_link().\n\nIn revalidate, after the mount point directory is created, but before the\nmount is done, the check in try_to_fill_dentry() can can fail to send the\ndentry to the wait queue since the dentry is positive and the lookup flags\nmay contain only LOOKUP_FOLLOW.  Although we don\u0027t trigger a mount for the\nLOOKUP_FOLLOW flag, if ther\u0027s one pending we might as well wait and use\nthe mounted dentry for the lookup.\n\nIn autofs4_follow_link() the dentry is not checked to see if it is pending\nso it may fail to call try_to_fill_dentry() and not wait for mount\ncompletion.\n\nA dentry that is pending must always be sent to the wait queue.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff9cd499d6258952385cb2f12e9a3c0908fd5786",
      "tree": "6614b95a82361c7a69fe52168db5836e313bd366",
      "parents": [
        "c72305b5472522299bb6f45b736080128eb1c822"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: cleanup redundant readir code\n\nThe mount triggering functionality of readdir and related functions is no\nlonger used (and is quite broken as well).  The unused portions have been\nremoved.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c72305b5472522299bb6f45b736080128eb1c822",
      "tree": "0dc2c0c553d302358df0b54676ef4be82d47fb6c",
      "parents": [
        "eb3b176796b0e53fd26fce86847231542eb0d198"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: indirect dentry must almost always be positive\n\nWe have been seeing mount requests comming to the automount daemon for\nkeys of the form \"\u003cmap key\u003e/\u003cnon key directory\u003e\" which are lookups for\ninvalid map keys.  But we can check for this in the kernel module and\nreturn a fail immediately, without having to send a request to the daemon.\n\nIt is possible to recognise these requests are invalid based on whether\nthe request dentry is negative and its relation to the autofs file system\nroot.\n\nFor example, given the indirect multi-mount map entry:\n\nidm1  \\\n    /mm1  \u003cserver\u003e:/\u003cpath1\u003e\n    /mm2  \u003cserver\u003e:/\u003cpath2\u003e\n\nFor a request to mount idm1, IS_ROOT((idm1)-\u003ed_parent) will be always be\ntrue and the dentry may be negative.  But directories idm1/mm1 and\nidm1/mm2 will always be created as part of the mount request for idm1.  So\nany mount request within idm1 itself must have a positive dentry otherwise\nthe map key is invalid.\n\nIn version 4 these multi-mount entries are all mounted and umounted as a\nsingle request and in version 5 the directories idm1/mm1 and idm1/mm2 are\ncreated and an autofs fs mounted on them to act as a mount trigger so the\nabove is also true.\n\nThis also holds true for the autofs version 4 pseudo direct mount feature.\n When this feature is used without the \"--ghost\" option automount(8) will\ncreate internal submounts as we go down the map key paths which are\nessentially normal indirect mounts for which the above holds.  If the\n\"--ghost\" option is given the directories for map keys are created at\ndaemon startup so valid map entries correspond to postive dentries in the\nautofs fs.\n\nautofs version 5 direct mount maps are similar except that the IS_ROOT\ncheck is not needed.  This has been addressed in a previous patch tittled\n\"autofs4 - detect invalid direct mount requests\".\n\nFor example, given the direct multi-mount map entry:\n\n/test/dm1  \\\n    /mm1  \u003cserver\u003e:/\u003cpath1\u003e\n    /mm2  \u003cserver\u003e:/\u003cpath2\u003e\n\nAn autofs fs is mounted on /test/dm1 as a trigger mount and when a mount\nis triggered for /test/dm1, the multi-mount offset directories\n/test/dm1/mm1 and /test/dm1/mm2 are created and an autofs fs is mounted on\nthem to act as mount triggers.  So valid direct mount requests must always\nhave a positive dentry if they correspond to a valid map entry.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eb3b176796b0e53fd26fce86847231542eb0d198",
      "tree": "85bd1a2e79e92d1ff52714aa19888ef7e4f80638",
      "parents": [
        "296f7bf78bc5c7a4d772aea580ce800d14040d1a"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: detect invalid direct mount requests\n\nautofs v5 direct and offset mounts within an autofs filesystem are\ntriggered by existing autofs triger mounts so the mount point dentry must\nbe positive.  If the mount point dentry is negative then the trigger\ndoesn\u0027t exist so we can return fail immediately.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "296f7bf78bc5c7a4d772aea580ce800d14040d1a",
      "tree": "794e3ae197d75b1a03511fefb4f87ca89caa54ac",
      "parents": [
        "e64be33ccaceaca67c84237dff8805b861398eab"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix waitq memory leak\n\nIf an autofs mount becomes catatonic before autofs4_wait_release() is\ncalled the wait queue counter will not be decremented down to zero and the\nentry will never be freed.  There are also races decrementing the wait\ncounter in the wait release function.  To deal with this the counter needs\nto be updated while holding the wait queue mutex and waiters need to be\nwoken up unconditionally when the wait is removed from the queue to ensure\nwe eventually free the wait.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e64be33ccaceaca67c84237dff8805b861398eab",
      "tree": "574c0eed196ac6115e0f042c1e4564d1b85474d2",
      "parents": [
        "f4c7da02615bebcaf89f15a8d055922f515160b8"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: check kernel communication pipe is valid for write\n\nIt is possible for an autofs mount to become catatonic (and for the daemon\ncommunication pipe to become NULL) after a wait has been initiallized but\nbefore the request has been sent to the daemon.  We need to check for this\nbefore sending the request packet.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4c7da02615bebcaf89f15a8d055922f515160b8",
      "tree": "1da0aa09fd27b35628562648b5da5bf3af9d2d8b",
      "parents": [
        "a1362fe92f1bde687b3a9e93d6b8d105d0a84f74"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: add missing kfree\n\nIt see that the patch tittled \"autofs4 - fix pending mount race\" is\nmissing a change that I had recently made.\n\nIt\u0027s missing a kfree for the case mutex_lock_interruptible() fails\nto aquire the wait queue mutex.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1362fe92f1bde687b3a9e93d6b8d105d0a84f74",
      "tree": "b176c2494ea23b1842a8b408247f02058533dda5",
      "parents": [
        "5a11d4d0ee1ff284271f7265929d07ea4a1168a6"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix pending mount race\n\nClose a race between a pending mount that is about to finish and a new\nlookup for the same directory.\n\nProcess P1 triggers a mount of directory foo.  It sets\nDCACHE_AUTOFS_PENDING in the -\u003elookup routine, creates a waitq entry for\n\u0027foo\u0027, and calls out to the daemon to perform the mount.  The autofs\ndaemon will then create the directory \u0027foo\u0027, using a new dentry that will\nbe hashed in the dcache.\n\nBefore the mount completes, another process, P2, tries to walk into the\n\u0027foo\u0027 directory.  The vfs path walking code finds an entry for \u0027foo\u0027 and\ncalls the revalidate method.  Revalidate finds that the entry is not\nPENDING (because PENDING was never set on the dentry created by the\nmkdir), but it does find the directory is empty.  Revalidate calls\ntry_to_fill_dentry, which sets the PENDING flag and then calls into the\nautofs4 wait code to trigger or wait for a mount of \u0027foo\u0027.  The wait code\nfinds the entry for \u0027foo\u0027 and goes to sleep waiting for the completion of\nthe mount.\n\nYet another process, P3, tries to walk into the \u0027foo\u0027 directory.  This\nprocess again finds a dentry in the dcache for \u0027foo\u0027, and calls into the\nautofs revalidate code.\n\nThe revalidate code finds that the PENDING flag is set, and so calls\ntry_to_fill_dentry.\n\na) try_to_fill_dentry sets the PENDING flag redundantly for this\n   dentry, then calls into the autofs4 wait code.\n\nb) the autofs4 wait code takes the waitq mutex and searches for an\n   entry for \u0027foo\u0027\n\nBetween a and b, P1 is woken up because the mount completed.  P1 takes the\nwait queue mutex, clears the PENDING flag from the dentry, and removes the\nwaitqueue entry for \u0027foo\u0027 from the list.\n\nWhen it releases the waitq mutex, P3 (eventually) acquires it.  At this\ntime, it looks for an existing waitq for \u0027foo\u0027, finds none, and so creates\na new one and calls out to the daemon to mount the \u0027foo\u0027 directory.\n\nNow, the reason that three processes are required to trigger this race is\nthat, because the PENDING flag is not set on the dentry created by mkdir,\nthe window for the race would be way to slim for it to ever occur.\nBasically, between the testing of d_mountpoint(dentry) and the taking of\nthe waitq mutex, the mount would have to complete and the daemon would\nhave to be woken up, and that in turn would have to wake up P1.  This is\nsimply impossible.  Add the third process, though, and it becomes slightly\nmore likely.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a11d4d0ee1ff284271f7265929d07ea4a1168a6",
      "tree": "4b9b76486afa5d9fc29216df069c5a557e09011a",
      "parents": [
        "70b52a0a5005ce6a0ceec56e97222437a0ba7506"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: fix waitq locking\n\nThe autofs4_catatonic_mode() function accesses the wait queue without any\nlocking but can be called at any time.  This could lead to a possible\ndouble free of the name field of the wait and a double fput of the daemon\ncommunication pipe or an fput of a NULL file pointer.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70b52a0a5005ce6a0ceec56e97222437a0ba7506",
      "tree": "e2b45dff98eae948dd34d4cc36f54796bd01104f",
      "parents": [
        "6d5cb926fa0162b1e62f37c117cc7ce763cfcbb9"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Wed Jul 23 21:30:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:32 2008 -0700"
      },
      "message": "autofs4: use struct qstr in waitq.c\n\nThe autofs_wait_queue already contains all of the fields of the\nstruct qstr, so change it into a qstr.\n\nThis patch, from Jeff Moyer, has been modified a liitle by myself.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d5cb926fa0162b1e62f37c117cc7ce763cfcbb9",
      "tree": "275f1154f7724c6b86c3ec9e2c36ff8f96c3e55d",
      "parents": [
        "c432c2586a0811c7d0030d78f0993568bc889a6f"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "autofs4: use lookup intent flags to trigger mounts\n\nWhen an open(2) call is made on an autofs mount point directory that\nalready exists and the O_DIRECTORY flag is not used the needed mount\ncallback to the daemon is not done. This leads to the path walk\ncontinuing resulting in a callback to the daemon with an incorrect\nkey. open(2) is called without O_DIRECTORY by the \"find\" utility but\nthis should be handled properly anyway.\n\nThis happens because autofs needs to use the lookup flags to decide\nwhen to callback to the daemon to perform a mount to prevent mount\nstorms. For example, an autofs indirect mount map that has the \"browse\"\noption will have the mount point directories are pre-created and the\nstat(2) call made by a color ls against each directory will cause all\nthese directories to be mounted. It is unfortunate we need to resort\nto this but mount maps can be quite large. Additionally, if a user\nmanually umounts an autofs indirect mount the directory isn\u0027t removed\nwhich also leads to this situation.\n\nTo resolve this autofs needs to use the lookup intent flags to enable\nit to make this decision. This patch adds this check and triggers a\ncall back if any of the lookup intent flags are set as all these calls\nwarrant a mount attempt be requested.\n\nI know that external VFS code which uses the lookup flags is something\nthat the VFS would like to eliminate but I have no choice as I can\u0027t\nsee any other way to do this. A VFS dentry or inode operation callback\nwhich returns the lookup \"type\" (requires a definition) would be\nsufficient. But this change is needed now and I\u0027m not aware of the form\nthat coming VFS changes will take so I\u0027m not willing to propose anything\nalong these lines.\n\nIf anyone can provide an alternate method I would be happy to use it.\n\n[akpm@linux-foundation.org: fix build for concurrent VFS changes]\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c432c2586a0811c7d0030d78f0993568bc889a6f",
      "tree": "b5d711345120af6cc6ae67836d0773a5857e3e8c",
      "parents": [
        "ef581a742874ebc4c28d24b374c78b762144ebdc"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "autofs4: don\u0027t release directory mutex if called in oz_mode\n\nSince we now delay hashing of dentrys until the -\u003emkdir() call, droping\nand re-taking the directory mutex within the -\u003elookup() function when we\nare being called by user space is not needed.  This can lead to a race\nwhen other processes are attempting to access the same directory during\nmount point directory creation.\n\nIn this case we need to hang onto the mutex to ensure we don\u0027t get user\nprocesses trying to create a mount request for a newly created dentry\nafter the mount point entry has already been created.  This ensures that\nwhen we need to check a dentry passed to autofs4_wait(), if it is hashed,\nit is always the mount point dentry and not a new dentry created by\nanother lookup during directory creation.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef581a742874ebc4c28d24b374c78b762144ebdc",
      "tree": "8dfced9c0fc8e18a3b81aac9fae2b843d251b8a6",
      "parents": [
        "2576737873dc1d9ea461a5955a5f6779b569a350"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "autofs4: fix symlink name allocation\n\nThe length of the symlink name has been moved but it needs to be set\nbefore allocating space for it in the dentry info struct.  This corrects a\nmistake in a recent patch.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2576737873dc1d9ea461a5955a5f6779b569a350",
      "tree": "aad8f5cf52c872f307275328022a3bcb94a6c342",
      "parents": [
        "caf7da3d5d4d9dd873eb52d025d8cc63b89f1fdb"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "autofs4: use look aside list for lookups\n\nA while ago a patch to resolve a deadlock during directory creation was\nmerged.  This delayed the hashing of lookup dentrys until the -\u003emkdir()\n(or -\u003esymlink()) operation completed to ensure we always went through\n-\u003elookup() instead of also having processes go through -\u003erevalidate() so\nour VFS locking remained consistent.\n\nNow we are seeing a couple of side affects of that change in situations\nwith heavy mount activity.\n\nTwo cases have been identified:\n\n1) When a mount request is triggered, due to the delayed hashing, the\n   directory created by user space for the mount point doesn\u0027t have the\n   DCACHE_AUTOFS_PENDING flag set.  In the case of an autofs multi-mount\n   where a tree of mount point directories are created this can lead to\n   the path walk continuing rather than the dentry being sent to the wait\n   queue to wait for request completion.  This is because, if the pending\n   flag isn\u0027t set, the criteria for deciding this is a mount in progress\n   fails to hold, namely that the dentry is not a mount point and has no\n   subdirectories.\n\n2) A mount request dentry is initially created negative and unhashed.\n   It remains this way until the -\u003emkdir() callback completes.  Since it\n   is unhashed a fresh dentry is used when the user space mount request\n   creates the mount point directory.  This leaves the original dentry\n   negative and unhashed.  But revalidate has no way to tell the VFS that\n   the dentry has changed, other than to force another -\u003elookup() by\n   returning false, which is at best wastefull and at worst not possible.\n   This results in an -ENOENT return from the original path walk when in\n   fact the mount succeeded.\n\nTo resolve this we need to ensure that the same dentry is used in all\ncalls to -\u003elookup() during the course of a mount request.  This patch\nachieves that by adding the initial dentry to a look aside list and\nremoves it at -\u003emkdir() or -\u003esymlink() completion (or when the dentry is\nreleased), since these are the only create operations autofs4 supports.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "caf7da3d5d4d9dd873eb52d025d8cc63b89f1fdb",
      "tree": "9e53359c28c4247eae9685a5f9c63a5c0a54a7b1",
      "parents": [
        "5f6f4f28b6ba543beef8bad91aa6f69c7ffeee51"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "autofs4: revert - redo lookup in ttfd\n\nThis patch series enables the use of a single dentry for lookups prior to\nthe dentry being hashed and so we no longer need to redo the lookup.  This\npatch reverts the patch of commit\n033790449ba9c4dcf8478a87693d33df625c23b5.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f6f4f28b6ba543beef8bad91aa6f69c7ffeee51",
      "tree": "72f3aac56d49c7bea7940f8d8b6e8ca559e3ae1c",
      "parents": [
        "391b52f98cf2e9bff227dad8bf9ea206fec43fa4"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Wed Jul 23 21:30:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "autofs4: don\u0027t make expiring dentry negative\n\nCorrect the error of making a positive dentry negative after it has been\ninstantiated.\n\nThe code that makes this error attempts to re-use the dentry from a\nconcurrent expire and mount to resolve a race and the dentry used for the\nlookup must be negative for mounts to trigger in the required cases.  The\nfact is that the dentry doesn\u0027t need to be re-used because all that is\nneeded is to preserve the flag that indicates an expire is still\nincomplete at the time of the mount request.\n\nThis change uses the the dentry to check the flag and wait for the expire\nto complete then discards it instead of attempting to re-use it.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "391b52f98cf2e9bff227dad8bf9ea206fec43fa4",
      "tree": "40eb4e0d6d399d9b98b791db497097a1ff44894e",
      "parents": [
        "72b55fffd631a89e5be6fe1b4f2565bc4cd90deb"
      ],
      "author": {
        "name": "Michael Halcrow",
        "email": "mhalcrow@us.ibm.com",
        "time": "Wed Jul 23 21:30:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "eCryptfs: Make all persistent file opens delayed\n\nThere is no good reason to immediately open the lower file, and that can\ncause problems with files that the user does not intend to immediately\nopen, such as device nodes.\n\nThis patch removes the persistent file open from the interpose step and\npushes that to the locations where eCryptfs really does need the lower\npersistent file, such as just before reading or writing the metadata\nstored in the lower file header.\n\nTwo functions are jumping to out_dput when they should just be jumping to\nout on error paths.  This patch also fixes these.\n\nSigned-off-by: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72b55fffd631a89e5be6fe1b4f2565bc4cd90deb",
      "tree": "ece810c24655a6eeed96a6f2fbe14dea6478f031",
      "parents": [
        "0a688ad713949643e201431d3f4a4ceddfeb70ca"
      ],
      "author": {
        "name": "Michael Halcrow",
        "email": "mhalcrow@us.ibm.com",
        "time": "Wed Jul 23 21:30:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "eCryptfs: do not try to open device files on mknod\n\nWhen creating device nodes, eCryptfs needs to delay actually opening the lower\npersistent file until an application tries to open.  Device handles may not be\nbacked by anything when they first come into existence.\n\n[Valdis.Kletnieks@vt.edu: build fix]\nSigned-off-by: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: \u003cValdis.Kletnieks@vt.edu}\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a688ad713949643e201431d3f4a4ceddfeb70ca",
      "tree": "d56c3258db6eb2ea0df39c5e5d86302caa72042c",
      "parents": [
        "29335c6a41568d4708d4ec3b9187f9b6d302e5ea"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jul 23 21:30:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "ecryptfs: inode.c mmap.c use unaligned byteorder helpers\n\nFixe sparse warnings:\nfs/ecryptfs/inode.c:368:15: warning: cast to restricted __be64\nfs/ecryptfs/mmap.c:385:12: warning: incorrect type in assignment (different base types)\nfs/ecryptfs/mmap.c:385:12:    expected unsigned long long [unsigned] [assigned] [usertype] file_size\nfs/ecryptfs/mmap.c:385:12:    got restricted __be64 [usertype] \u003cnoident\u003e\nfs/ecryptfs/mmap.c:428:12: warning: incorrect type in assignment (different base types)\nfs/ecryptfs/mmap.c:428:12:    expected unsigned long long [unsigned] [assigned] [usertype] file_size\nfs/ecryptfs/mmap.c:428:12:    got restricted __be64 [usertype] \u003cnoident\u003e\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29335c6a41568d4708d4ec3b9187f9b6d302e5ea",
      "tree": "83be9a98e4b657b46377c32624d5d0cd9120ee5f",
      "parents": [
        "8f2368095e25018838e1bf145041f58270ccd32e"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jul 23 21:30:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "ecryptfs: crypto.c use unaligned byteorder helpers\n\nFixes the following sparse warnings:\nfs/ecryptfs/crypto.c:1036:8: warning: cast to restricted __be32\nfs/ecryptfs/crypto.c:1038:8: warning: cast to restricted __be32\nfs/ecryptfs/crypto.c:1077:10: warning: cast to restricted __be32\nfs/ecryptfs/crypto.c:1103:6: warning: incorrect type in assignment (different base types)\nfs/ecryptfs/crypto.c:1105:6: warning: incorrect type in assignment (different base types)\nfs/ecryptfs/crypto.c:1124:8: warning: incorrect type in assignment (different base types)\nfs/ecryptfs/crypto.c:1241:21: warning: incorrect type in assignment (different base types)\nfs/ecryptfs/crypto.c:1244:30: warning: incorrect type in assignment (different base types)\nfs/ecryptfs/crypto.c:1414:23: warning: cast to restricted __be32\nfs/ecryptfs/crypto.c:1417:32: warning: cast to restricted __be16\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f2368095e25018838e1bf145041f58270ccd32e",
      "tree": "c8ac94c024d0874f1955c1aa8880d3649dc7d4fc",
      "parents": [
        "982363c97f8cad7aea4c3d2cfebffc1cc2d2f166"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Jul 23 21:30:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "ecryptfs: string copy cleanup\n\nClean up overcomplicated string copy, which also gets rid of this\nbogus warning:\n\nfs/ecryptfs/main.c: In function \u0027ecryptfs_parse_options\u0027:\ninclude/asm/arch/string_32.h:75: warning: array subscript is above array bounds\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "982363c97f8cad7aea4c3d2cfebffc1cc2d2f166",
      "tree": "63459c8ea40c1f45f7a4e14b0630829ab2a43afc",
      "parents": [
        "6c4c17b073cd4a5a61bc04329561632870bb21fc"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Jul 23 21:30:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "ecryptfs: propagate key errors up at mount time\n\nMounting with invalid key signatures should probably fail, if they were\nspecifically requested but not available.\n\nAlso fix case checks in process_request_key_err() for the right sign of\nthe errnos, as spotted by Jan Tluka.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Jan Tluka \u003cjtluka@redhat.com\u003e\nAcked-by: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c4c17b073cd4a5a61bc04329561632870bb21fc",
      "tree": "22fea1e80df5665061f1cf2953c69a00dc097e9b",
      "parents": [
        "746f1e558bc52b9693c1a1ecdab60f8392e5ff18"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Jul 23 21:30:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:31 2008 -0700"
      },
      "message": "ecryptfs: discard ecryptfsd registration messages in miscdev\n\nThe userspace eCryptfs daemon sends HELO and QUIT messages to the kernel\nfor per-user daemon (un)registration.  These messages are required when\nnetlink is used as the transport, but (un)registration is handled by\nopening and closing the device file when miscdev is the transport.  These\nmessages should be discarded in the miscdev transport so that a daemon\nisn\u0027t registered twice.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "746f1e558bc52b9693c1a1ecdab60f8392e5ff18",
      "tree": "a3253428affed93967c3ec67ba27ce8fe7d333c2",
      "parents": [
        "0293902a4d66fab27d0ddcc0766e05dae68f004e"
      ],
      "author": {
        "name": "Michael Halcrow",
        "email": "mhalcrow@us.ibm.com",
        "time": "Wed Jul 23 21:30:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:30 2008 -0700"
      },
      "message": "eCryptfs: Privileged kthread for lower file opens\n\neCryptfs would really like to have read-write access to all files in the\nlower filesystem.  Right now, the persistent lower file may be opened\nread-only if the attempt to open it read-write fails.  One way to keep\nfrom having to do that is to have a privileged kthread that can open the\nlower persistent file on behalf of the user opening the eCryptfs file;\nthis patch implements this functionality.\n\nThis patch will properly allow a less-privileged user to open the eCryptfs\nfile, followed by a more-privileged user opening the eCryptfs file, with\nthe first user only being able to read and the second user being able to\nboth read and write.  eCryptfs currently does this wrong; it will wind up\ncalling vfs_write() on a file that was opened read-only.  This is fixed in\nthis patch.\n\nSigned-off-by: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9fe5ad9c8cef9ad5873d8ee55d1cf00d9b607df0",
      "tree": "49fb04cf552192e566d2aa6e18f40585230cba5a",
      "parents": [
        "e38b36f325153eaadd1c2a7abc5762079233e540"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:29 2008 -0700"
      },
      "message": "flag parameters add-on: remove epoll_create size param\n\nRemove the size parameter from the new epoll_create syscall and renames the\nsyscall itself.  The updated test program follows.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_epoll_create2\n# ifdef __x86_64__\n#  define __NR_epoll_create2 291\n# elif defined __i386__\n#  define __NR_epoll_create2 329\n# else\n#  error \"need __NR_epoll_create2\"\n# endif\n#endif\n\n#define EPOLL_CLOEXEC O_CLOEXEC\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_epoll_create2, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"epoll_create2(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"epoll_create2(0) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_epoll_create2, EPOLL_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"epoll_create2(EPOLL_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"epoll_create2(EPOLL_CLOEXEC) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e38b36f325153eaadd1c2a7abc5762079233e540",
      "tree": "92cfc9855e41c5328d91456f5e373c00ecb8d383",
      "parents": [
        "510df2dd482496083e1c3b1a8c9b6afd5fa4c7d7"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:29 2008 -0700"
      },
      "message": "flag parameters: check magic constants\n\nThis patch adds test that ensure the boundary conditions for the various\nconstants introduced in the previous patches is met.  No code is generated.\n\n[akpm@linux-foundation.org: fix alpha]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "510df2dd482496083e1c3b1a8c9b6afd5fa4c7d7",
      "tree": "cb6fe277b361e13c100d20db5e3689d0e3abca45",
      "parents": [
        "be61a86d7237dd80510615f38ae21d6e1e98660c"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:29 2008 -0700"
      },
      "message": "flag parameters: NONBLOCK in inotify_init\n\nThis patch adds non-blocking support for inotify_init1.  The\nadditional changes needed are minimal.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_inotify_init1\n# ifdef __x86_64__\n#  define __NR_inotify_init1 294\n# elif defined __i386__\n#  define __NR_inotify_init1 332\n# else\n#  error \"need __NR_inotify_init1\"\n# endif\n#endif\n\n#define IN_NONBLOCK O_NONBLOCK\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_inotify_init1, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"inotify_init1(0) failed\");\n      return 1;\n    }\n  int fl \u003d fcntl (fd, F_GETFL);\n  if (fl \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (fl \u0026 O_NONBLOCK)\n    {\n      puts (\"inotify_init1(0) set non-blocking mode\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_inotify_init1, IN_NONBLOCK);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"inotify_init1(IN_NONBLOCK) failed\");\n      return 1;\n    }\n  fl \u003d fcntl (fd, F_GETFL);\n  if (fl \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((fl \u0026 O_NONBLOCK) \u003d\u003d 0)\n    {\n      puts (\"inotify_init1(IN_NONBLOCK) set non-blocking mode\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be61a86d7237dd80510615f38ae21d6e1e98660c",
      "tree": "3dfe6c8275c724533f88525970a4065ae795f6e3",
      "parents": [
        "6b1ef0e60d42f2fdaec26baee8327eb156347b4f"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:29 2008 -0700"
      },
      "message": "flag parameters: NONBLOCK in pipe\n\nThis patch adds O_NONBLOCK support to pipe2.  It is minimally more involved\nthan the patches for eventfd et.al but still trivial.  The interfaces of the\ncreate_write_pipe and create_read_pipe helper functions were changed and the\none other caller as well.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_pipe2\n# ifdef __x86_64__\n#  define __NR_pipe2 293\n# elif defined __i386__\n#  define __NR_pipe2 331\n# else\n#  error \"need __NR_pipe2\"\n# endif\n#endif\n\nint\nmain (void)\n{\n  int fds[2];\n  if (syscall (__NR_pipe2, fds, 0) \u003d\u003d -1)\n    {\n      puts (\"pipe2(0) failed\");\n      return 1;\n    }\n  for (int i \u003d 0; i \u003c 2; ++i)\n    {\n      int fl \u003d fcntl (fds[i], F_GETFL);\n      if (fl \u003d\u003d -1)\n        {\n          puts (\"fcntl failed\");\n          return 1;\n        }\n      if (fl \u0026 O_NONBLOCK)\n        {\n          printf (\"pipe2(0) set non-blocking mode for fds[%d]\\n\", i);\n          return 1;\n        }\n      close (fds[i]);\n    }\n\n  if (syscall (__NR_pipe2, fds, O_NONBLOCK) \u003d\u003d -1)\n    {\n      puts (\"pipe2(O_NONBLOCK) failed\");\n      return 1;\n    }\n  for (int i \u003d 0; i \u003c 2; ++i)\n    {\n      int fl \u003d fcntl (fds[i], F_GETFL);\n      if (fl \u003d\u003d -1)\n        {\n          puts (\"fcntl failed\");\n          return 1;\n        }\n      if ((fl \u0026 O_NONBLOCK) \u003d\u003d 0)\n        {\n          printf (\"pipe2(O_NONBLOCK) does not set non-blocking mode for fds[%d]\\n\", i);\n          return 1;\n        }\n      close (fds[i]);\n    }\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b1ef0e60d42f2fdaec26baee8327eb156347b4f",
      "tree": "84f7e417f0c1f637ed10d42406276cff83849d69",
      "parents": [
        "e7d476dfdf0bcfed478a207aecfdc84f81efecaf"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:29 2008 -0700"
      },
      "message": "flag parameters: NONBLOCK in timerfd_create\n\nThis patch adds support for the TFD_NONBLOCK flag to timerfd_create.  The\nadditional changes needed are minimal.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_timerfd_create\n# ifdef __x86_64__\n#  define __NR_timerfd_create 283\n# elif defined __i386__\n#  define __NR_timerfd_create 322\n# else\n#  error \"need __NR_timerfd_create\"\n# endif\n#endif\n\n#define TFD_NONBLOCK O_NONBLOCK\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_timerfd_create, CLOCK_REALTIME, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"timerfd_create(0) failed\");\n      return 1;\n    }\n  int fl \u003d fcntl (fd, F_GETFL);\n  if (fl \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (fl \u0026 O_NONBLOCK)\n    {\n      puts (\"timerfd_create(0) set non-blocking mode\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_timerfd_create, CLOCK_REALTIME, TFD_NONBLOCK);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"timerfd_create(TFD_NONBLOCK) failed\");\n      return 1;\n    }\n  fl \u003d fcntl (fd, F_GETFL);\n  if (fl \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((fl \u0026 O_NONBLOCK) \u003d\u003d 0)\n    {\n      puts (\"timerfd_create(TFD_NONBLOCK) set non-blocking mode\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7d476dfdf0bcfed478a207aecfdc84f81efecaf",
      "tree": "8adc7f4cf562cd0e283d4abdaa0633686a59d8b2",
      "parents": [
        "5fb5e04926a54bc1c22bba7ca166840f4476196f"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:29 2008 -0700"
      },
      "message": "flag parameters: NONBLOCK in eventfd\n\nThis patch adds support for the EFD_NONBLOCK flag to eventfd2.  The\nadditional changes needed are minimal.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_eventfd2\n# ifdef __x86_64__\n#  define __NR_eventfd2 290\n# elif defined __i386__\n#  define __NR_eventfd2 328\n# else\n#  error \"need __NR_eventfd2\"\n# endif\n#endif\n\n#define EFD_NONBLOCK O_NONBLOCK\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_eventfd2, 1, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"eventfd2(0) failed\");\n      return 1;\n    }\n  int fl \u003d fcntl (fd, F_GETFL);\n  if (fl \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (fl \u0026 O_NONBLOCK)\n    {\n      puts (\"eventfd2(0) sets non-blocking mode\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_eventfd2, 1, EFD_NONBLOCK);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"eventfd2(EFD_NONBLOCK) failed\");\n      return 1;\n    }\n  fl \u003d fcntl (fd, F_GETFL);\n  if (fl \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((fl \u0026 O_NONBLOCK) \u003d\u003d 0)\n    {\n      puts (\"eventfd2(EFD_NONBLOCK) does not set non-blocking mode\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5fb5e04926a54bc1c22bba7ca166840f4476196f",
      "tree": "999cf1d58e85ca801a03baeba114b9e8d2734249",
      "parents": [
        "77d2720059618b9b6e827a8b73831eb6c6fad63c"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:29 2008 -0700"
      },
      "message": "flag parameters: NONBLOCK in signalfd\n\nThis patch adds support for the SFD_NONBLOCK flag to signalfd4.  The\nadditional changes needed are minimal.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003csignal.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_signalfd4\n# ifdef __x86_64__\n#  define __NR_signalfd4 289\n# elif defined __i386__\n#  define __NR_signalfd4 327\n# else\n#  error \"need __NR_signalfd4\"\n# endif\n#endif\n\n#define SFD_NONBLOCK O_NONBLOCK\n\nint\nmain (void)\n{\n  sigset_t ss;\n  sigemptyset (\u0026ss);\n  sigaddset (\u0026ss, SIGUSR1);\n  int fd \u003d syscall (__NR_signalfd4, -1, \u0026ss, 8, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"signalfd4(0) failed\");\n      return 1;\n    }\n  int fl \u003d fcntl (fd, F_GETFL);\n  if (fl \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (fl \u0026 O_NONBLOCK)\n    {\n      puts (\"signalfd4(0) set non-blocking mode\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_signalfd4, -1, \u0026ss, 8, SFD_NONBLOCK);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"signalfd4(SFD_NONBLOCK) failed\");\n      return 1;\n    }\n  fl \u003d fcntl (fd, F_GETFL);\n  if (fl \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((fl \u0026 O_NONBLOCK) \u003d\u003d 0)\n    {\n      puts (\"signalfd4(SFD_NONBLOCK) does not set non-blocking mode\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99829b832997d907c30669bfd17da32151e18f04",
      "tree": "a9d4b9a3e475891198de0f37d376bda053399bde",
      "parents": [
        "4006553b06306b34054529477b06b68a1c66249b"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:33 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:28 2008 -0700"
      },
      "message": "flag parameters: NONBLOCK in anon_inode_getfd\n\nBuilding on the previous change to anon_inode_getfd, this patch introduces\nsupport for handling of O_NONBLOCK in addition to the already supported\nO_CLOEXEC.  Following patches will take advantage of this support.  As can be\nseen, the additional support for supporting this functionality is minimal.\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4006553b06306b34054529477b06b68a1c66249b",
      "tree": "d4ebbe4a5294b0cec69fe4908b7b7c569f4ece03",
      "parents": [
        "ed8cae8ba01348bfd83333f4648dd807b04d7f08"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:28 2008 -0700"
      },
      "message": "flag parameters: inotify_init\n\nThis patch introduces the new syscall inotify_init1 (note: the 1 stands for\nthe one parameter the syscall takes, as opposed to no parameter before).  The\nvalues accepted for this parameter are function-specific and defined in the\ninotify.h header.  Here the values must match the O_* flags, though.  In this\npatch CLOEXEC support is introduced.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_inotify_init1\n# ifdef __x86_64__\n#  define __NR_inotify_init1 294\n# elif defined __i386__\n#  define __NR_inotify_init1 332\n# else\n#  error \"need __NR_inotify_init1\"\n# endif\n#endif\n\n#define IN_CLOEXEC O_CLOEXEC\n\nint\nmain (void)\n{\n  int fd;\n  fd \u003d syscall (__NR_inotify_init1, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"inotify_init1(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"inotify_init1(0) set close-on-exit\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_inotify_init1, IN_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"inotify_init1(IN_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"inotify_init1(O_CLOEXEC) does not set close-on-exit\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n[akpm@linux-foundation.org: add sys_ni stub]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed8cae8ba01348bfd83333f4648dd807b04d7f08",
      "tree": "c71a1c8e771c1c55728bb7c40612fbdcefbc858a",
      "parents": [
        "336dd1f70ff62d7dd8655228caed4c5bfc818c56"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:30 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:28 2008 -0700"
      },
      "message": "flag parameters: pipe\n\nThis patch introduces the new syscall pipe2 which is like pipe but it also\ntakes an additional parameter which takes a flag value.  This patch implements\nthe handling of O_CLOEXEC for the flag.  I did not add support for the new\nsyscall for the architectures which have a special sys_pipe implementation.  I\nthink the maintainers of those archs have the chance to go with the unified\nimplementation but that\u0027s up to them.\n\nThe implementation introduces do_pipe_flags.  I did that instead of changing\nall callers of do_pipe because some of the callers are written in assembler.\nI would probably screw up changing the assembly code.  To avoid breaking code\ndo_pipe is now a small wrapper around do_pipe_flags.  Once all callers are\nchanged over to do_pipe_flags the old do_pipe function can be removed.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_pipe2\n# ifdef __x86_64__\n#  define __NR_pipe2 293\n# elif defined __i386__\n#  define __NR_pipe2 331\n# else\n#  error \"need __NR_pipe2\"\n# endif\n#endif\n\nint\nmain (void)\n{\n  int fd[2];\n  if (syscall (__NR_pipe2, fd, 0) !\u003d 0)\n    {\n      puts (\"pipe2(0) failed\");\n      return 1;\n    }\n  for (int i \u003d 0; i \u003c 2; ++i)\n    {\n      int coe \u003d fcntl (fd[i], F_GETFD);\n      if (coe \u003d\u003d -1)\n        {\n          puts (\"fcntl failed\");\n          return 1;\n        }\n      if (coe \u0026 FD_CLOEXEC)\n        {\n          printf (\"pipe2(0) set close-on-exit for fd[%d]\\n\", i);\n          return 1;\n        }\n    }\n  close (fd[0]);\n  close (fd[1]);\n\n  if (syscall (__NR_pipe2, fd, O_CLOEXEC) !\u003d 0)\n    {\n      puts (\"pipe2(O_CLOEXEC) failed\");\n      return 1;\n    }\n  for (int i \u003d 0; i \u003c 2; ++i)\n    {\n      int coe \u003d fcntl (fd[i], F_GETFD);\n      if (coe \u003d\u003d -1)\n        {\n          puts (\"fcntl failed\");\n          return 1;\n        }\n      if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n        {\n          printf (\"pipe2(O_CLOEXEC) does not set close-on-exit for fd[%d]\\n\", i);\n          return 1;\n        }\n    }\n  close (fd[0]);\n  close (fd[1]);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "336dd1f70ff62d7dd8655228caed4c5bfc818c56",
      "tree": "1441b76ea5f08f44167f41867f3555ac53712ebb",
      "parents": [
        "a0998b50c3f0b8fdd265c63e0032f86ebe377dbf"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:28 2008 -0700"
      },
      "message": "flag parameters: dup2\n\nThis patch adds the new dup3 syscall.  It extends the old dup2 syscall by one\nparameter which is meant to hold a flag value.  Support for the O_CLOEXEC flag\nis added in this patch.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_dup3\n# ifdef __x86_64__\n#  define __NR_dup3 292\n# elif defined __i386__\n#  define __NR_dup3 330\n# else\n#  error \"need __NR_dup3\"\n# endif\n#endif\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_dup3, 1, 4, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"dup3(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"dup3(0) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_dup3, 1, 4, O_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"dup3(O_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"dup3(O_CLOEXEC) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a0998b50c3f0b8fdd265c63e0032f86ebe377dbf",
      "tree": "9132ecb7ef925374edabcaeea44e0287eb5043f4",
      "parents": [
        "11fcb6c14676023d0bd437841f5dcd670e7990a0"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:28 2008 -0700"
      },
      "message": "flag parameters: epoll_create\n\nThis patch adds the new epoll_create2 syscall.  It extends the old epoll_create\nsyscall by one parameter which is meant to hold a flag value.  In this\npatch the only flag support is EPOLL_CLOEXEC which causes the close-on-exec\nflag for the returned file descriptor to be set.\n\nA new name EPOLL_CLOEXEC is introduced which in this implementation must\nhave the same value as O_CLOEXEC.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_epoll_create2\n# ifdef __x86_64__\n#  define __NR_epoll_create2 291\n# elif defined __i386__\n#  define __NR_epoll_create2 329\n# else\n#  error \"need __NR_epoll_create2\"\n# endif\n#endif\n\n#define EPOLL_CLOEXEC O_CLOEXEC\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_epoll_create2, 1, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"epoll_create2(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"epoll_create2(0) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_epoll_create2, 1, EPOLL_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"epoll_create2(EPOLL_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"epoll_create2(EPOLL_CLOEXEC) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11fcb6c14676023d0bd437841f5dcd670e7990a0",
      "tree": "7b98614739715734d9cdd74f94982e110c953fc0",
      "parents": [
        "b087498eb5605673b0f260a7620d91818cd72304"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:27 2008 -0700"
      },
      "message": "flag parameters: timerfd_create\n\nThe timerfd_create syscall already has a flags parameter.  It just is\nunused so far.  This patch changes this by introducing the TFD_CLOEXEC\nflag to set the close-on-exec flag for the returned file descriptor.\n\nA new name TFD_CLOEXEC is introduced which in this implementation must\nhave the same value as O_CLOEXEC.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_timerfd_create\n# ifdef __x86_64__\n#  define __NR_timerfd_create 283\n# elif defined __i386__\n#  define __NR_timerfd_create 322\n# else\n#  error \"need __NR_timerfd_create\"\n# endif\n#endif\n\n#define TFD_CLOEXEC O_CLOEXEC\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_timerfd_create, CLOCK_REALTIME, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"timerfd_create(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"timerfd_create(0) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_timerfd_create, CLOCK_REALTIME, TFD_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"timerfd_create(TFD_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"timerfd_create(TFD_CLOEXEC) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b087498eb5605673b0f260a7620d91818cd72304",
      "tree": "977d9dbcd326a9582dfc5ad000995d26886c872e",
      "parents": [
        "9deb27baedb79759c3ab9435a7d8b841842d56e9"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:27 2008 -0700"
      },
      "message": "flag parameters: eventfd\n\nThis patch adds the new eventfd2 syscall.  It extends the old eventfd\nsyscall by one parameter which is meant to hold a flag value.  In this\npatch the only flag support is EFD_CLOEXEC which causes the close-on-exec\nflag for the returned file descriptor to be set.\n\nA new name EFD_CLOEXEC is introduced which in this implementation must\nhave the same value as O_CLOEXEC.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_eventfd2\n# ifdef __x86_64__\n#  define __NR_eventfd2 290\n# elif defined __i386__\n#  define __NR_eventfd2 328\n# else\n#  error \"need __NR_eventfd2\"\n# endif\n#endif\n\n#define EFD_CLOEXEC O_CLOEXEC\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_eventfd2, 1, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"eventfd2(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"eventfd2(0) sets close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_eventfd2, 1, EFD_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"eventfd2(EFD_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"eventfd2(EFD_CLOEXEC) does not set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n[akpm@linux-foundation.org: add sys_ni stub]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9deb27baedb79759c3ab9435a7d8b841842d56e9",
      "tree": "1c88393ba30db851ca0bb93c4e656d4e5dbb22b9",
      "parents": [
        "7d9dbca34240ebb6ff88d8a29c6c7bffd098f0c1"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:27 2008 -0700"
      },
      "message": "flag parameters: signalfd\n\nThis patch adds the new signalfd4 syscall.  It extends the old signalfd\nsyscall by one parameter which is meant to hold a flag value.  In this\npatch the only flag support is SFD_CLOEXEC which causes the close-on-exec\nflag for the returned file descriptor to be set.\n\nA new name SFD_CLOEXEC is introduced which in this implementation must\nhave the same value as O_CLOEXEC.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003csignal.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_signalfd4\n# ifdef __x86_64__\n#  define __NR_signalfd4 289\n# elif defined __i386__\n#  define __NR_signalfd4 327\n# else\n#  error \"need __NR_signalfd4\"\n# endif\n#endif\n\n#define SFD_CLOEXEC O_CLOEXEC\n\nint\nmain (void)\n{\n  sigset_t ss;\n  sigemptyset (\u0026ss);\n  sigaddset (\u0026ss, SIGUSR1);\n  int fd \u003d syscall (__NR_signalfd4, -1, \u0026ss, 8, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"signalfd4(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"signalfd4(0) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_signalfd4, -1, \u0026ss, 8, SFD_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"signalfd4(SFD_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"signalfd4(SFD_CLOEXEC) does not set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n[akpm@linux-foundation.org: add sys_ni stub]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d9dbca34240ebb6ff88d8a29c6c7bffd098f0c1",
      "tree": "7e3226a4d885f5e4444fbe01a08c51b0b33b2cc7",
      "parents": [
        "c019bbc612f6633ede7ed67725cbf68de45ae8a4"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:27 2008 -0700"
      },
      "message": "flag parameters: anon_inode_getfd extension\n\nThis patch just extends the anon_inode_getfd interface to take an additional\nparameter with a flag value.  The flag value is passed on to\nget_unused_fd_flags in anticipation for a use with the O_CLOEXEC flag.\n\nNo actual semantic changes here, the changed callers all pass 0 for now.\n\n[akpm@linux-foundation.org: KVM fix]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e2c10a12a2170856f5582d62d583cbcd1cb5eaf",
      "tree": "139bbb09655994b60eaa7c0e4bfccf775f4ab8e8",
      "parents": [
        "76a6f3dc9a7108785c145a298f82c72f9208fe17"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Jul 23 21:29:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:27 2008 -0700"
      },
      "message": "binfmt_misc: use simple_read_from_buffer()\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4a67cceee4a6f5ed38011a698c9e34747270ae5",
      "tree": "6da3eed51a938e1680a6212c56f9383bcf5670e0",
      "parents": [
        "91224346aa8c1cdaa660300a98e0b074a3a95030"
      ],
      "author": {
        "name": "Jon Tollefson",
        "email": "kniht@linux.vnet.ibm.com",
        "time": "Wed Jul 23 21:27:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:19 2008 -0700"
      },
      "message": "fs: check for statfs overflow\n\nAdds a check for an overflow in the filesystem size so if someone is\nchecking with statfs() on a 16G blocksize hugetlbfs in a 32bit binary that\nit will report back EOVERFLOW instead of a size of 0.\n\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a137e1cc6d6e7d315fef03962a2a5a113348b13b",
      "tree": "b47e195c392abaa3640cc2f9187d99d58cee664a",
      "parents": [
        "e5ff215941d59f8ae6bf58f6428dc5c26745a612"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "hugetlbfs: per mount huge page sizes\n\nAdd the ability to configure the hugetlb hstate used on a per mount basis.\n\n- Add a new pagesize\u003d option to the hugetlbfs mount that allows setting\n  the page size\n- This option causes the mount code to find the hstate corresponding to the\n  specified size, and sets up a pointer to the hstate in the mount\u0027s\n  superblock.\n- Change the hstate accessors to use this information rather than the\n  global_hstate they were using (requires a slight change in mm/memory.c\n  so we don\u0027t NULL deref in the error-unmap path -- see comments).\n\n[np: take hstate out of hugetlbfs inode and vma-\u003evm_private_data]\n\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5516438959d90b071ff0a484ce4f3f523dc3152",
      "tree": "e356ba9364c76b93c176b4d4a262b7aca3ee8f91",
      "parents": [
        "b7ba30c679ed1eb7ed3ed8f281f6493282042bd4"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "hugetlb: modular state for hugetlb page size\n\nThe goal of this patchset is to support multiple hugetlb page sizes.  This\nis achieved by introducing a new struct hstate structure, which\nencapsulates the important hugetlb state and constants (eg.  huge page\nsize, number of huge pages currently allocated, etc).\n\nThe hstate structure is then passed around the code which requires these\nfields, they will do the right thing regardless of the exact hstate they\nare operating on.\n\nThis patch adds the hstate structure, with a single global instance of it\n(default_hstate), and does the basic work of converting hugetlb to use the\nhstate.\n\nFuture patches will add more hstate structures to allow for different\nhugetlbfs mounts to have different page sizes.\n\n[akpm@linux-foundation.org: coding-style fixes]\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a47a126ad5ea072aca3e611ed8f8dc6adad24bab",
      "tree": "be47608111f762eba4fc6e80c7c2fcd82ffd6fd6",
      "parents": [
        "cce770815869e9209171d819dfde89bcc738ab62"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Jul 23 21:27:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "vmallocinfo: add NUMA information\n\nChristoph recently added /proc/vmallocinfo file to get information about\nvmalloc allocations.\n\nThis patch adds NUMA specific information, giving number of pages\nallocated on each memory node.\n\nThis should help to check that vmalloc() is able to respect NUMA policies.\n\nExample of output on a four nodes machine (one cpu per node)\n\n1) network hash tables are evenly spreaded on four nodes (OK) (Same\n   point for inodes and dentries hash tables)\n\n2) iptables tables (x_tables) are correctly allocated on each cpu node\n   (OK).\n\n3) sys_swapon() allocates its memory from one node only.\n\n4) each loaded module is using memory on one node.\n\nSysadmins could tune their setup to change points 3) and 4) if necessary.\n\ngrep \"pages\u003d\"  /proc/vmallocinfo\n0xffffc20000000000-0xffffc20000201000 2101248 alloc_large_system_hash+0x204/0x2c0 pages\u003d512 vmalloc N0\u003d128 N1\u003d128 N2\u003d128 N3\u003d128\n0xffffc20000201000-0xffffc20000302000 1052672 alloc_large_system_hash+0x204/0x2c0 pages\u003d256 vmalloc N0\u003d64 N1\u003d64 N2\u003d64 N3\u003d64\n0xffffc2000031a000-0xffffc2000031d000   12288 alloc_large_system_hash+0x204/0x2c0 pages\u003d2 vmalloc N1\u003d1 N2\u003d1\n0xffffc2000031f000-0xffffc2000032b000   49152 cramfs_uncompress_init+0x2e/0x80 pages\u003d11 vmalloc N0\u003d3 N1\u003d3 N2\u003d2 N3\u003d3\n0xffffc2000033e000-0xffffc20000341000   12288 sys_swapon+0x640/0xac0 pages\u003d2 vmalloc N0\u003d2\n0xffffc20000341000-0xffffc20000344000   12288 xt_alloc_table_info+0xfe/0x130 [x_tables] pages\u003d2 vmalloc N0\u003d2\n0xffffc20000344000-0xffffc20000347000   12288 xt_alloc_table_info+0xfe/0x130 [x_tables] pages\u003d2 vmalloc N1\u003d2\n0xffffc20000347000-0xffffc2000034a000   12288 xt_alloc_table_info+0xfe/0x130 [x_tables] pages\u003d2 vmalloc N2\u003d2\n0xffffc2000034a000-0xffffc2000034d000   12288 xt_alloc_table_info+0xfe/0x130 [x_tables] pages\u003d2 vmalloc N3\u003d2\n0xffffc20004381000-0xffffc20004402000  528384 alloc_large_system_hash+0x204/0x2c0 pages\u003d128 vmalloc N0\u003d32 N1\u003d32 N2\u003d32 N3\u003d32\n0xffffc20004402000-0xffffc20004803000 4198400 alloc_large_system_hash+0x204/0x2c0 pages\u003d1024 vmalloc vpages N0\u003d256 N1\u003d256 N2\u003d256 N3\u003d256\n0xffffc20004803000-0xffffc20004904000 1052672 alloc_large_system_hash+0x204/0x2c0 pages\u003d256 vmalloc N0\u003d64 N1\u003d64 N2\u003d64 N3\u003d64\n0xffffc20004904000-0xffffc20004bec000 3047424 sys_swapon+0x640/0xac0 pages\u003d743 vmalloc vpages N0\u003d743\n0xffffffffa0000000-0xffffffffa000f000   61440 sys_init_module+0xc27/0x1d00 pages\u003d14 vmalloc N1\u003d14\n0xffffffffa000f000-0xffffffffa0014000   20480 sys_init_module+0xc27/0x1d00 pages\u003d4 vmalloc N0\u003d4\n0xffffffffa0014000-0xffffffffa0017000   12288 sys_init_module+0xc27/0x1d00 pages\u003d2 vmalloc N0\u003d2\n0xffffffffa0017000-0xffffffffa0022000   45056 sys_init_module+0xc27/0x1d00 pages\u003d10 vmalloc N1\u003d10\n0xffffffffa0022000-0xffffffffa0028000   24576 sys_init_module+0xc27/0x1d00 pages\u003d5 vmalloc N3\u003d5\n0xffffffffa0028000-0xffffffffa0050000  163840 sys_init_module+0xc27/0x1d00 pages\u003d39 vmalloc N1\u003d39\n0xffffffffa0050000-0xffffffffa0052000    8192 sys_init_module+0xc27/0x1d00 pages\u003d1 vmalloc N1\u003d1\n0xffffffffa0052000-0xffffffffa0056000   16384 sys_init_module+0xc27/0x1d00 pages\u003d3 vmalloc N1\u003d3\n0xffffffffa0056000-0xffffffffa0081000  176128 sys_init_module+0xc27/0x1d00 pages\u003d42 vmalloc N3\u003d42\n0xffffffffa0081000-0xffffffffa00ae000  184320 sys_init_module+0xc27/0x1d00 pages\u003d44 vmalloc N3\u003d44\n0xffffffffa00ae000-0xffffffffa00b1000   12288 sys_init_module+0xc27/0x1d00 pages\u003d2 vmalloc N3\u003d2\n0xffffffffa00b1000-0xffffffffa00b9000   32768 sys_init_module+0xc27/0x1d00 pages\u003d7 vmalloc N0\u003d7\n0xffffffffa00b9000-0xffffffffa00c4000   45056 sys_init_module+0xc27/0x1d00 pages\u003d10 vmalloc N3\u003d10\n0xffffffffa00c6000-0xffffffffa00e0000  106496 sys_init_module+0xc27/0x1d00 pages\u003d25 vmalloc N2\u003d25\n0xffffffffa00e0000-0xffffffffa00f1000   69632 sys_init_module+0xc27/0x1d00 pages\u003d16 vmalloc N2\u003d16\n0xffffffffa00f1000-0xffffffffa00f4000   12288 sys_init_module+0xc27/0x1d00 pages\u003d2 vmalloc N3\u003d2\n0xffffffffa00f4000-0xffffffffa00f7000   12288 sys_init_module+0xc27/0x1d00 pages\u003d2 vmalloc N3\u003d2\n\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cce770815869e9209171d819dfde89bcc738ab62",
      "tree": "1a78a7d57ae8c429df15bed31275a3424b305eb5",
      "parents": [
        "bcd78e49613c41b5bed96fa288e983876f286a59"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@suse.cz",
        "time": "Wed Jul 23 21:27:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "SYNC_FILE_RANGE_WRITE may and will block. Document that.\n\n[akpm@linux-foundation.org: fix comment text]\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04f2cbe35699d22dbf428373682ead85ca1240f5",
      "tree": "1987a2c704cc97d8adf603054c9d89d18b9b30e0",
      "parents": [
        "a1e78772d72b2616ed20e54896e68e0e7044854e"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 23 21:27:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "hugetlb: guarantee that COW faults for a process that called mmap(MAP_PRIVATE) on hugetlbfs will succeed\n\nAfter patch 2 in this series, a process that successfully calls mmap() for\na MAP_PRIVATE mapping will be guaranteed to successfully fault until a\nprocess calls fork().  At that point, the next write fault from the parent\ncould fail due to COW if the child still has a reference.\n\nWe only reserve pages for the parent but a copy must be made to avoid\nleaking data from the parent to the child after fork().  Reserves could be\ntaken for both parent and child at fork time to guarantee faults but if\nthe mapping is large it is highly likely we will not have sufficient pages\nfor the reservation, and it is common to fork only to exec() immediatly\nafter.  A failure here would be very undesirable.\n\nNote that the current behaviour of mainline with MAP_PRIVATE pages is\npretty bad.  The following situation is allowed to occur today.\n\n1. Process calls mmap(MAP_PRIVATE)\n2. Process calls mlock() to fault all pages and makes sure it succeeds\n3. Process forks()\n4. Process writes to MAP_PRIVATE mapping while child still exists\n5. If the COW fails at this point, the process gets SIGKILLed even though it\n   had taken care to ensure the pages existed\n\nThis patch improves the situation by guaranteeing the reliability of the\nprocess that successfully calls mmap().  When the parent performs COW, it\nwill try to satisfy the allocation without using reserves.  If that fails\nthe parent will steal the page leaving any children without a page.\nFaults from the child after that point will result in failure.  If the\nchild COW happens first, an attempt will be made to allocate the page\nwithout reserves and the child will get SIGKILLed on failure.\n\nTo summarise the new behaviour:\n\n1. If the original mapper performs COW on a private mapping with multiple\n   references, it will attempt to allocate a hugepage from the pool or\n   the buddy allocator without using the existing reserves. On fail, VMAs\n   mapping the same area are traversed and the page being COW\u0027d is unmapped\n   where found. It will then steal the original page as the last mapper in\n   the normal way.\n\n2. The VMAs the pages were unmapped from are flagged to note that pages\n   with data no longer exist. Future no-page faults on those VMAs will\n   terminate the process as otherwise it would appear that data was corrupted.\n   A warning is printed to the console that this situation occured.\n\n2. If the child performs COW first, it will attempt to satisfy the COW\n   from the pool if there are enough pages or via the buddy allocator if\n   overcommit is allowed and the buddy allocator can satisfy the request. If\n   it fails, the child will be killed.\n\nIf the pool is large enough, existing applications will not notice that\nthe reserves were a factor.  Existing applications depending on the\nno-reserves been set are unlikely to exist as for much of the history of\nhugetlbfs, pages were prefaulted at mmap(), allocating the pages at that\npoint or failing the mmap().\n\n[npiggin@suse.de: fix CONFIG_HUGETLB\u003dn build]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1e78772d72b2616ed20e54896e68e0e7044854e",
      "tree": "d752dd96c2a4fcc555779a7aa99f95069c9b95ae",
      "parents": [
        "fc1b8a73dd71226902a11928dd5500326e101df9"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 23 21:27:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "hugetlb: reserve huge pages for reliable MAP_PRIVATE hugetlbfs mappings until fork()\n\nThis patch reserves huge pages at mmap() time for MAP_PRIVATE mappings in\na similar manner to the reservations taken for MAP_SHARED mappings.  The\nreserve count is accounted both globally and on a per-VMA basis for\nprivate mappings.  This guarantees that a process that successfully calls\nmmap() will successfully fault all pages in the future unless fork() is\ncalled.\n\nThe characteristics of private mappings of hugetlbfs files behaviour after\nthis patch are;\n\n1. The process calling mmap() is guaranteed to succeed all future faults until\n   it forks().\n2. On fork(), the parent may die due to SIGKILL on writes to the private\n   mapping if enough pages are not available for the COW. For reasonably\n   reliable behaviour in the face of a small huge page pool, children of\n   hugepage-aware processes should not reference the mappings; such as\n   might occur when fork()ing to exec().\n3. On fork(), the child VMAs inherit no reserves. Reads on pages already\n   faulted by the parent will succeed. Successful writes will depend on enough\n   huge pages being free in the pool.\n4. Quotas of the hugetlbfs mount are checked at reserve time for the mapper\n   and at fault time otherwise.\n\nBefore this patch, all reads or writes in the child potentially needs page\nallocations that can later lead to the death of the parent.  This applies\nto reads and writes of uninstantiated pages as well as COW.  After the\npatch it is only a write to an instantiated page that causes problems.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da3bbdd4632c0171406b2677e31494afa5bde2f8",
      "tree": "6a1947b2a32041ef0d14044e659ba7d546d55483",
      "parents": [
        "3c82d0ce2c4f642b2f24ef98707a030543b06b90"
      ],
      "author": {
        "name": "Kentaro Makita",
        "email": "k-makita@np.css.fujitsu.com",
        "time": "Wed Jul 23 21:27:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:15 2008 -0700"
      },
      "message": "fix soft lock up at NFS mount via per-SB LRU-list of unused dentries\n\n[Summary]\n\n Split LRU-list of unused dentries to one per superblock to avoid soft\n lock up during NFS mounts and remounting of any filesystem.\n\n Previously I posted here:\n http://lkml.org/lkml/2008/3/5/590\n\n[Descriptions]\n\n- background\n\n  dentry_unused is a list of dentries which are not referenced.\n  dentry_unused grows up when references on directories or files are\n  released.  This list can be very long if there is huge free memory.\n\n- the problem\n\n  When shrink_dcache_sb() is called, it scans all dentry_unused linearly\n  under spin_lock(), and if dentry-\u003ed_sb is differnt from given\n  superblock, scan next dentry.  This scan costs very much if there are\n  many entries, and very ineffective if there are many superblocks.\n\n  IOW, When we need to shrink unused dentries on one dentry, but scans\n  unused dentries on all superblocks in the system.  For example, we scan\n  500 dentries to unmount a filesystem, but scans 1,000,000 or more unused\n  dentries on other superblocks.\n\n  In our case , At mounting NFS*, shrink_dcache_sb() is called to shrink\n  unused dentries on NFS, but scans 100,000,000 unused dentries on\n  superblocks in the system such as local ext3 filesystems.  I hear NFS\n  mounting took 1 min on some system in use.\n\n* : NFS uses virtual filesystem in rpc layer, so NFS is affected by\n  this problem.\n\n  100,000,000 is possible number on large systems.\n\n  Per-superblock LRU of unused dentried can reduce the cost in\n  reasonable manner.\n\n- How to fix\n\n  I found this problem is solved by David Chinner\u0027s \"Per-superblock\n  unused dentry LRU lists V3\"(1), so I rebase it and add some fix to\n  reclaim with fairness, which is in Andrew Morton\u0027s comments(2).\n\n  1) http://lkml.org/lkml/2006/5/25/318\n  2) http://lkml.org/lkml/2006/5/25/320\n\n  Split LRU-list of unused dentries to each superblocks.  Then, NFS\n  mounting will check dentries under a superblock instead of all.  But\n  this spliting will break LRU of dentry-unused.  So, I\u0027ve attempted to\n  make reclaim unused dentrins with fairness by calculate number of\n  dentries to scan on this sb based on following way\n\n  number of dentries to scan on this sb \u003d\n  count * (number of dentries on this sb / number of dentries in the machine)\n\n- ToDo\n - I have to measuring performance number and do stress tests.\n\n - When unmount occurs during prune_dcache(), scanning on same\n  superblock, It is unable to reach next superblock because it is gone\n  away.  We restart scannig superblock from first one, it causes\n  unfairness of reclaim unused dentries on first superblock.  But I think\n  this happens very rarely.\n\n- Test Results\n\n  Result on 6GB boxes with excessive unused dentries.\n\nWithout patch:\n\n$ cat /proc/sys/fs/dentry-state\n10181835        10180203        45      0       0       0\n# mount -t nfs 10.124.60.70:/work/kernel-src nfs\nreal    0m1.830s\nuser    0m0.001s\nsys     0m1.653s\n\n With this patch:\n$ cat /proc/sys/fs/dentry-state\n10236610        10234751        45      0       0       0\n# mount -t nfs 10.124.60.70:/work/kernel-src nfs\nreal    0m0.106s\nuser    0m0.002s\nsys     0m0.032s\n\n[akpm@linux-foundation.org: fix comments]\nSigned-off-by: Kentaro Makita \u003ck-makita@np.css.fujitsu.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42b7772812d15b86543a23b82bd6070eef9a08b1",
      "tree": "10665ee01fe82ce17c68a6278d044531b1ed64c0",
      "parents": [
        "a352894d07059649398c4769dc8b645e1a1dad88"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Wed Jul 23 21:27:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:15 2008 -0700"
      },
      "message": "mm: remove double indirection on tlb parameter to free_pgd_range() \u0026 Co\n\nThe double indirection here is not needed anywhere and hence (at least)\nconfusing.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c748e1340e0de3fa7fed86f8bdf499be9242afff",
      "tree": "864d3133bb8c3f73615497ef1fc557fcf93e5f1b",
      "parents": [
        "4f5ca265788973e3f5a1129a96ee4a9cbf587f2b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Jul 23 21:27:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:14 2008 -0700"
      },
      "message": "mm/vmstat.c: proper externs\n\nThis patch adds proper extern declarations for five variables in\ninclude/linux/vmstat.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c010b2f76c3032e48097a6eef291d8593d5d79a6",
      "tree": "16077c83703527732991a55dea1abe330c0ccdc6",
      "parents": [
        "6069fb2ef5d4f47432359c97f350e0cfcc4d208e",
        "521c4d96e0840ecce25b956e00f416ed499ef2ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 19:09:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 19:09:51 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (82 commits)\n  ipw2200: Call netif_*_queue() interfaces properly.\n  netxen: Needs to include linux/vmalloc.h\n  [netdrvr] atl1d: fix !CONFIG_PM build\n  r6040: rework init_one error handling\n  r6040: bump release number to 0.18\n  r6040: handle RX fifo full and no descriptor interrupts\n  r6040: change the default waiting time\n  r6040: use definitions for magic values in descriptor status\n  r6040: completely rework the RX path\n  r6040: call napi_disable when puting down the interface and set lp-\u003edev accordingly.\n  mv643xx_eth: fix NETPOLL build\n  r6040: rework the RX buffers allocation routine\n  r6040: fix scheduling while atomic in r6040_tx_timeout\n  r6040: fix null pointer access and tx timeouts\n  r6040: prefix all functions with r6040\n  rndis_host: support WM6 devices as modems\n  at91_ether: use netstats in net_device structure\n  sfc: Create one RX queue and interrupt per CPU package by default\n  sfc: Use a separate workqueue for resets\n  sfc: I2C adapter initialisation fixes\n  ...\n"
    },
    {
      "commit": "8086cd451f08f4c0f9693fc66d87754bbd18cfba",
      "tree": "4cd564e413e6cd20905befa968361302e3ea2ec8",
      "parents": [
        "cf508b1211dbe576778ff445ea1b4b0bcfa5c4ea"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jul 22 14:19:19 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 22 14:19:19 2008 -0700"
      },
      "message": "netns: make get_proc_net() static\n\nget_proc_net() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "53baaaa9682c230410a057263d1ce2922f43ddc4",
      "tree": "f5cced5622130f780d76953b284a631c3d226488",
      "parents": [
        "f10140fbe5f97ecfeda986a12d0f1bad75642779",
        "3f9787046ea37a26170dc4439efa21f8d23a9978"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 13:13:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 13:13:47 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (79 commits)\n  arm: bus_id -\u003e dev_name() and dev_set_name() conversions\n  sparc64: fix up bus_id changes in sparc core code\n  3c59x: handle pci_name() being const\n  MTD: handle pci_name() being const\n  HP iLO driver\n  sysdev: Convert the x86 mce tolerant sysdev attribute to generic attribute\n  sysdev: Add utility functions for simple int/ulong variable sysdev attributes\n  sysdev: Pass the attribute to the low level sysdev show/store function\n  driver core: Suppress sysfs warnings for device_rename().\n  kobject: Transmit return value of call_usermodehelper() to caller\n  sysfs-rules.txt: reword API stability statement\n  debugfs: Implement debugfs_remove_recursive()\n  HOWTO: change email addresses of James in HOWTO\n  always enable FW_LOADER unless EMBEDDED\u003dy\n  uio-howto.tmpl: use unique output names\n  uio-howto.tmpl: use standard copyright/legal markings\n  sysfs: don\u0027t call notify_change\n  sysdev: fix debugging statements in registration code.\n  kobject: should use kobject_put() in kset-example\n  kobject: reorder kobject to save space on 64 bit builds\n  ...\n"
    },
    {
      "commit": "ee1e6ab6056a8b9c19377257002da98b83819531",
      "tree": "0119b6cedbcbdc06ad3778c56e6a795bb7896ed9",
      "parents": [
        "91cd4d6ef0abb1f65e81f8fe37e7d3c10344e38c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jul 21 14:21:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 09:59:41 2008 -0700"
      },
      "message": "proc: fix /proc/*/pagemap some more\n\nstruct pagemap_walk was placed on stack, some hooks are initialized, the\nrest (-\u003epgd_entry, -\u003epud_entry, -\u003epte_entry) are valid but junk.\n\nReported-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Vegard Nossum\" \u003cvegard.nossum@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e [2.6.25.x, 2.6.26.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "651910874633a75f4a726d44e449be0a56b4b2e0",
      "tree": "55adac70473da5618042f65dd652fcec0965732c",
      "parents": [
        "93ded9b8fd42abe2c3607097963d8de6ad9117eb"
      ],
      "author": {
        "name": "John Reiser",
        "email": "jreiser@BitWagon.com",
        "time": "Mon Jul 21 14:21:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 09:59:40 2008 -0700"
      },
      "message": "execve filename: document and export via auxiliary vector\n\nThe Linux kernel puts the filename argument of execve() into the new\naddress space.  Many developers are surprised to learn this.  Those who\nknow and could use it, object \"But it\u0027s not documented.\"\n\nThose who want to use it dislike the expression\n  (char *)(1+ strlen(env[-1+ n_env]) + env[-1+ n_env])\nbecause it requires locating the last original environment variable,\nand assumes that the filename follows the characters.\n\nThis patch documents the insertion of the filename, and makes it easier\nto find by adding a new tag AT_EXECFN in the ElfXX_auxv_t; see \u003celf.h\u003e.\n\nIn many cases readlink(\"/proc/self/exe\",) gives the same answer.  But if\nall the original pages get unmapped, then the kernel erases the symlink\nfor /proc/self/exe.  This can happen when a program decompressor does a\ngood job of cleaning up after uncompressing directly to memory, so that\nthe address space of the target program looks the same as if compression\nhad never happened.  One example is http://upx.sourceforge.net .\n\nOne notable use of the underlying concept (what path containED the\nexecutable) is glibc expanding $ORIGIN in DT_RUNPATH.  In practice for\nthe near term, it may be a good idea for user-mode code to use both\n/proc/self/exe and AT_EXECFN as fall-back methods for each other.\n/proc/self/exe can fail due to unmapping, AT_EXECFN can fail because it\nwon\u0027t be present on non-new systems.  The auxvec or {AT_EXECFN}.d_val\nalso can get overwritten, although in nearly all cases this would be the\nresult of a bug.\n\nThe runtime cost is one NEW_AUX_ENT using two words of stack space.  The\nunderlying value is maintained already as bprm-\u003eexec; setup_arg_pages()\nin fs/exec.c slides it for stack_shift, etc.\n\nSigned-off-by: John Reiser \u003cjreiser@BitWagon.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36ce6dad6e3cb3f050ed41e0beac0070d2062b25",
      "tree": "91c89c903b06dc8b76e66e7b2341bcd6085e81d0",
      "parents": [
        "0ad1d6f37cc3bb234c6e7ae30e40d1d40b9aa258"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue Jun 10 11:09:08 2008 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:55:01 2008 -0700"
      },
      "message": "driver core: Suppress sysfs warnings for device_rename().\n\ndriver core: Suppress sysfs warnings for device_rename().\n\nRenaming network devices to an already existing name is not\nsomething we want sysfs to print a scary warning for, since the\ncallers can deal with this correctly. So let\u0027s introduce\nsysfs_create_link_nowarn() which gets rid of the common warning.\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9505e6375640fc61d92d36c8e9f25a6a218f3f57",
      "tree": "dde19254ac9ccd27812aab2c96943bfe2afaf406",
      "parents": [
        "43166141f73f969794bd7c850c89913631df99e4"
      ],
      "author": {
        "name": "Haavard Skinnemoen",
        "email": "haavard.skinnemoen@atmel.com",
        "time": "Tue Jul 01 15:14:51 2008 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:59 2008 -0700"
      },
      "message": "debugfs: Implement debugfs_remove_recursive()\n\ndebugfs_remove_recursive() will remove a dentry and all its children.\nDrivers can use this to zap their whole debugfs tree so that they don\u0027t\nneed to keep track of every single debugfs dentry they created.\n\nIt may fail to remove the whole tree in certain cases:\n\nsh-3.2# rmmod atmel-mci \u003c /sys/kernel/debug/mmc0/ios/clock\nmmc0: card b368 removed\natmel_mci atmel_mci.0: Lost dma0chan1, falling back to PIO\nsh-3.2# ls /sys/kernel/debug/mmc0/\nios\n\nBut I\u0027m not sure if that case can be handled in any sane manner.\n\nSigned-off-by: Haavard Skinnemoen \u003chaavard.skinnemoen@atmel.com\u003e\nCc: Pierre Ossman \u003cdrzeus-list@drzeus.cx\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "93265d13ea5c3ec5f61a8009407fbe046ce6b7c0",
      "tree": "1db94fa6cc1ee9b0eae1332a340ac98efa4d8f28",
      "parents": [
        "838ea8e8dbfc8d907c7a55bbad507a44c1b81d57"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jun 16 13:46:47 2008 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:57 2008 -0700"
      },
      "message": "sysfs: don\u0027t call notify_change\n\nsysfs_chmod_file() calls notify_change() to change the permission bits\non a sysfs file.  Replace with explicit call to sysfs_setattr() and\nfsnotify_change().\n\nThis is equivalent, except that security_inode_setattr() is not\ncalled.  This function is called by drivers, so the security checks do\nnot make any sense.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    }
  ],
  "next": "aab0de245150c09e61c30962feb16aacde508dc3"
}
