)]}'
{
  "log": [
    {
      "commit": "5ce7852cdf07ab903fb1c72d0915ac492c6e07c7",
      "tree": "7992224cd306be5e827de0bdf6255bc87a2bf4c8",
      "parents": [
        "dd81eca83c8300c95d8a1eaf0d38f56513711535"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Sep 10 00:26:28 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:25 2005 -0700"
      },
      "message": "[PATCH] mm/filemap.c: make two functions static\n\nWith Nick Piggin \u003cnpiggin@suse.de\u003e\n\nGive some things static scope.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab2af1f5005069321c5d130f09cce577b03f43ef",
      "tree": "73a70ba486f522cd9eeeef376ede2b5a1c1b473b",
      "parents": [
        "6e72ad2c581de121cc7e772469e2a8f6b1fd4379"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: files struct with RCU\n\nPatch to eliminate struct files_struct.file_lock spinlock on the reader side\nand use rcu refcounting rcuref_xxx api for the f_count refcounter.  The\nupdates to the fdtable are done by allocating a new fdtable structure and\nsetting files-\u003efdt to point to the new structure.  The fdtable structure is\nprotected by RCU thereby allowing lock-free lookup.  For fd arrays/sets that\nare vmalloced, we use keventd to free them since RCU callbacks can\u0027t sleep.  A\nglobal list of fdtable to be freed is not scalable, so we use a per-cpu list.\nIf keventd is already handling the current cpu\u0027s work, we use a timer to defer\nqueueing of that work.\n\nSince the last publication, this patch has been re-written to avoid using\nexplicit memory barriers and use rcu_assign_pointer(), rcu_dereference()\npremitives instead.  This required that the fd information is kept in a\nseparate structure (fdtable) and updated atomically.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a7662236253374012d364106b6dc9161bd929e2e",
      "tree": "59f34811d18fef8195bc3200bdb2684598175f29",
      "parents": [
        "e6c9f5c1888097c936334bf9740024520ca47b8e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Sep 06 15:19:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:55 2005 -0700"
      },
      "message": "[PATCH] Make ll_rw_block() wait for buffer lock\n\nIntroduce new ll_rw_block() operation SWRITE meaning that block layer should\nwait for the buffer lock and write-out afterwards.  Hence data in buffers at\nthe time of call are guaranteed to be submitted to the disk.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e922efc342d565a38eed3af377ff403f52148864",
      "tree": "b9996a96ed1bbb6e387f7ba8216f8e43ca640398",
      "parents": [
        "ab8d11beb46f0bd0617e04205c01f5c1fe845b61"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Sep 06 15:18:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:43 2005 -0700"
      },
      "message": "[PATCH] remove duplicated sys_open32() code from 64bit archs\n\n64 bit architectures all implement their own compatibility sys_open(),\nwhen in fact the difference is simply not forcing the O_LARGEFILE\nflag.  So use the a common function instead.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e89bbd3a0b3c054d9a94feb0db7bbae1cdb99e54",
      "tree": "2defda8463822cf21738665864fb702acb36d1ed",
      "parents": [
        "c320aa545bc3921fc2b192ab0443218d27a2738c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Sep 06 15:18:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:42 2005 -0700"
      },
      "message": "[PATCH] remove iattr.ia_attr_flags\n\nRemove unused ia_attr_flags from struct iattr, and related defines.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2832e9366a1fcd6f76957a42157be041240f994e",
      "tree": "d2dd2a46f3ba7476b7db31806b5d98c4ed6a46dd",
      "parents": [
        "0730ded5be28653675ed314fdd878b8db5f88aa4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Sep 06 15:17:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:32 2005 -0700"
      },
      "message": "[PATCH] remove file.f_maxcount\n\nstruct file cleanup: f_maxcount has an unique value (INT_MAX).  Just use\nthe hard-wired value.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cc314eef0128a807e50fa03baf2d0abc0647952c",
      "tree": "8e38db1be28006894915273b3f3cb3beaa6efda3",
      "parents": [
        "2fb1e3086df9b454538491fba8121298da37cd23"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Aug 19 18:02:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Aug 19 18:02:56 2005 -0700"
      },
      "message": "Fix nasty ncpfs symlink handling bug.\n\nThis bug could cause oopses and page state corruption, because ncpfs\nused the generic page-cache symlink handlign functions.  But those\nfunctions only work if the page cache is guaranteed to be \"stable\", ie a\npage that was installed when the symlink walk was started has to still\nbe installed in the page cache at the end of the walk.\n\nWe could have fixed ncpfs to not use the generic helper routines, but it\nis in many ways much cleaner to instead improve on the symlink walking\nhelper routines so that they don\u0027t require that absolute stability.\n\nWe do this by allowing \"follow_link()\" to return a error-pointer as a\ncookie, which is fed back to the cleanup \"put_link()\" routine.  This\nalso simplifies NFS symlink handling.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c293621bbf678a3d85e3ed721c3921c8a670610d",
      "tree": "c72fc522cf3fd2d12f7fd716b7eb4db8d7fcaf52",
      "parents": [
        "3e5ea098446e19175fdee4c2c4ec9366b0217db4"
      ],
      "author": {
        "name": "Peter Staubach",
        "email": "staubach@redhat.com",
        "time": "Wed Jul 27 11:45:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 27 16:26:06 2005 -0700"
      },
      "message": "[PATCH] stale POSIX lock handling\n\nI believe that there is a problem with the handling of POSIX locks, which\nthe attached patch should address.\n\nThe problem appears to be a race between fcntl(2) and close(2).  A\nmultithreaded application could close a file descriptor at the same time as\nit is trying to acquire a lock using the same file descriptor.  I would\nsuggest that that multithreaded application is not providing the proper\nsynchronization for itself, but the OS should still behave correctly.\n\nSUS3 (Single UNIX Specification Version 3, read: POSIX) indicates that when\na file descriptor is closed, that all POSIX locks on the file, owned by the\nprocess which closed the file descriptor, should be released.\n\nThe trick here is when those locks are released.  The current code releases\nall locks which exist when close is processing, but any locks in progress\nare handled when the last reference to the open file is released.\n\nThere are three cases to consider.\n\nOne is the simple case, a multithreaded (mt) process has a file open and\nraces to close it and acquire a lock on it.  In this case, the close will\nrelease one reference to the open file and when the fcntl is done, it will\nrelease the other reference.  For this situation, no locks should exist on\nthe file when both the close and fcntl operations are done.  The current\nsystem will handle this case because the last reference to the open file is\nbeing released.\n\nThe second case is when the mt process has dup(2)\u0027d the file descriptor.\nThe close will release one reference to the file and the fcntl, when done,\nwill release another, but there will still be at least one more reference\nto the open file.  One could argue that the existence of a lock on the file\nafter the close has completed is okay, because it was acquired after the\nclose operation and there is still a way for the application to release the\nlock on the file, using an existing file descriptor.\n\nThe third case is when the mt process has forked, after opening the file\nand either before or after becoming an mt process.  In this case, each\nprocess would hold a reference to the open file.  For each process, this\ndegenerates to first case above.  However, the lock continues to exist\nuntil both processes have released their references to the open file.  This\nlock could block other lock requests.\n\nThe changes to release the lock when the last reference to the open file\naren\u0027t quite right because they would allow the lock to exist as long as\nthere was a reference to the open file.  This is too long.\n\nThe new proposed solution is to add support in the fcntl code path to\ndetect a race with close and then to release the lock which was just\nacquired when such as race is detected.  This causes locks to be released\nin a timely fashion and for the system to conform to the POSIX semantic\nspecification.\n\nThis was tested by instrumenting a kernel to detect the handling locks and\nthen running a program which generates case #3 above.  A dangling lock\ncould be reliably generated.  When the changes to detect the close/fcntl\nrace were added, a dangling lock could no longer be generated.\n\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "88bd5121d635136e01369141367f315665534b3c",
      "tree": "33de8dda3d77ebf7bf48864c464a36665f66497c",
      "parents": [
        "9a556e89081b0c1c2f83cee915363b15a68a6f2d"
      ],
      "author": {
        "name": "Anton Altaparmakov",
        "email": "aia21@cam.ac.uk",
        "time": "Wed Jul 13 01:10:44 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 13 11:25:24 2005 -0700"
      },
      "message": "[PATCH] Fix soft lockup due to NTFS: VFS part and explanation\n\nSomething has changed in the core kernel such that we now get concurrent\ninode write outs, one e.g via pdflush and one via sys_sync or whatever.\nThis causes a nasty deadlock in ntfs.  The only clean solution\nunfortunately requires a minor vfs api extension.\n\nFirst the deadlock analysis:\n\nPrerequisive knowledge: NTFS has a file $MFT (inode 0) loaded at mount\ntime.  The NTFS driver uses the page cache for storing the file contents as\nusual.  More interestingly this file contains the table of on-disk inodes\nas a sequence of MFT_RECORDs.  Thus NTFS driver accesses the on-disk inodes\nby accessing the MFT_RECORDs in the page cache pages of the loaded inode\n$MFT.\n\nThe situation: VFS inode X on a mounted ntfs volume is dirty.  For same\ninode X, the ntfs_inode is dirty and thus corresponding on-disk inode,\nwhich is as explained above in a dirty PAGE_CACHE_PAGE belonging to the\ntable of inodes ($MFT, inode 0).\n\nWhat happens:\n\nProcess 1: sys_sync()/umount()/whatever...  calls __sync_single_inode() for\n$MFT -\u003e do_writepages() -\u003e write_page for the dirty page containing the\non-disk inode X, the page is now locked -\u003e ntfs_write_mst_block() which\nclears PageUptodate() on the page to prevent anyone else getting hold of it\nwhilst it does the write out (this is necessary as the on-disk inode needs\n\"fixups\" applied before the write to disk which are removed again after the\nwrite and PageUptodate is then set again).  It then analyses the page\nlooking for dirty on-disk inodes and when it finds one it calls\nntfs_may_write_mft_record() to see if it is safe to write this on-disk\ninode.  This then calls ilookup5() to check if the corresponding VFS inode\nis in icache().  This in turn calls ifind() which waits on the inode lock\nvia wait_on_inode whilst holding the global inode_lock.\n\nProcess 2: pdflush results in a call to __sync_single_inode for the same\nVFS inode X on the ntfs volume.  This locks the inode (I_LOCK) then calls\nwrite-inode -\u003e ntfs_write_inode -\u003e map_mft_record() -\u003e read_cache_page() of\nthe page (in page cache of table of inodes $MFT, inode 0) containing the\non-disk inode.  This page has PageUptodate() clear because of Process 1\n(see above) so read_cache_page() blocks when tries to take the page lock\nfor the page so it can call ntfs_read_page().\n\nThus Process 1 is holding the page lock on the page containing the on-disk\ninode X and it is waiting on the inode X to be unlocked in ifind() so it\ncan write the page out and then unlock the page.\n\nAnd Process 2 is holding the inode lock on inode X and is waiting for the\npage to be unlocked so it can call ntfs_readpage() or discover that\nProcess 1 set PageUptodate() again and use the page.\n\nThus we have a deadlock due to ifind() waiting on the inode lock.\n\nThe only sensible solution: NTFS does not care whether the VFS inode is\nlocked or not when it calls ilookup5() (it doesn\u0027t use the VFS inode at\nall, it just uses it to find the corresponding ntfs_inode which is of\ncourse attached to the VFS inode (both are one single struct); and it uses\nthe ntfs_inode which is subject to its own locking so I_LOCK is irrelevant)\nhence we want a modified ilookup5_nowait() which is the same as ilookup5()\nbut it does not wait on the inode lock.\n\nWithout such functionality I would have to keep my own ntfs_inode cache in\nthe NTFS driver just so I can find ntfs_inodes independent of their VFS\ninodes which would be slow, memory and cpu cycle wasting, and incredibly\nstupid given the icache already exists in the VFS.\n\nBelow is a patch that does the ilookup5_nowait() implementation in\nfs/inode.c and exports it.\n\nilookup5_nowait.diff:\n\nIntroduce ilookup5_nowait() which is basically the same as ilookup5() but\nit does not wait on the inode\u0027s lock (i.e. it omits the wait_on_inode()\ndone in ifind()).\n\nThis is needed to avoid a nasty deadlock in NTFS.\n\nSigned-off-by: Anton Altaparmakov \u003caia21@cantab.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0eeca28300df110bd6ed54b31193c83b87921443",
      "tree": "7db42d8a18d80eca538f5b7d25e0532b8fa38b85",
      "parents": [
        "bd4c625c061c2a38568d0add3478f59172455159"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Tue Jul 12 17:06:03 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 20:38:38 2005 -0700"
      },
      "message": "[PATCH] inotify\n\ninotify is intended to correct the deficiencies of dnotify, particularly\nits inability to scale and its terrible user interface:\n\n        * dnotify requires the opening of one fd per each directory\n          that you intend to watch. This quickly results in too many\n          open files and pins removable media, preventing unmount.\n        * dnotify is directory-based. You only learn about changes to\n          directories. Sure, a change to a file in a directory affects\n          the directory, but you are then forced to keep a cache of\n          stat structures.\n        * dnotify\u0027s interface to user-space is awful.  Signals?\n\ninotify provides a more usable, simple, powerful solution to file change\nnotification:\n\n        * inotify\u0027s interface is a system call that returns a fd, not SIGIO.\n\t  You get a single fd, which is select()-able.\n        * inotify has an event that says \"the filesystem that the item\n          you were watching is on was unmounted.\"\n        * inotify can watch directories or files.\n\nInotify is currently used by Beagle (a desktop search infrastructure),\nGamin (a FAM replacement), and other projects.\n\nSee Documentation/filesystems/inotify.txt.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cb2c0233755429037462e16ea0d5497a0092738c",
      "tree": "49c5d19090986c71b59dd2fb4c57b1e1ae33062d",
      "parents": [
        "ca3f5a95b7d04eef0f88464f8d3299c1c01e8e13"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Jul 07 17:56:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:35 2005 -0700"
      },
      "message": "[PATCH] export generic_drop_inode() to modules\n\nOCFS2 wants to mark an inode which has been orphaned by another node so\nthat during final iput it takes the correct path through the VFS and can\npass through the OCFS2 delete_inode callback.  Since i_nlink can get out of\ndate with other nodes, the best way I see to accomplish this is by clearing\ni_nlink on those inodes at drop_inode time.  Other than this small amount\nof work, nothing different needs to happen, so I think it would be cleanest\nto be able to just call generic_drop_inode at the end of the OCFS2\ndrop_inode callback.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22e2c507c301c3dbbcf91b4948b88f78842ee6c9",
      "tree": "9a97c91d1362e69703aa286021daffb8a5456f4c",
      "parents": [
        "020f46a39eb7b99a575b9f4d105fce2b142acdf1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Mon Jun 27 10:55:12 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 14:33:29 2005 -0700"
      },
      "message": "[PATCH] Update cfq io scheduler to time sliced design\n\nThis updates the CFQ io scheduler to the new time sliced design (cfq\nv3).  It provides full process fairness, while giving excellent\naggregate system throughput even for many competing processes.  It\nsupports io priorities, either inherited from the cpu nice value or set\ndirectly with the ioprio_get/set syscalls.  The latter closely mimic\nset/getpriority.\n\nThis import is based on my latest from -mm.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eb6fe0c388e43b02e261f0fdee60e42f6298d7f7",
      "tree": "3924bfbbbb10afc19f3bcd4963af14121f2c0553",
      "parents": [
        "6d79125bba55ee82701f1c7d4ebbc1aa20ecbe4e"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Jun 23 22:05:28 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:41 2005 -0700"
      },
      "message": "[PATCH] xip: reduce code duplication\n\nThis patch reworks filemap_xip.c with the goal to reduce code duplication\nfrom mm/filemap.c.  It applies agains 2.6.12-rc6-mm1.  Instead of\nimplementing the aio functions, this one implements the synchronous\nread/write functions only.  For readv and writev, the generic fallback is\nused.  For aio, we rely on the application doing the fallback.  Since our\n\"synchronous\" function does memcpy immediately anyway, there is no\nperformance difference between using the fallbacks or implementing each\noperation.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6d79125bba55ee82701f1c7d4ebbc1aa20ecbe4e",
      "tree": "fbd7f82fea19fd89e09312fe89919774b94a6efe",
      "parents": [
        "ceffc078528befc008c6f2c2c4decda79eabd534"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Jun 23 22:05:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:41 2005 -0700"
      },
      "message": "[PATCH] xip: ext2: execute in place\n\nThese are the ext2 related parts.  Ext2 now uses the xip_* file operations\nalong with the get_xip_page aop when mounted with -o xip.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ceffc078528befc008c6f2c2c4decda79eabd534",
      "tree": "a289e10162bdef0c0d9f6533f1a647b0fe1ed7a9",
      "parents": [
        "420edbcc09008342c7b2665453f6b370739aadb0"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Jun 23 22:05:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:41 2005 -0700"
      },
      "message": "[PATCH] xip: fs/mm: execute in place\n\n- generic_file* file operations do no longer have a xip/non-xip split\n- filemap_xip.c implements a new set of fops that require get_xip_page\n  aop to work proper. all new fops are exported GPL-only (don\u0027t like to\n  see whatever code use those except GPL modules)\n- __xip_unmap now uses page_check_address, which is no longer static\n  in rmap.c, and defined in linux/rmap.h\n- mm/filemap.h is now much more clean, plainly having just Linus\u0027\n  inline funcs moved here from filemap.c\n- fix includes in filemap_xip to make it build cleanly on i386\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "420edbcc09008342c7b2665453f6b370739aadb0",
      "tree": "9eae7b2d378d4e280dcc5c1b6b159e18e5e5dbe0",
      "parents": [
        "3d41088fa327782b14b5659dbcfff62ec704c23c"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Jun 23 22:05:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:41 2005 -0700"
      },
      "message": "[PATCH] xip: bdev: execute in place\n\nThis is the block device related part.  The block device operation\ndirect_access now has a struct block_device as first parameter.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92198f7eaa5df3479341dd8fa20c2c81aa3b1e25",
      "tree": "b2b7f8c73b94b4179d5002eaaa30f683b6dc5132",
      "parents": [
        "16c29b67fb3bbacfc2a71f9e5f7d85728ef45efa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 23 22:00:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:19 2005 -0700"
      },
      "message": "[PATCH] pass iocb to dio_iodone_t\n\nXFS will have to look at iocb-\u003eprivate to fix aio+dio.  No other filesystem\nis using the blockdev_direct_IO* end_io callback.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "45778ca819accab1a4a3378b3566cab0f189164f",
      "tree": "9214491346c8d2d91eb1a11cb6c2e6a9387e4290",
      "parents": [
        "280dedb8d64ccfe1166ae03d3b254fc3b65de6a5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@graphe.net",
        "time": "Thu Jun 23 00:10:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:33 2005 -0700"
      },
      "message": "[PATCH] Remove f_error field from struct file\n\nThe following patch removes the f_error field and all checks of f_error.\n\nTrond said:\n\n  f_error was introduced for NFS, and made sense when we were guaranteed\n  always to have a file pointer around when write errors occurred.  Since\n  then, we have (for various reasons) had to introduce the nfs_open_context in\n  order to track the file read/write state, and it made sense to move our\n  f_error tracking there too.\n\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bb93e3a52f8db7210258a1a2134cced0b78a46e1",
      "tree": "b6def4c3fe5624769de64e242bb2007fffea55c8",
      "parents": [
        "0d77e5a2c23da734f5a7925f64afa1c2ed92e0f9"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jun 23 00:10:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:32 2005 -0700"
      },
      "message": "[PATCH] block: add unlocked_ioctl support for block devices\n\nThis patch allows block device drivers to convert their ioctl functions to\nunlocked_ioctl() like character devices and other subsystems.  All\nfunctions that were called with the BKL held before are still used that\nway, but I would not be surprised if it could be removed from the ioctl\nfunctions in drivers/block/ioctl.c themselves.\n\nAs a side note, I found that compat_blkdev_ioctl() acquires the BKL as\nwell, which looks like a bug.  I have checked that every user of\ndisk-\u003efops-\u003ecompat_ioctl() in the current git tree gets the BKL itself, so\nit could easily be removed from compat_blkdev_ioctl().\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "991114c6fa6a21d1fa4d544abe78592352860c82",
      "tree": "cc81f871756a70a3312552409ee5cacd6625aa1d",
      "parents": [
        "f972be33ce6a08b5f096ba013c7459a3a82f5f39"
      ],
      "author": {
        "name": "Alexander Viro",
        "email": "aviro@redhat.com",
        "time": "Thu Jun 23 00:09:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:17 2005 -0700"
      },
      "message": "[PATCH] fix for prune_icache()/forced final iput() races\n\nBased on analysis and a patch from Russ Weight \u003crweight@us.ibm.com\u003e\n\nThere is a race condition that can occur if an inode is allocated and then\nreleased (using iput) during the -\u003efill_super functions.  The race\ncondition is between kswapd and mount.\n\nFor most filesystems this can only happen in an error path when kswapd is\nrunning concurrently.  For isofs, however, the error can occur in a more\ncommon code path (which is how the bug was found).\n\nThe logic here is \"we want final iput() to free inode *now* instead of\nletting it sit in cache if fs is going down or had not quite come up\".  The\nproblem is with kswapd seeing such inodes in the middle of being killed and\nhappily taking over.\n\nThe clean solution would be to tell kswapd to leave those inodes alone and\nlet our final iput deal with them.  I.e.  add a new flag\n(I_FORCED_FREEING), set it before write_inode_now() there and make\nprune_icache() leave those alone.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8d0a8a9d0ec790086c64d210af413ac351d89e35",
      "tree": "003a1481e4a8d8487956a6bf04db80dd93264b8b",
      "parents": [
        "ecdbf769b2cb8903e07cd482334c714d89fd1146"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:32 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:42 2005 -0400"
      },
      "message": "[PATCH] NFSv4: Clean up nfs4 lock state accounting\n\n Ensure that lock owner structures are not released prematurely.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "acaefc25d21f850e47ecc5098d1e0bc442c526be",
      "tree": "fbc7aa605c71667507b54d3b3320f9a999458dd4",
      "parents": [
        "4109aca06cb7b042ea791d0f9d3c9615bc3bf5cd"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed May 18 14:40:59 2005 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:30 2005 -0700"
      },
      "message": "[PATCH] libfs: add simple attribute files\n\nBased on the discussion about spufs attributes, this is my suggestion\nfor a more generic attribute file support that can be used by both\ndebugfs and spufs.\n\nSimple attribute files behave similarly to sequential files from\na kernel programmers perspective in that a standard set of file\noperations is provided and only an open operation needs to\nbe written that registers file specific get() and set() functions.\n\nThese operations are defined as\n\nvoid foo_set(void *data, u64 val); and\nu64 foo_get(void *data);\n\nwhere data is the inode-\u003eu.generic_ip pointer of the file and the\noperations just need to make send of that pointer. The infrastructure\nmakes sure this works correctly with concurrent access and partial\nread calls.\n\nA macro named DEFINE_SIMPLE_ATTRIBUTE is provided to further simplify\nusing the attributes.\n\nThis patch already contains the changes for debugfs to use attributes\nfor its internal file operations.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "2ef41634def0fcb0def3e3c90220c651ca478cb3",
      "tree": "86fb9c439ad5043d38d69588975e84bd8b565619",
      "parents": [
        "91bb52416854dfd581efe6e2a0aca8dc655f043e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu May 05 16:15:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:44 2005 -0700"
      },
      "message": "[PATCH] remove do_sync parameter from __invalidate_device\n\nThe only caller that ever sets it can call fsync_bdev itself easily.  Also\nupdate some comments.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "67be2dd1bace0ec7ce2dbc1bba3f8df3d7be597e",
      "tree": "317d114a0288d3b19ef9902f94b536a5a8731dbd",
      "parents": [
        "6013d5445f9a6d0b28090027868f455c5012d1cc"
      ],
      "author": {
        "name": "Martin Waitz",
        "email": "tali@admingilde.org",
        "time": "Sun May 01 08:59:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:26 2005 -0700"
      },
      "message": "[PATCH] DocBook: fix some descriptions\n\nSome KernelDoc descriptions are updated to match the current code.\nNo code changes.\n\nSigned-off-by: Martin Waitz \u003ctali@admingilde.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4dc3b16ba18c0f967ad100c52fa65b01a4f76ff0",
      "tree": "fa038ad8969980eec6cef5b737872fda9feb4c6a",
      "parents": [
        "333f981720d619e2038b980a55ad01b10580eb9f"
      ],
      "author": {
        "name": "Pavel Pisa",
        "email": "pisa@cmp.felk.cvut.cz",
        "time": "Sun May 01 08:59:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:25 2005 -0700"
      },
      "message": "[PATCH] DocBook: changes and extensions to the kernel documentation\n\nI have recompiled Linux kernel 2.6.11.5 documentation for me and our\nuniversity students again.  The documentation could be extended for more\nsources which are equipped by structured comments for recent 2.6 kernels.  I\nhave tried to proceed with that task.  I have done that more times from 2.6.0\ntime and it gets boring to do same changes again and again.  Linux kernel\ncompiles after changes for i386 and ARM targets.  I have added references to\nsome more files into kernel-api book, I have added some section names as well.\n So please, check that changes do not break something and that categories are\nnot too much skewed.\n\nI have changed kernel-doc to accept \"fastcall\" and \"asmlinkage\" words reserved\nby kernel convention.  Most of the other changes are modifications in the\ncomments to make kernel-doc happy, accept some parameters description and do\nnot bail out on errors.  Changed \u003cpid\u003e to @pid in the description, moved some\n#ifdef before comments to correct function to comments bindings, etc.\n\nYou can see result of the modified documentation build at\n  http://cmp.felk.cvut.cz/~pisa/linux/lkdb-2.6.11.tar.gz\n\nSome more sources are ready to be included into kernel-doc generated\ndocumentation.  Sources has been added into kernel-api for now.  Some more\nsection names added and probably some more chaos introduced as result of quick\ncleanup work.\n\nSigned-off-by: Pavel Pisa \u003cpisa@cmp.felk.cvut.cz\u003e\nSigned-off-by: Martin Waitz \u003ctali@admingilde.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
