)]}'
{
  "log": [
    {
      "commit": "ec05b297f91a443aa26b74059b573bfad49c9ebb",
      "tree": "4890ea53de4373e51688e72576781909588515a3",
      "parents": [
        "ac07860264bd2b18834d3fa3be47032115524cea"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jul 30 08:24:27 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Aug 11 22:34:47 2007 +0200"
      },
      "message": "[PATCH] remove mm/filemap.c:file_send_actor()\n\nThis patch removes the no longer used file_send_actor().\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0af1a4504699524c876361845bc2e301ecc45d0f",
      "tree": "72c6d1ac9d7dfb44d25c58eea599c2df63aa2562",
      "parents": [
        "86d0004abc87025bae1cca43c94e99a27b7bbbd6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jul 31 00:39:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:43 2007 -0700"
      },
      "message": "rename setlease to generic_setlease\n\nMake it a little more clear that this is the default implementation for\nthe setleast operation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nAcked-by: \"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": "f9acc8c7b35a100f3a9e0e6977f7807b0169f9a5",
      "tree": "6a4dcd227bb698a217a1d42d37e3f0135a444ea4",
      "parents": [
        "cf914a7d656e62b9dd3e0dffe4f62b953ae6048d"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:48:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: sanify file_ra_state names\n\nRename some file_ra_state variables and remove some accessors.\n\nIt results in much simpler code.\nKudos to Rusty!\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c743d96b6d2ff55a94df7b5ac7c74987bb9c343b",
      "tree": "391e5dad21e62590e343c63e5ba05322d0fc76ad",
      "parents": [
        "dc7868fcb9a73990e6f30371c1be465c436a7a7f"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:48:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: remove the old algorithm\n\nRemove the old readahead algorithm.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ce1110b92b31d079aa443e967f43a2294e01194",
      "tree": "eff95b4c8ede07d0777ca68a30d686d1acbb5c73",
      "parents": [
        "f615bfca468c9b80ed2d09be5fdbaf470a32c045"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:47:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: data structure and routines\n\nExtend struct file_ra_state to support the on-demand readahead logic.  Also\ndefine some helpers for it.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e53252d97e670a38b1d2e9723b48077bba11ddda",
      "tree": "a9909f22d7f0424214e2576912c0a3300dde3df0",
      "parents": [
        "68fc4fabca897a09f75f53bac14cdc7a98f52210"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu Jul 19 01:47:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "unregister_chrdev() return void\n\nunregister_chrdev() does not return meaningful value.  This patch makes it\nreturn void like most unregister_* functions.\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": "a8dcf12f9e8ba113251c04d602f1695d537fb142",
      "tree": "1b36a19e34a8471e847bfea88dc66ee6683b7b07",
      "parents": [
        "d796e641a3eea2109381d6b0af533454f44916fa",
        "6924c55492c904695f13c552c461c2211f4fdd6a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:27:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:27:00 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-linus\u0027 of git://linux-nfs.org/~bfields/linux:\n  locks: fix vfs_test_lock() comment\n  locks: make posix_test_lock() interface more consistent\n  nfs: disable leases over NFS\n  gfs2: stop giving out non-cluster-coherent leases\n  locks: export setlease to filesystems\n  locks: provide a file lease method enabling cluster-coherent leases\n  locks: rename lease functions to reflect locks.c conventions\n  locks: share more common lease code\n  locks: clean up lease_alloc()\n  locks: convert an -EINVAL return to a BUG\n  leases: minor break_lease() comment clarification\n"
    },
    {
      "commit": "6d34ac199a4af5c678a3a8f3275aeb2586b72da3",
      "tree": "4ab6cffcfe993baa0afb2ab361a8c94ebfc3a444",
      "parents": [
        "370f6599e8bc03fd9fc6d1a1be00ae0c6373ca59"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 11 16:09:32 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:17:19 2007 -0400"
      },
      "message": "locks: make posix_test_lock() interface more consistent\n\nSince posix_test_lock(), like fcntl() and -\u003elock(), indicates absence or\npresence of a conflict lock by setting fl_type to, respectively, F_UNLCK\nor something other than F_UNLCK, the return value is no longer needed.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4698afe8e3a725576366f86560a8a8242b21b9f7",
      "tree": "dfa312e0a6bce21a6f502b8b9cf0844281d094a2",
      "parents": [
        "f9ffed26d6f3e6ac9988947242821579d615fda7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 04 17:21:37 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:17:06 2007 -0400"
      },
      "message": "locks: export setlease to filesystems\n\nExport setlease so it can used by filesystems to implement their lease\nmethods.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f9ffed26d6f3e6ac9988947242821579d615fda7",
      "tree": "f7dc037b9b1a90511751532be5ebc47c820ed407",
      "parents": [
        "a9933cea7a1d80dd9efae9f1acd857f5dce742b9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Nov 14 15:51:40 2006 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:14:47 2007 -0400"
      },
      "message": "locks: provide a file lease method enabling cluster-coherent leases\n\nCurrently leases are only kept locally, so there\u0027s no way for a distributed\nfilesystem to enforce them against multiple clients.  We\u0027re particularly\ninterested in the case of nfsd exporting a cluster filesystem, in which\ncase nfsd needs cluster-coherent leases in order to implement delegations\ncorrectly.\n\nAlso add some documentation.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a9933cea7a1d80dd9efae9f1acd857f5dce742b9",
      "tree": "d931351589579ce141110350de9ff11154328399",
      "parents": [
        "6d5e8b05caf074ae5676ad9aaf92e381226a14a7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jun 07 17:09:49 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:14:12 2007 -0400"
      },
      "message": "locks: rename lease functions to reflect locks.c conventions\n\nWe\u0027ve been using the convention that vfs_foo is the function that calls\na filesystem-specific foo method if it exists, or falls back on a\ngeneric method if it doesn\u0027t; thus vfs_foo is what is called when some\nother part of the kernel (normally lockd or nfsd) wants to get a lock,\nwhereas foo is what filesystems call to use the underlying local\nfunctionality as part of their lock implementation.\n\nSo rename setlease to vfs_setlease (which will call a\nfilesystem-specific setlease after a later patch) and __setlease to\nsetlease.\n\nAlso, vfs_setlease need only be GPL-exported as long as it\u0027s only needed\nby lockd and nfsd.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "97ac73506c0ba93f30239bb57b4cfc5d73e68a62",
      "tree": "4d02848d6c792a70b413deadcaffd7bf8c8d61de",
      "parents": [
        "cb32da0416b823b7f4b65e7e85d6cba16ca4d1e1"
      ],
      "author": {
        "name": "Amit Arora",
        "email": "aarora@in.ibm.com",
        "time": "Tue Jul 17 21:42:44 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 17 21:42:44 2007 -0400"
      },
      "message": "sys_fallocate() implementation on i386, x86_64 and powerpc\n\nfallocate() is a new system call being proposed here which will allow\napplications to preallocate space to any file(s) in a file system.\nEach file system implementation that wants to use this feature will need\nto support an inode operation called -\u003efallocate().\nApplications can use this feature to avoid fragmentation to certain\nlevel and thus get faster access speed. With preallocation, applications\nalso get a guarantee of space for particular file(s) - even if later the\nthe system becomes full.\n\nCurrently, glibc provides an interface called posix_fallocate() which\ncan be used for similar cause. Though this has the advantage of working\non all file systems, but it is quite slow (since it writes zeroes to\neach block that has to be preallocated). Without a doubt, file systems\ncan do this more efficiently within the kernel, by implementing\nthe proposed fallocate() system call. It is expected that\nposix_fallocate() will be modified to call this new system call first\nand incase the kernel/filesystem does not implement it, it should fall\nback to the current implementation of writing zeroes to the new blocks.\nToDos:\n1. Implementation on other architectures (other than i386, x86_64,\n   and ppc). Patches for s390(x) and ia64 are already available from\n   previous posts, but it was decided that they should be added later\n   once fallocate is in the mainline. Hence not including those patches\n   in this take.\n2. Changes to glibc,\n   a) to support fallocate() system call\n   b) to make posix_fallocate() and posix_fallocate64() call fallocate()\n\nSigned-off-by: Amit Arora \u003caarora@in.ibm.com\u003e\n"
    },
    {
      "commit": "3bd858ab1c451725c07a805dcb315215dc85b86e",
      "tree": "5d49c4300e350d64fd81eb3230b81f754117e0c1",
      "parents": [
        "49c13b51a15f1ba9f6d47e26e4a3886c4f3931e2"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "ssatyam@cse.iitk.ac.in",
        "time": "Tue Jul 17 15:00:08 2007 +0530"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 12:00:03 2007 -0700"
      },
      "message": "Introduce is_owner_or_cap() to wrap CAP_FOWNER use with fsuid check\n\nIntroduce is_owner_or_cap() macro in fs.h, and convert over relevant\nusers to it. This is done because we want to avoid bugs in the future\nwhere we check for only effective fsuid of the current task against a\nfile\u0027s owning uid, without simultaneously checking for CAP_FOWNER as\nwell, thus violating its semantics.\n[ XFS uses special macros and structures, and in general looked ...\nuntouchable, so we leave it alone -- but it has been looked over. ]\n\nThe (current-\u003efsuid !\u003d inode-\u003ei_uid) check in generic_permission() and\nexec_permission_lite() is left alone, because those operations are\ncovered by CAP_DAC_OVERRIDE and CAP_DAC_READ_SEARCH. Similarly operations\nfalling under the purview of CAP_CHOWN and CAP_LEASE are also left alone.\n\nSigned-off-by: Satyam Sharma \u003cssatyam@cse.iitk.ac.in\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a569425512253992cc64ebf8b6d00a62f986db3e",
      "tree": "7ea72c75c54697bddbad807af89cc549d7426a69",
      "parents": [
        "6dd4ac3b30b81b5bd0d628af1c89b7da689a38ea"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Jul 17 04:04:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:06 2007 -0700"
      },
      "message": "knfsd: exportfs: add exportfs.h header\n\ncurrently the export_operation structure and helpers related to it are in\nfs.h.  fs.h is already far too large and there are very few places needing the\nexport bits, so split them off into a separate header.\n\n[akpm@linux-foundation.org: fix cifs build]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: Steven French \u003csfrench@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": "f4480240f700587c15507b7815e75989b16825b2",
      "tree": "96eac4ec200cf49cb1cbbdf185befca34d83b629",
      "parents": [
        "c6d4d63489f2e3ce38c80e7073952f0c58d4c2bc"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Jul 17 04:03:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:03 2007 -0700"
      },
      "message": "unregister_blkdev(): return void\n\nPut WARN_ON and fixed all callers of unregister_blkdev().  Now we can make\nunregister_blkdev return void.\n\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\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": "62239ac2b301abc397e70986649666cfb7835907",
      "tree": "296ddcc9a0aa9ce847b9eab3eb3af29e8c148f13",
      "parents": [
        "f284ce7269031947326bac6bb19a977705276222"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Jul 17 04:03:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:03 2007 -0700"
      },
      "message": "proper prototype for proc_nr_files()\n\nAdd a proper prototype for proc_nr_files() in include/linux/fs.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e7bf24b1b979db256ddc84d0d4ac6040d706da6",
      "tree": "edb5aed9b2f8c2001d8dd11de1e505b87893965d",
      "parents": [
        "e84845c4bf9a00533352e5805b35f42acdb04a1e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jul 15 23:40:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:45 2007 -0700"
      },
      "message": "fs: clarify \"dummy\" member in struct inodes_stat_t\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nAcked-by: 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": "e8d6c554126b830217c5e9f549e0e21f865a0a8a",
      "tree": "c43219c6ef4e6a9b4f0ac46d6bd8b675dc249a8b",
      "parents": [
        "b0fed3140f57c435d2783b698c5090f325c22bad"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sun Jul 15 23:40:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:43 2007 -0700"
      },
      "message": "AFS: implement file locking\n\nImplement file locking for AFS.\n\nSigned-off-by: David Howells \u003cdhowells@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": "fc9a07e7bf1a76e710f5df017abb07628db1781d",
      "tree": "bf2a288f97cbf9cfd82a4306a7d9c615abc7c887",
      "parents": [
        "45426812d6b601430d560cb6049757b5b0bc71c4"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Sun Jul 15 23:38:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:36 2007 -0700"
      },
      "message": "invalidate_mapping_pages(): add cond_resched\n\ninvalidate_mapping_pages() can sometimes take a long time (millions of pages\nto free).  Long enough for the softlockup detector to trigger.\n\nWe used to have a cond_resched() in there but I took it out because the\ndrop_caches code calls invalidate_mapping_pages() under inode_lock.\n\nThe patch adds a nasty flag and puts the cond_resched() back.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d96e6e71647846e0dab097efd9b8bf3a3a556dca",
      "tree": "b6d88df83dae5ab470ad51af77b42a5c22a93dc9",
      "parents": [
        "d054fe3d10cc1f9aec01378c38caa32dffdd0090"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jun 11 12:18:52 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 10 08:04:15 2007 +0200"
      },
      "message": "Remove remnants of sendfile()\n\nThere are now zero users of .sendfile() in the kernel, so kill\nit from the file_operations structure and in do_sendfile().\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d054fe3d10cc1f9aec01378c38caa32dffdd0090",
      "tree": "3c54ddbac87b25eb44526cf2ad4303f21dbe3cdd",
      "parents": [
        "932cc6d4f7c35bbf70bce8cc865b6033ff49c9c0"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Fri Jun 15 08:16:22 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 10 08:04:15 2007 +0200"
      },
      "message": "xip sendfile removal\n\nThis patch removes xip_file_sendfile, the sendfile implementation for\nxip without replacement. Those customers that use xip on s390 are not\nusing sendfile() as far as we know, and so far s390 is the only platform\nthis could potentially be used on so far.\nHaving sendfile is not a popular feature for execute in place file\nsystems, however we have a working implementation of splice_read() based\non fs/splice.c if anyone asks for it.\nAt this point in time, it does not seem preferable to merge\nsplice_read() for xip because it causes extra maintenence effort due to\ncode duplication and it requires struct page behind the xip memory\nsegment. We\u0027d like to get rid of that in favor of supporting flash based\nembedded platforms (Monta Vista work) soon.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0452a4e5d021900b07ebdeecb9ed03b49f164f3f",
      "tree": "c03b50882723102bf51fade26f6a24d9dd0a182e",
      "parents": [
        "5ffc4ef45b3b0a57872f631b4e4ceb8ace0d7496"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 01 11:55:49 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 10 08:04:14 2007 +0200"
      },
      "message": "sendfile: kill generic_file_sendfile()\n\nIt\u0027s no longer used.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "71c42157904404a37f89fff3b2536c55115823a5",
      "tree": "477793f825fa8777640ad4e9b705ccb98b83d18d",
      "parents": [
        "0faa45480261a52323fe88bfab6aea1e8eb87b65"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Jun 23 17:16:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jun 24 08:59:11 2007 -0700"
      },
      "message": "document nlink function\n\nThese should have been documented from the beginning.  Fix it.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec4883b015c3212f6f6d04fb2ff45f528492f598",
      "tree": "0e393eb198a35a90adafcd8129564d0173aafad4",
      "parents": [
        "464cf177df7727efcc5506322fc5d0c8b896f545",
        "0477d24e2a87a9077b62298b01b031929f5cf2a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jun 04 17:54:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jun 04 17:54:09 2007 -0700"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6:\n  [JFFS2] Fix obsoletion of metadata nodes in jffs2_add_tn_to_tree()\n  [MTD] Fix error checking after get_mtd_device() in get_sb_mtd functions\n  [JFFS2] Fix buffer length calculations in jffs2_get_inode_nodes()\n  [JFFS2] Fix potential memory leak of dead xattrs on unmount.\n  [JFFS2] Fix BUG() caused by failing to discard xattrs on deleted files.\n  [MTD] generalise the handling of MTD-specific superblocks\n  [MTD] [MAPS] don\u0027t force uclinux mtd map to be root dev\n"
    },
    {
      "commit": "acaebfd8a7af0019b2edfcf4045c56c3e18375c5",
      "tree": "312d91a96fbc6ed3672220e2c4087a196e5ab6cf",
      "parents": [
        "33672f72b24191fb17c3666ec1c620f3fa617b50"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu May 10 22:51:50 2007 -0700"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Fri May 11 12:14:15 2007 +0100"
      },
      "message": "[MTD] generalise the handling of MTD-specific superblocks\n\nGeneralise the handling of MTD-specific superblocks so that JFFS2 and ROMFS\ncan both share it.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "ef51c97623b94f51e439ac91d2736aab3d1b6594",
      "tree": "5c020421f1e5a6e28b5a9f341fec32479a8ffb3a",
      "parents": [
        "524e6752912a891a396a9cf74c5d7d60fff5510a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue May 08 00:27:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:04 2007 -0700"
      },
      "message": "Remove do_sync_file_range()\n\nRemove do_sync_file_range() and convert callers to just use\ndo_sync_mapping_range().\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79c0b2df79eb56fc71e54c75cd7fb3acf84370f9",
      "tree": "f19be816fef3565b7f9cc746786e29fee0ac62e6",
      "parents": [
        "880afc4d76af452267174b5989943f081c1db2c0"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue May 08 00:25:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:01 2007 -0700"
      },
      "message": "add filesystem subtype support\n\nThere\u0027s a slight problem with filesystem type representation in fuse\nbased filesystems.\n\nFrom the kernel\u0027s view, there are just two filesystem types: fuse and\nfuseblk.  From the user\u0027s view there are lots of different filesystem\ntypes.  The user is not even much concerned if the filesystem is fuse based\nor not.  So there\u0027s a conflict of interest in how this should be\nrepresented in fstab, mtab and /proc/mounts.\n\nThe current scheme is to encode the real filesystem type in the mount\nsource.  So an sshfs mount looks like this:\n\n  sshfs#user@server:/   /mnt/server    fuse   rw,nosuid,nodev,...\n\nThis url-ish syntax works OK for sshfs and similar filesystems.  However\nfor block device based filesystems (ntfs-3g, zfs) it doesn\u0027t work, since\nthe kernel expects the mount source to be a real device name.\n\nA possibly better scheme would be to encode the real type in the type\nfield as \"type.subtype\".  So fuse mounts would look like this:\n\n  /dev/hda1       /mnt/windows   fuseblk.ntfs-3g   rw,...\n  user@server:/   /mnt/server    fuse.sshfs        rw,nosuid,nodev,...\n\nThis patch adds the necessary code to the kernel so that this can be\ncorrectly displayed in /proc/mounts.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@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": "1ae7075bcd805c3aa5e8f53effc63a4562d6110e",
      "tree": "76ce9da136deee264b1642169522981b5175af82",
      "parents": [
        "7b8e89249ba54fb6e12358bbed7e3070fa1d1e6a"
      ],
      "author": {
        "name": "Chris Snook",
        "email": "csnook@redhat.com",
        "time": "Tue May 08 00:24:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:59 2007 -0700"
      },
      "message": "use use SEEK_MAX to validate user lseek arguments\n\nAdd SEEK_MAX and use it to validate lseek arguments from userspace.\n\nSigned-off-by: Chris Snook \u003ccsnook@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@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": "0ceb331433e8aad9c5f441a965d7c681f8b9046f",
      "tree": "fd3d679a4015242dd65f0721f52242ad47619910",
      "parents": [
        "b46b8f19c9cd435ecac4d9d12b39d78c137ecd66"
      ],
      "author": {
        "name": "Dmitriy Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue May 08 00:23:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:57 2007 -0700"
      },
      "message": "mm: move common segment checks to separate helper function\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Monakhov Dmitriy \u003cdmonakhov@openvz.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Anton Altaparmakov \u003caia21@cam.ac.uk\u003e\nAcked-by: David Chinner \u003cdgc@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d56d3c43cc97ae48586745556f5a5b564d61582",
      "tree": "28f2edc1e69b79e94d99023041dd0358861b6956",
      "parents": [
        "0f9008ef38d5a6305d94bbdd8f20d68fc75c63b6",
        "586759f03e2e9031ac5589912a51a909ed53c30a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:34:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:34:24 2007 -0700"
      },
      "message": "Merge branch \u0027server-cluster-locking-api\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027server-cluster-locking-api\u0027 of git://linux-nfs.org/~bfields/linux:\n  gfs2: nfs lock support for gfs2\n  lockd: add code to handle deferred lock requests\n  lockd: always preallocate block in nlmsvc_lock()\n  lockd: handle test_lock deferrals\n  lockd: pass cookie in nlmsvc_testlock\n  lockd: handle fl_grant callbacks\n  lockd: save lock state on deferral\n  locks: add fl_grant callback for asynchronous lock return\n  nfsd4: Convert NFSv4 to new lock interface\n  locks: add lock cancel command\n  locks: allow {vfs,posix}_lock_file to return conflicting lock\n  locks: factor out generic/filesystem switch from setlock code\n  locks: factor out generic/filesystem switch from test_lock\n  locks: give posix_test_lock same interface as -\u003elock\n  locks: make -\u003elock release private data before returning in GETLK case\n  locks: create posix-to-flock helper functions\n  locks: trivial removal of unnecessary parentheses\n"
    },
    {
      "commit": "6ce745ed39d35f9d547d00d406db2be7c6c175b3",
      "tree": "16f471389c9f619c37891fdb6e1843e1f2721c78",
      "parents": [
        "ec0f16372277052a29a6c17527c6cae5e898b3fd"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun May 06 14:49:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:52 2007 -0700"
      },
      "message": "readahead: code cleanup\n\nRename file_ra_state.prev_page to prev_index and file_ra_state.offset to\nprev_offset.  Also update of prev_index in do_generic_mapping_read() is now\nmoved close to the update of prev_offset.\n\n[wfg@mail.ustc.edu.cn: fix it]\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: WU Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec0f16372277052a29a6c17527c6cae5e898b3fd",
      "tree": "35636edac6ed01baf301f3aca96f090caae82c9d",
      "parents": [
        "b813e931b4c8235bb42e301096ea97dbdee3e8fe"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun May 06 14:49:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:52 2007 -0700"
      },
      "message": "readahead: improve heuristic detecting sequential reads\n\nIntroduce ra.offset and store in it an offset where the previous read\nended.  This way we can detect whether reads are really sequential (and\nthus we should not mark the page as accessed repeatedly) or whether they\nare random and just happen to be in the same page (and the page should\nreally be marked accessed again).\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: WU Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2beb6614f5e36c6165b704c167d82ef3e4ceaa0c",
      "tree": "7c5c1277f139c754d7b73a1822016574de655bd6",
      "parents": [
        "fd85b8170dabbf021987875ef7f903791f4f181e"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Tue Dec 05 23:31:28 2006 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 20:38:49 2007 -0400"
      },
      "message": "locks: add fl_grant callback for asynchronous lock return\n\nAcquiring a lock on a cluster filesystem may require communication with\nremote hosts, and to avoid blocking lockd or nfsd threads during such\ncommunication, we allow the results to be returned asynchronously.\n\nWhen a -\u003elock() call needs to block, the file system will return\n-EINPROGRESS, and then later return the results with a call to the\nroutine in the fl_grant field of the lock_manager_operations struct.\n\nThis differs from the case when -\u003elock returns -EAGAIN to a blocking\nlock request; in that case, the filesystem calls fl_notify when the lock\nis granted, and the caller retries the original lock.  So while\nfl_notify is merely a hint to the caller that it should retry, fl_grant\nactually communicates the final result of the lock operation (with the\nlock already acquired in the succesful case).\n\nTherefore fl_grant takes a lock, a status and, for the test lock case, a\nconflicting lock.  We also allow fl_grant to return an error to the\nfilesystem, to handle the case where the fl_grant requests arrives after\nthe lock manager has already given up waiting for it.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9b9d2ab4154a42ea4a119f7d3e4e0288bfe0bb79",
      "tree": "62af6b2eff0885c26aa2af4b01890cc02cf0b2f0",
      "parents": [
        "150b393456e5a23513cace286a019e87151e47f0"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Thu Jan 18 17:52:58 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 20:38:28 2007 -0400"
      },
      "message": "locks: add lock cancel command\n\nLock managers need to be able to cancel pending lock requests.  In the case\nwhere the exported filesystem manages its own locks, it\u0027s not sufficient just\nto call posix_unblock_lock(); we need to let the filesystem know what\u0027s\nhappening too.\n\nWe do this by adding a new fcntl lock command: FL_CANCELLK.  Some day this\nmight also be made available to userspace applications that could benefit from\nan asynchronous locking api.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "150b393456e5a23513cace286a019e87151e47f0",
      "tree": "91599ec9b759f7e3c5defcb8dd361acd7288154c",
      "parents": [
        "7723ec9777d9832849b76475b1a21a2872a40d20"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Thu Jan 18 16:15:35 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 19:23:24 2007 -0400"
      },
      "message": "locks: allow {vfs,posix}_lock_file to return conflicting lock\n\nThe nfsv4 protocol\u0027s lock operation, in the case of a conflict, returns\ninformation about the conflicting lock.\n\nIt\u0027s unclear how clients can use this, so for now we\u0027re not going so far as to\nadd a filesystem method that can return a conflicting lock, but we may as well\nreturn something in the local case when it\u0027s easy to.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7723ec9777d9832849b76475b1a21a2872a40d20",
      "tree": "af712e690d1de0a2e693830f6e056455c1725a92",
      "parents": [
        "3ee17abd14c728d4e0ca7a991c58f2250cb091af"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Thu Jan 18 15:08:55 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 18:08:49 2007 -0400"
      },
      "message": "locks: factor out generic/filesystem switch from setlock code\n\nFactor out the code that switches between generic and filesystem-specific lock\nmethods; eventually we want to call this from lock managers (lockd and nfsd)\ntoo; currently they only call the generic methods.\n\nThis patch does that for all the setlk code.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3ee17abd14c728d4e0ca7a991c58f2250cb091af",
      "tree": "6f49a9893dc656fac4d5a334946ccbf4e911891f",
      "parents": [
        "9d6a8c5c213e34c475e72b245a8eb709258e968c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Feb 21 00:58:50 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 18:06:44 2007 -0400"
      },
      "message": "locks: factor out generic/filesystem switch from test_lock\n\nFactor out the code that switches between generic and filesystem-specific lock\nmethods; eventually we want to call this from lock managers (lockd and nfsd)\ntoo; currently they only call the generic methods.\n\nThis patch does that for test_lock.\n\nNote that this hasn\u0027t been necessary until recently, because the few\nfilesystems that define -\u003elock() (nfs, cifs...) aren\u0027t exportable via NFS.\nHowever GFS (and, in the future, other cluster filesystems) need to implement\ntheir own locking to get cluster-coherent locking, and also want to be able to\nexport locking to NFS (lockd and NFSv4).\n\nSo we accomplish this by factoring out code such as this and exporting it for\nthe use of lockd and nfsd.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9d6a8c5c213e34c475e72b245a8eb709258e968c",
      "tree": "96110535c2bd9485129c0753a9e0f012083b220f",
      "parents": [
        "70cc6487a4e08b8698c0e2ec935fb48d10490162"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Wed Feb 21 00:55:18 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 17:39:00 2007 -0400"
      },
      "message": "locks: give posix_test_lock same interface as -\u003elock\n\nposix_test_lock() and -\u003elock() do the same job but have gratuitously\ndifferent interfaces.  Modify posix_test_lock() so the two agree,\nsimplifying some code in the process.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "823bccfc4002296ba88c3ad0f049e1abd8108d30",
      "tree": "5338ae0b32409446af4cd00c5107d9405d5bf0b6",
      "parents": [
        "2609e7b9bebfd433254c02538ba803dc516ff674"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 13 13:15:19 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 02 18:57:59 2007 -0700"
      },
      "message": "remove \"struct subsystem\" as it is no longer needed\n\nWe need to work on cleaning up the relationship between kobjects, ksets and\nktypes.  The removal of \u0027struct subsystem\u0027 is the first step of this,\nespecially as it is not really needed at all.\n\nThanks to Kay for fixing the bugs in this patch.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "5b04aa3a64f854244bc40a6f528176ed50b5c4f6",
      "tree": "2bdee522ce482f06a9f3adc8e66e4ff23be06860",
      "parents": [
        "60b11392f1a09433740bda3048202213daa27736"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Mar 01 11:01:55 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 15:02:26 2007 -0700"
      },
      "message": "[PATCH] Turn do_sync_file_range() into do_sync_mapping_range()\n\ndo_sync_file_range() accepts a file * from which it takes an address_space to\nsync.  Abstract out the bulk of the function into do_sync_mapping_range()\nwhich takes the address_space directly.  This way callers who want to sync an\naddress_space directly can take advantage of the functionality provided.\n\ndo_sync_file_range() is preserved as a small wrapper around\ndo_sync_mapping_range().\n\nOcfs2 in particular would like to use this to initiate a sync of a specific\ninode range during truncate, where a file * may not be available.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee9b6d61a2a43c5952eb43283f8db284a4e70b8a",
      "tree": "afb0340e79d3e9d14f39df20e165ce2efe941b18",
      "parents": [
        "c5ef1c42c51b1b5b4a401a6517bdda30933ddbaf"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Mon Feb 12 00:55:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:47 2007 -0800"
      },
      "message": "[PATCH] Mark struct super_operations const\n\nThis patch is inspired by Arjan\u0027s \"Patch series to mark struct\nfile_operations and struct inode_operations const\".\n\nCompile tested with gcc \u0026 sparse.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c5ef1c42c51b1b5b4a401a6517bdda30933ddbaf",
      "tree": "e1a9804a8af427f700aaba4b386cf8679b317e83",
      "parents": [
        "92e1d5be91a0e3ffa5c4697eeb09b2aa22792122"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:40 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:46 2007 -0800"
      },
      "message": "[PATCH] mark struct inode_operations const 3\n\nMany struct inode_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb58b7316a99703afb8d076b0e5f3e1e387e4b30",
      "tree": "d2aabf3413fc3e94a6760c364caf0762915a6273",
      "parents": [
        "ea6f3281a145d16ed53e88b0627f78d5cde6068f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Feb 12 00:51:57 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:28 2007 -0800"
      },
      "message": "[PATCH] move remove_dquot_ref to dqout.c\n\nRemove_dquot_ref can move to dqout.c instead of beeing in inode.c under\n#ifdef CONFIG_QUOTA.  Also clean the resulting code up a tiny little bit by\ntesting sb-\u003edq_op earlier - it\u0027s constant over a filesystems lifetime.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc0ecff698165ae8e178efa086e0dd1f385206b1",
      "tree": "fc6274f0862bdd6749172201170b2f6a7ce4c4ff",
      "parents": [
        "54bc485522afdac33de5504da2ea8cdcc690674e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Feb 10 01:45:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:31 2007 -0800"
      },
      "message": "[PATCH] remove invalidate_inode_pages()\n\nConvert all calls to invalidate_inode_pages() into open-coded calls to\ninvalidate_mapping_pages().\n\nLeave the invalidate_inode_pages() wrapper in place for now, marked as\ndeprecated.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54bc485522afdac33de5504da2ea8cdcc690674e",
      "tree": "9f979e7ff693eefaa1c7326c1a2422a699809a77",
      "parents": [
        "5449bc94152a6c4700f46786be600141234d8f0f"
      ],
      "author": {
        "name": "Anton Altaparmakov",
        "email": "aia21@cam.ac.uk",
        "time": "Sat Feb 10 01:45:38 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:30 2007 -0800"
      },
      "message": "[PATCH] Export invalidate_mapping_pages() to modules\n\nIt makes no sense to me to export invalidate_inode_pages() and not\ninvalidate_mapping_pages() and I actually need invalidate_mapping_pages()\nbecause of its range specification ability...\n\nakpm: also remove the export of invalidate_inode_pages() by making it an\ninlined wrapper.\n\nSigned-off-by: Anton Altaparmakov \u003caia21@cantab.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37756ced1f145aec18917812c3b8a96dbb47990d",
      "tree": "a293813e3dce24a161c2cf029c4139086a23d978",
      "parents": [
        "4ba4d4c0c52201009232fe9e781a281054a24e75"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sat Feb 10 01:44:49 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:25 2007 -0800"
      },
      "message": "[PATCH] avoid one conditional branch in touch_atime()\n\nI added IS_NOATIME(inode) macro definition in include/linux/fs.h, true if\nthe inode superblock is marked readonly or noatime.\n\nThis new macro is then used in touch_atime() instead of separatly testing\nMS_RDONLY and MS_NOATIME\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f73ca1b76c6880b934d3ef566c1592efc80bb759",
      "tree": "c9384ef5ff0ba68817858afdcc330e8707b11ec9",
      "parents": [
        "88bf7b391dca840f03fe25e4ff8fe6b4319fa07b"
      ],
      "author": {
        "name": "David Chinner",
        "email": "dgc@sgi.com",
        "time": "Wed Jan 10 23:15:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Jan 11 18:18:21 2007 -0800"
      },
      "message": "[PATCH] Revert bd_mount_mutex back to a semaphore\n\nRevert bd_mount_mutex back to a semaphore so that xfs_freeze -f /mnt/newtest;\nxfs_freeze -u /mnt/newtest works safely and doesn\u0027t produce lockdep warnings.\n\n(XFS unlocks the semaphore from a different task, by design.  The mutex\ncode warns about this)\n\nSigned-off-by: Dave Chinner \u003cdgc@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e3db7691e9f3dff3289f64e3d98583e28afe03db",
      "tree": "e05542d8d8bb545545c5b535381a8c1fcb369a03",
      "parents": [
        "07031e14c1127fc7e1a5b98dfcc59f434e025104"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 10 23:15:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Jan 11 18:18:21 2007 -0800"
      },
      "message": "[PATCH] NFS: Fix race in nfs_release_page()\n\n    NFS: Fix race in nfs_release_page()\n\n    invalidate_inode_pages2() may find the dirty bit has been set on a page\n    owing to the fact that the page may still be mapped after it was locked.\n    Only after the call to unmap_mapping_range() are we sure that the page\n    can no longer be dirtied.\n    In order to fix this, NFS has hooked the releasepage() method and tries\n    to write the page out between the call to unmap_mapping_range() and the\n    call to remove_mapping(). This, however leads to deadlocks in the page\n    reclaim code, where the page may be locked without holding a reference\n    to the inode or dentry.\n\n    Fix is to add a new address_space_operation, launder_page(), which will\n    attempt to write out a dirty page without releasing the page lock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n\n    Also, the bare SetPageDirty() can skew all sort of accounting leading to\n    other nasties.\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47ae32d6a54955a041cdc30b06d0bb16e75f68d5",
      "tree": "b28623f98ae536342d35443c6548c373df342e7f",
      "parents": [
        "b227613841d4d211a10c5860acc73e133b613bc0"
      ],
      "author": {
        "name": "Valerie Henson",
        "email": "val_henson@linux.intel.com",
        "time": "Wed Dec 13 00:34:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:50 2006 -0800"
      },
      "message": "[PATCH] relative atime\n\nAdd \"relatime\" (relative atime) support.  Relative atime only updates the\natime if the previous atime is older than the mtime or ctime.  Like\nnoatime, but useful for applications like mutt that need to know when a\nfile has been read since it was last modified.\n\nA corresponding patch against mount(8) is available at\nhttp://userweb.kernel.org/~akpm/mount-relative-atime.txt\n\nSigned-off-by: Valerie Henson \u003cval_henson@linux.intel.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Karel Zak \u003ckzak@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0f7fc9e4d03987fe29f6dd4aa67e4c56eb7ecb05",
      "tree": "51763269e44eb9bf4d0f8c529577489902850cf9",
      "parents": [
        "b65d34fd465f19fbe2f32f2205a9a06ca7c2bdeb"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] VFS: change struct file to use struct path\n\nThis patch changes struct file to use struct path instead of having\nindependent pointers to struct dentry and struct vfsmount, and converts all\nusers of f_{dentry,vfsmnt} in fs/ to use f_path.{dentry,mnt}.\n\nAdditionally, it adds two #define\u0027s to make the transition easier for users of\nthe f_dentry and f_vfsmnt.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2e7b651df113c8a463853e4169951c52c39f9d19",
      "tree": "44749ea9d81931cbe5a753b972f6b9fde92a6496",
      "parents": [
        "32694850a91bd4fedcdd4a46292f870588be81d1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Dec 08 02:36:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:38 2006 -0800"
      },
      "message": "[PATCH] remove the old bd_mutex lockdep annotation\n\nRemove the old complex and crufty bd_mutex annotation.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "12d40e43d251de4fa1f982567fc8b4ee5e858367",
      "tree": "91a562fc73af84efe6e8a388ccd2f907c04fa674",
      "parents": [
        "652d3a3ed7610bb09530127ca297b538fe7d245a"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Wed Dec 06 20:39:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:43 2006 -0800"
      },
      "message": "[PATCH] Save some bytes in struct inode\n\n[acme@newtoy net-2.6.20]$ pahole --cacheline 64 fs/inode.o inode\n/* /pub/scm/linux/kernel/git/acme/net-2.6.20/include/linux/dcache.h:86 */\nstruct inode {\n        struct hlist_node          i_hash;               /*     0     8 */\n        struct list_head           i_list;               /*     8     8 */\n        struct list_head           i_sb_list;            /*    16     8 */\n        struct list_head           i_dentry;             /*    24     8 */\n        long unsigned int          i_ino;                /*    32     4 */\n        atomic_t                   i_count;              /*    36     4 */\n        umode_t                    i_mode;               /*    40     2 */\n\n        /* XXX 2 bytes hole, try to pack */\n\n        unsigned int               i_nlink;              /*    44     4 */\n        uid_t                      i_uid;                /*    48     4 */\n        gid_t                      i_gid;                /*    52     4 */\n        dev_t                      i_rdev;               /*    56     4 */\n        loff_t                     i_size;               /*    60     8 */\n        struct timespec            i_atime;              /*    68     8 */\n        struct timespec            i_mtime;              /*    76     8 */\n        struct timespec            i_ctime;              /*    84     8 */\n        unsigned int               i_blkbits;            /*    92     4 */\n        long unsigned int          i_version;            /*    96     4 */\n        blkcnt_t                   i_blocks;             /*   100     4 */\n        short unsigned int         i_bytes;              /*   104     2 */\n\n        /* XXX 2 bytes hole, try to pack */\n\n        spinlock_t                 i_lock;               /*   108    40 */\n        struct mutex               i_mutex;              /*   148    76 */\n        struct rw_semaphore        i_alloc_sem;          /*   224    64 */\n        struct inode_operations *  i_op;                 /*   288     4 */\n        const struct file_operations  * i_fop;           /*   292     4 */\n        struct super_block *       i_sb;                 /*   296     4 */\n        struct file_lock *         i_flock;              /*   300     4 */\n        struct address_space *     i_mapping;            /*   304     4 */\n        struct address_space       i_data;               /*   308   188 */\n        struct list_head           i_devices;            /*   496     8 */\n        union                      ;                     /*   504     4 */\n        int                        i_cindex;             /*   508     4 */\n        __u32                      i_generation;         /*   512     4 */\n        /* ---------- cacheline 8 boundary ---------- */\n        long unsigned int          i_dnotify_mask;       /*   516     4 */\n        struct dnotify_struct *    i_dnotify;            /*   520     4 */\n        struct list_head           inotify_watches;      /*   524     8 */\n        struct mutex               inotify_mutex;        /*   532    76 */\n        long unsigned int          i_state;              /*   608     4 */\n        long unsigned int          dirtied_when;         /*   612     4 */\n        unsigned int               i_flags;              /*   616     4 */\n        atomic_t                   i_writecount;         /*   620     4 */\n        void *                     i_security;           /*   624     4 */\n        void *                     i_private;            /*   628     4 */\n}; /* size: 632, sum members: 628, holes: 2, sum holes: 4 */\n\n[acme@newtoy net-2.6.20]$\n\nSo just moving i_mode to after i_bytes we save 4 bytes by nuking both holes:\n\n[acme@newtoy net-2.6.20]$ codiff -V /tmp/inode.o.before fs/inode.o\n/pub/scm/linux/kernel/git/acme/net-2.6.20/fs/inode.c:\n  struct inode |   -4\n    i_mode;\n     from: umode_t               /*    40(0)     2(0) */\n     to:   umode_t               /*   102(0)     2(0) */\n 1 struct changed\n[acme@newtoy net-2.6.20]$\n\nI\u0027ve prunned all the other offset changes, only this one is of interest here.\n\nSo now we have:\n\n[acme@newtoy net-2.6.20]$ pahole --cacheline 64 ../OUTPUT/qemu/net-2.6.20/fs/inode.o inode\n/* /pub/scm/linux/kernel/git/acme/net-2.6.20/include/linux/dcache.h:86 */\nstruct inode {\n        struct hlist_node          i_hash;               /*     0     8 */\n        struct list_head           i_list;               /*     8     8 */\n        struct list_head           i_sb_list;            /*    16     8 */\n        struct list_head           i_dentry;             /*    24     8 */\n        long unsigned int          i_ino;                /*    32     4 */\n        atomic_t                   i_count;              /*    36     4 */\n        unsigned int               i_nlink;              /*    40     4 */\n        uid_t                      i_uid;                /*    44     4 */\n        gid_t                      i_gid;                /*    48     4 */\n        dev_t                      i_rdev;               /*    52     4 */\n        loff_t                     i_size;               /*    56     8 */\n        /* ---------- cacheline 1 boundary ---------- */\n        struct timespec            i_atime;              /*    64     8 */\n        struct timespec            i_mtime;              /*    72     8 */\n        struct timespec            i_ctime;              /*    80     8 */\n        unsigned int               i_blkbits;            /*    88     4 */\n        long unsigned int          i_version;            /*    92     4 */\n        blkcnt_t                   i_blocks;             /*    96     4 */\n        short unsigned int         i_bytes;              /*   100     2 */\n        umode_t                    i_mode;               /*   102     2 */\n        spinlock_t                 i_lock;               /*   104    40 */\n        struct mutex               i_mutex;              /*   144    76 */\n        struct rw_semaphore        i_alloc_sem;          /*   220    64 */\n        struct inode_operations *  i_op;                 /*   284     4 */\n        const struct file_operations  * i_fop;           /*   288     4 */\n        struct super_block *       i_sb;                 /*   292     4 */\n        struct file_lock *         i_flock;              /*   296     4 */\n        struct address_space *     i_mapping;            /*   300     4 */\n        struct address_space       i_data;               /*   304   188 */\n        struct list_head           i_devices;            /*   492     8 */\n        union                      ;                     /*   500     4 */\n        int                        i_cindex;             /*   504     4 */\n        __u32                      i_generation;         /*   508     4 */\n        /* ---------- cacheline 8 boundary ---------- */\n        long unsigned int          i_dnotify_mask;       /*   512     4 */\n        struct dnotify_struct *    i_dnotify;            /*   516     4 */\n        struct list_head           inotify_watches;      /*   520     8 */\n        struct mutex               inotify_mutex;        /*   528    76 */\n        long unsigned int          i_state;              /*   604     4 */\n        long unsigned int          dirtied_when;         /*   608     4 */\n        unsigned int               i_flags;              /*   612     4 */\n        atomic_t                   i_writecount;         /*   616     4 */\n        void *                     i_security;           /*   620     4 */\n        void *                     i_private;            /*   624     4 */\n}; /* size: 628 */\n\n[acme@newtoy net-2.6.20]$\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "83b7b44e1c1e9e493ccd4146558481ab5af0116a",
      "tree": "8da0b4d9601d27073b14964fd43f64bb73540e22",
      "parents": [
        "ea82c74093f48b28e632d03eeff22faf99727a8c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Dec 06 20:38:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:41 2006 -0800"
      },
      "message": "[PATCH] fs: reorder some \u0027struct inode\u0027 fields to speedup i_size manipulations\n\nOn 32bits SMP platforms, 64bits i_size is protected by a seqcount\n(i_size_seqcount).\n\nWhen i_size is read or written, i_size_seqcount is read/written as well, so\nit make sense to group these two fields together in the same cache line.\n\nThis patch moves i_size_seqcount next to i_size, and also moves i_version\nto let offsetof(struct inode, i_size) being 0x40 instead of 0x3c (for\n32bits platforms).\n\nFor 64 bits platforms, i_size_seqcount doesnt exist, and the move of a\n\u0027long i_version\u0027 should not introduce a new hole because of padding.\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": "48ed214d10ae3c3999af938970f7b5b58df77be3",
      "tree": "07c51258c2294279521a10b5d28b66cdaa001796",
      "parents": [
        "89fc9a1a79725c3e5c3b66cb6bd2c7d9eeab29fa"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@linux01.gwdg.de",
        "time": "Wed Dec 06 20:35:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:31 2006 -0800"
      },
      "message": "[PATCH] constify inode accessors\n\nChange the signature of i_size_read(), IMINOR() and IMAJOR() because they,\nor the functions they call, will never modify the argument.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc",
      "tree": "93fa0a8ab84976d4e89c50768ca8b8878d642a0d",
      "parents": [
        "54e6ecb23951b195d02433a741c7f7cb0b796c78"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_KERNEL\n\nSLAB_KERNEL is an alias of GFP_KERNEL.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b86c089b83b8ae2bc814db865057768a9ba787b5",
      "tree": "f5a838ca841c6f655ad25e73a0295c357b904ee4",
      "parents": [
        "aa362a83e78d2e9320da588805cf2a0b53356bc3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:32:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:23 2006 -0800"
      },
      "message": "[PATCH] Move names_cachep to linux/fs.h\n\nThe names_cachep is used for getname() and putname().  So lets put it into\nfs.h near those two definitions.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "914e26379decf1fd984b22e51fd2e4209b7a7f1b",
      "tree": "4f20ee40e959699e344cdff0e117d309d238f6be",
      "parents": [
        "f6a570333e554b48ad589e7137c77c57809eee81"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 18 13:55:46 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 04 02:00:24 2006 -0500"
      },
      "message": "[PATCH] severing fs.h, radix-tree.h -\u003e sched.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "01de85e057328ecbef36e108673b1e81059d54c1",
      "tree": "0dbac62e48b2a2fa3f4ec4dea9b340ff31892a8c",
      "parents": [
        "6da61809822c22634a3de2dcb3c60283b836a88a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 17 19:50:36 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Thu Oct 19 20:53:08 2006 +0200"
      },
      "message": "[PATCH] Add lockless helpers for remove_suid()\n\nRight now users have to grab i_mutex before calling remove_suid(), in the\nunlikely event that a call to -\u003esetattr() may be needed. Split up the\nfunction in two parts:\n\n- One to check if we need to remove suid\n- One to actually remove it\n\nThe first we can call lockless.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6da61809822c22634a3de2dcb3c60283b836a88a",
      "tree": "80bc4105a4eabb221e5b1896b2c8b915a9c90d28",
      "parents": [
        "62752ee198dca9209b7dee504763e51b11e9e0ca"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Oct 17 18:43:07 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Thu Oct 19 20:53:08 2006 +0200"
      },
      "message": "[PATCH] Introduce generic_file_splice_write_nolock()\n\nThis allows file systems to manage their own i_mutex locking while\nstill re-using the generic_file_splice_write() logic.\n\nOCFS2 in particular wants this so that it can order cluster locks within\ni_mutex.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "62752ee198dca9209b7dee504763e51b11e9e0ca",
      "tree": "5e340a4c690851dadc3a8aa395e4c0d14b4837eb",
      "parents": [
        "ce9e3d9953c8cb67001719b5516da2928e956be4"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Oct 17 10:31:38 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Thu Oct 19 20:53:08 2006 +0200"
      },
      "message": "[PATCH] Take i_mutex in splice_from_pipe()\n\nThe splice_actor may be calling -\u003eprepare_write() and -\u003ecommit_write(). We\nwant i_mutex on the inode being written to before calling those so that we\ndon\u0027t race i_size changes.\n\nThe double locking behavior is done elsewhere in splice.c, and if we\neventually want _nolock variants of generic_file_splice_write(), fs modules\nmight have to replicate the nasty locking code. We introduce\ninode_double_lock() and inode_double_unlock() to consolidate the locking\nrules into one set of functions.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7762f5a0b709b415fda132258ad37b9f2a1db994",
      "tree": "7eb1b54dc392f2100bf2cf1e407a2480a4680e7d",
      "parents": [
        "9ffbb9162312fd8113037cb3d94f787f06bbfa9a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Oct 17 00:10:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:45 2006 -0700"
      },
      "message": "[PATCH] document i_size_write locking rules\n\nUnless someone reads the documentation for write_seqcount_{begin,end} it is\nnot obvious, that i_size_write() needs locking.  Especially, that lack of such\nlocking can result in a system hang.\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": "4a61f17378c2cdd9bd8f34ef8bd7422861d0c1f1",
      "tree": "a2054556900af8c16fd9f5419f012dcf1ee2995a",
      "parents": [
        "d002ec481c24f325ed6cfcb7810d317c015dd1b5",
        "7ecdb70a0ea436c06540140242bfac6ac3babfc0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 09:06:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 09:06:16 2006 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6: (292 commits)\n  [GFS2] Fix endian bug for de_type\n  [GFS2] Initialize SELinux extended attributes at inode creation time.\n  [GFS2] Move logging code into log.c (mostly)\n  [GFS2] Mark nlink cleared so VFS sees it happen\n  [GFS2] Two redundant casts removed\n  [GFS2] Remove uneeded endian conversion\n  [GFS2] Remove duplicate sb reading code\n  [GFS2] Mark metadata reads for blktrace\n  [GFS2] Remove iflags.h, use FS_\n  [GFS2] Fix code style/indent in ops_file.c\n  [GFS2] streamline-generic_file_-interfaces-and-filemap gfs fix\n  [GFS2] Remove readv/writev methods and use aio_read/aio_write instead (gfs bits)\n  [GFS2] inode-diet: Eliminate i_blksize from the inode structure\n  [GFS2] inode_diet: Replace inode.u.generic_ip with inode.i_private (gfs)\n  [GFS2] Fix typo in last patch\n  [GFS2] Fix direct i/o logic in filemap.c\n  [GFS2] Fix bug in Makefiles for lock modules\n  [GFS2] Remove (extra) fs_subsys declaration\n  [GFS2/DLM] Fix trailing whitespace\n  [GFS2] Tidy up meta_io code\n  ...\n"
    },
    {
      "commit": "7006f6eca874cd44d37ccb8cfeb8bed04e3bff22",
      "tree": "2e0827157e770e62493dea144e5d9ef73091e554",
      "parents": [
        "9af4aa30b713a58e5952045f52c41a6e3baa2fdc"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Oct 03 01:15:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:13 2006 -0700"
      },
      "message": "[PATCH] dm: export blkdev_driver_ioctl\n\nExport blkdev_driver_ioctl for device-mapper.\n\nIf we get as far as the device-mapper ioctl handler, we know the ioctl is not\na standard block layer BLK* one, so we don\u0027t need to check for them a second\ntime and can call blkdev_driver_ioctl() directly.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "afefdbb28a0a2af689926c30b94a14aea6036719",
      "tree": "6ee500575cac928cd90045bcf5b691cf2b8daa09",
      "parents": [
        "1d32849b14bc8792e6f35ab27dd990d74b16126c"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 03 01:13:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:03:40 2006 -0700"
      },
      "message": "[PATCH] VFS: Make filldir_t and struct kstat deal in 64-bit inode numbers\n\nThese patches make the kernel pass 64-bit inode numbers internally when\ncommunicating to userspace, even on a 32-bit system.  They are required\nbecause some filesystems have intrinsic 64-bit inode numbers: NFS3+ and XFS\nfor example.  The 64-bit inode numbers are then propagated to userspace\nautomatically where the arch supports it.\n\nProblems have been seen with userspace (eg: ld.so) using the 64-bit inode\nnumber returned by stat64() or getdents64() to differentiate files, and\nfailing because the 64-bit inode number space was compressed to 32-bits, and\nso overlaps occur.\n\nThis patch:\n\nMake filldir_t take a 64-bit inode number and struct kstat carry a 64-bit\ninode number so that 64-bit inode numbers can be passed back to userspace.\n\nThe stat functions then returns the full 64-bit inode number where\navailable and where possible.  If it is not possible to represent the inode\nnumber supplied by the filesystem in the field provided by userspace, then\nerror EOVERFLOW will be issued.\n\nSimilarly, the getdents/readdir functions now pass the full 64-bit inode\nnumber to userspace where possible, returning EOVERFLOW instead when a\ndirectory entry is encountered that can\u0027t be properly represented.\n\nNote that this means that some inodes will not be stat\u0027able on a 32-bit\nsystem with old libraries where they were before - but it does mean that\nthere will be no ambiguity over what a 32-bit inode number refers to.\n\nNote similarly that directory scans may be cut short with an error on a\n32-bit system with old libraries where the scan would work before for the\nsame reasons.\n\nIt is judged unlikely that this situation will occur because modern glibc\nuses 64-bit capable versions of stat and getdents class functions\nexclusively, and that older systems are unlikely to encounter\nunrepresentable inode numbers anyway.\n\n[akpm: alpha build fix]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "128e5ebaf8abbda375bba82690b09630003c9213",
      "tree": "8c8dcf1f0f8f04a9c56dd2e9378dac1a5a3e4e5c",
      "parents": [
        "d00223f1693173c7b51f867dd52049955a92d0ed"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 02 11:24:43 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 02 11:24:43 2006 -0400"
      },
      "message": "[GFS2] Remove iflags.h, use FS_\n\nUpdate GFS2 in the light of David Howells\u0027 patch:\n\n[PATCH] BLOCK: Move common FS-specific ioctls to linux/fs.h [try #6]\n36695673b012096228ebdc1b39a6a5850daa474e\n\nwhich calls the filesystem independant flags FS_..._FL. As a result\nwe no longer need the flags.h file and the conversion routine is\nmoved into the GFS2 source code.\n\nUserland programs which used to include iflags.h should now include\nfs.h and use the new flag names.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "609d7fa9565c754428d2520cac2accc9052e1245",
      "tree": "1c5114ec3720166fe99ce3885e8767929a8a84e0",
      "parents": [
        "bde0d2c98bcfc9acc83ac79c33a6ac1335b95a92"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:17:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:14 2006 -0700"
      },
      "message": "[PATCH] file: modify struct fown_struct to use a struct pid\n\nFile handles can be requested to send sigio and sigurg to processes.  By\ntracking the destination processes using struct pid instead of pid_t we make\nthe interface safe from all potential pid wrap around problems.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6cbd281d189977b38eac7eb2a4678de19b6b483",
      "tree": "f853d303687275cd4328bfac53780b7c7c2c67ef",
      "parents": [
        "65da4d81f48e092f71feaf04bf2ccd096b5a5171"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Sep 30 23:29:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:33 2006 -0700"
      },
      "message": "[PATCH] Some cleanup in the pipe code\n\nSplit the big and hard to read do_pipe function into smaller pieces.\n\nThis creates new create_write_pipe/free_write_pipe/create_read_pipe\nfunctions.  These functions are made global so that they can be used by\nother parts of the kernel.\n\nThe resulting code is more generic and easier to read and has cleaner error\nhandling and less gotos.\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ce71ec36840368b877fb63bd14c8e67ab62d08b1",
      "tree": "55ea3caaa339881dfd66d787b3dbbb964825d07a",
      "parents": [
        "17ff785691503f63ec648df82a7fdaece7695561"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Sep 30 23:29:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:30 2006 -0700"
      },
      "message": "[PATCH] r/o bind mounts: monitor zeroing of i_nlink\n\nSome filesystems, instead of simply decrementing i_nlink, simply zero it\nduring an unlink operation.  We need to catch these in addition to the\ndecrement operations.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d8c76e6f45c111c32a4b3e50a2adc9210737b0d8",
      "tree": "25521b59d48c6d8c9aec1af54dbe5008ad4b215b",
      "parents": [
        "9a53c3a783c2fa9b969628e65695c11c3e51e673"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Sep 30 23:29:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:30 2006 -0700"
      },
      "message": "[PATCH] r/o bind mount prepwork: inc_nlink() helper\n\nThis is mostly included for parity with dec_nlink(), where we will have some\nmore hooks.  This one should stay pretty darn straightforward for now.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a53c3a783c2fa9b969628e65695c11c3e51e673",
      "tree": "5a6115e18ee105246d46e3db3d5b07749d232f5b",
      "parents": [
        "aab520e2f6c80160cabd187a8d0292d1cec8ff68"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Sep 30 23:29:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:30 2006 -0700"
      },
      "message": "[PATCH] r/o bind mounts: unlink: monitor i_nlink\n\nWhen a filesystem decrements i_nlink to zero, it means that a write must be\nperformed in order to drop the inode from the filesystem.\n\nWe\u0027re shortly going to have keep filesystems from being remounted r/o between\nthe time that this i_nlink decrement and that write occurs.\n\nSo, add a little helper function to do the decrements.  We\u0027ll tie into it in a\nbit to note when i_nlink hits zero.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eed4e51fb60c3863c134a5e9f6006b29805ead97",
      "tree": "edb0a80d75c454ad77001f3bd1a87933cbcff53f",
      "parents": [
        "543ade1fc901db4c3dbe9fb27241fb977f1f3eea"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sat Sep 30 23:28:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:29 2006 -0700"
      },
      "message": "[PATCH] Add vector AIO support\n\nThis work is initially done by Zach Brown to add support for vectored aio.\nThese are the core changes for AIO to support\nIOCB_CMD_PREADV/IOCB_CMD_PWRITEV.\n\n[akpm@osdl.org: huge build fix]\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nAcked-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "543ade1fc901db4c3dbe9fb27241fb977f1f3eea",
      "tree": "cdd1a1f67a718adf71e92fe08e4b3d33bf3dbadc",
      "parents": [
        "ee0b3e671baff681d69fbf0db33b47603c0a8280"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sat Sep 30 23:28:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:28 2006 -0700"
      },
      "message": "[PATCH] Streamline generic_file_* interfaces and filemap cleanups\n\nThis patch cleans up generic_file_*_read/write() interfaces.  Christoph\nHellwig gave me the idea for this clean ups.\n\nIn a nutshell, all filesystems should set .aio_read/.aio_write methods and use\ndo_sync_read/ do_sync_write() as their .read/.write methods.  This allows us\nto cleanup all variants of generic_file_* routines.\n\nFinal available interfaces:\n\ngeneric_file_aio_read() - read handler\ngeneric_file_aio_write() - write handler\ngeneric_file_aio_write_nolock() - no lock write handler\n\n__generic_file_aio_write_nolock() - internal worker routine\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\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": "ee0b3e671baff681d69fbf0db33b47603c0a8280",
      "tree": "3202ff815b2196c6c353bc5b28d7a2800df273ec",
      "parents": [
        "027445c37282bc1ed26add45e573ad2d3e4860a5"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sat Sep 30 23:28:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:28 2006 -0700"
      },
      "message": "[PATCH] Remove readv/writev methods and use aio_read/aio_write instead\n\nThis patch removes readv() and writev() methods and replaces them with\naio_read()/aio_write() methods.\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\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": "027445c37282bc1ed26add45e573ad2d3e4860a5",
      "tree": "93eab101a938ffebaea64703033c8649df4d73f0",
      "parents": [
        "9ea0f9499d15c49df23e7aac4332d830c40e12d0"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sat Sep 30 23:28:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:28 2006 -0700"
      },
      "message": "[PATCH] Vectorize aio_read/aio_write fileop methods\n\nThis patch vectorizes aio_read() and aio_write() methods to prepare for\ncollapsing all aio \u0026 vectored operations into one interface - which is\naio_read()/aio_write().\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Michael Holzheu \u003cHOLZHEU@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9361401eb7619c033e2394e4f9f6d410d6719ac7",
      "tree": "04b94a71f2366988c17740d1c16cfbdec41d5d2e",
      "parents": [
        "d366e40a1cabd453be6e2609caa7e12f9ca17b1f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sat Sep 30 20:45:40 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:52:31 2006 +0200"
      },
      "message": "[PATCH] BLOCK: Make it possible to disable the block layer [try #6]\n\nMake it possible to disable the block layer.  Not all embedded devices require\nit, some can make do with just JFFS2, NFS, ramfs, etc - none of which require\nthe block layer to be present.\n\nThis patch does the following:\n\n (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev\n     support.\n\n (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls\n     an item that uses the block layer.  This includes:\n\n     (*) Block I/O tracing.\n\n     (*) Disk partition code.\n\n     (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.\n\n     (*) The SCSI layer.  As far as I can tell, even SCSI chardevs use the\n     \t block layer to do scheduling.  Some drivers that use SCSI facilities -\n     \t such as USB storage - end up disabled indirectly from this.\n\n     (*) Various block-based device drivers, such as IDE and the old CDROM\n     \t drivers.\n\n     (*) MTD blockdev handling and FTL.\n\n     (*) JFFS - which uses set_bdev_super(), something it could avoid doing by\n     \t taking a leaf out of JFFS2\u0027s book.\n\n (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and\n     linux/elevator.h contingent on CONFIG_BLOCK being set.  sector_div() is,\n     however, still used in places, and so is still available.\n\n (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and\n     parts of linux/fs.h.\n\n (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.\n\n (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.\n\n (*) set_page_dirty() doesn\u0027t call __set_page_dirty_buffers() if CONFIG_BLOCK\n     is not enabled.\n\n (*) fs/no-block.c is created to hold out-of-line stubs and things that are\n     required when CONFIG_BLOCK is not set:\n\n     (*) Default blockdev file operations (to give error ENODEV on opening).\n\n (*) Makes some /proc changes:\n\n     (*) /proc/devices does not list any blockdevs.\n\n     (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.\n\n (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.\n\n (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if\n     given command other than Q_SYNC or if a special device is specified.\n\n (*) In init/do_mounts.c, no reference is made to the blockdev routines if\n     CONFIG_BLOCK is not defined.  This does not prohibit NFS roots or JFFS2.\n\n (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return\n     error ENOSYS by way of cond_syscall if so).\n\n (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if\n     CONFIG_BLOCK is not set, since they can\u0027t then happen.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "36695673b012096228ebdc1b39a6a5850daa474e",
      "tree": "4b617e27256750f367b2b50653981c70db0ce2d0",
      "parents": [
        "863d5b822c02d0e7215fb84ca79e9f8c3e35f04e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 29 19:06:16 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:52:28 2006 +0200"
      },
      "message": "[PATCH] BLOCK: Move common FS-specific ioctls to linux/fs.h [try #6]\n\nMove common FS-specific ioctls from linux/ext2_fs.h to linux/fs.h as FS_IOC_*\nand FS_IOC32_* and have the users of them use those as a base.\n\nAlso move the GETFLAGS/SETFLAGS flags to linux/fs.h as FS_*_FL macros, and then\nhave the other users use them as a base.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "cf9a2ae8d49948f861b56e5333530e491a9da190",
      "tree": "21f0b0d781b3e60cc60464d39b6d95681201b37e",
      "parents": [
        "4090959aee403817ff386415f9bc602c1a0882ef"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 29 19:05:54 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:31:19 2006 +0200"
      },
      "message": "[PATCH] BLOCK: Move functions out of buffer code [try #6]\n\nMove some functions out of the buffering code that aren\u0027t strictly buffering\nspecific.  This is a precursor to being able to disable the block layer.\n\n (*) Moved some stuff out of fs/buffer.c:\n\n     (*) The file sync and general sync stuff moved to fs/sync.c.\n\n     (*) The superblock sync stuff moved to fs/super.c.\n\n     (*) do_invalidatepage() moved to mm/truncate.c.\n\n     (*) try_to_release_page() moved to mm/filemap.c.\n\n (*) Moved some related declarations between header files:\n\n     (*) declarations for do_invalidatepage() and try_to_release_page() moved\n     \t to linux/mm.h.\n\n     (*) __set_page_dirty_buffers() moved to linux/buffer_head.h.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "5404bc7a87b9949cf61e0174b21f80e73239ab25",
      "tree": "230c799aef2dcad8c64da55114508d28d2b30183",
      "parents": [
        "da20a20f3b5c175648fa797c899dd577e4dacb51"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Aug 10 09:01:02 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:29:42 2006 +0200"
      },
      "message": "[PATCH] Allow file systems to differentiate between data and meta reads\n\nWe can use this information for making more intelligent priority\ndecisions, and it will also be useful for blktrace.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "a3b05e8f58c95dfccbf2c824d0c68e5990571f24",
      "tree": "768aad0f032790df38b277eff062c47b6ecff533",
      "parents": [
        "1ea25ecb7256978947c258f08a30c878eebe9edb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Fri Jul 28 09:36:46 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:29:38 2006 +0200"
      },
      "message": "[PATCH] Kill various deprecated/unused block layer defines/functions\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "50462062a02226a698a211d5bd535376c89b8603",
      "tree": "07a34af458b338c609a35072b8c6fd1ed2a235a1",
      "parents": [
        "cfe14677f286c9be5d683b88214def8f4b8a6f24"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Sep 29 02:00:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:11 2006 -0700"
      },
      "message": "[PATCH] fs.h: ifdef security fields\n\n[assuming BSD security levels are deleted]\nThe only user of i_security, f_security, s_security fields is SELinux,\nhowever, quite a few security modules are trying to get into kernel.\nSo, wrap them under CONFIG_SECURITY. Adding config option for each\nsecurity field is likely an overkill.\n\nFollowing Stephen Smalley\u0027s suggestion, i_security initialization is\nmoved to security_inode_alloc() to not clutter core code with ifdefs\nand make alloc_inode() codepath tiny little bit smaller and faster.\n\nThe user of (highly greppable) struct fown_struct::security field is\nstill to be found. I\u0027ve checked every \"fown_struct\" and every \"f_owner\"\noccurence. Additionally it\u0027s removal doesn\u0027t break i386 allmodconfig\nbuild.\n\nstruct inode, struct file, struct super_block, struct fown_struct\nbecome smaller.\n\nP.S. Combined with two reiserfs inode shrinking patches sent to\nlinux-fsdevel, I can finally suck 12 reiserfs inodes into one page.\n\n\t\t/proc/slabinfo\n\n\t-ext2_inode_cache\t388\t10\n\t+ext2_inode_cache\t384\t10\n\t-inode_cache\t\t280\t14\n\t+inode_cache\t\t276\t14\n\t-proc_inode_cache\t296\t13\n\t+proc_inode_cache\t292\t13\n\t-reiser_inode_cache\t336\t11\n\t+reiser_inode_cache\t332\t12 \u003c\u003d\n\t-shmem_inode_cache\t372\t10\n\t+shmem_inode_cache\t368\t10\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0e51a720b9d9ea5ebf0fda39108919c6626bffa3",
      "tree": "ef3fed3bca02c3439a9c44358171c1cceef8af70",
      "parents": [
        "a3172027148120b8f8797cbecc7d0a0b215736a1"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Sep 29 01:59:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:11 2006 -0700"
      },
      "message": "[PATCH] ifdef -\u003equota_read, -\u003equota_write\n\nAll suppliers of -\u003equota_read, -\u003equota_write (I\u0027ve found ext2, ext3, UFS,\nreiserfs) already have them properly ifdeffed.  All callers of\n-\u003equota_read, -\u003equota_write are under CONFIG_QUOTA umbrella, so...\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ba52de123d454b57369f291348266d86f4b35070",
      "tree": "3973f3f3c853b5857b6b64a027cadd4fe954e3b9",
      "parents": [
        "577c4eb09d1034d0739e3135fd2cff50588024be"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:18 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Eliminate i_blksize from the inode structure\n\nThis eliminates the i_blksize field from struct inode.  Filesystems that want\nto provide a per-inode st_blksize can do so by providing their own getattr\nroutine instead of using the generic_fillattr() function.\n\nNote that some filesystems were providing pretty much random (and incorrect)\nvalues for i_blksize.\n\n[bunk@stusta.de: cleanup]\n[akpm@osdl.org: generic_fillattr() fix]\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "577c4eb09d1034d0739e3135fd2cff50588024be",
      "tree": "2eb22d60a62d013f300729ee563d1fe61f544da9",
      "parents": [
        "eaf796e7ef6014f208c409b2b14fddcfaafe7e3a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:17 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Move i_cdev into a union\n\nMove the i_cdev pointer in struct inode into a union.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eaf796e7ef6014f208c409b2b14fddcfaafe7e3a",
      "tree": "4a872d4b2b086132a9ebdaec1420b8a861ddf6b7",
      "parents": [
        "4c1541680f8d189d21dd07b053bc12996574646e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:17 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Move i_bdev into a union\n\nMove the i_bdev pointer in struct inode into a union.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c1541680f8d189d21dd07b053bc12996574646e",
      "tree": "82028e01537a968ef66b075f79f3c95f8c60fd70",
      "parents": [
        "8e18e2941c53416aa219708e7dcad21fb4bd6794"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:17 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Move i_pipe into a union\n\nMove the i_pipe pointer into a union that will be shared with i_bdev and\ni_cdev.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8e18e2941c53416aa219708e7dcad21fb4bd6794",
      "tree": "44118f8b09556193ac93e0b71aecfa3e1d4bc182",
      "parents": [
        "6a1d9805ec506d8b9d04450997707da5f643d87c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:17 2006 -0700"
      },
      "message": "[PATCH] inode_diet: Replace inode.u.generic_ip with inode.i_private\n\nThe following patches reduce the size of the VFS inode structure by 28 bytes\non a UP x86.  (It would be more on an x86_64 system).  This is a 10% reduction\nin the inode size on a UP kernel that is configured in a production mode\n(i.e., with no spinlock or other debugging functions enabled; if you want to\nsave memory taken up by in-core inodes, the first thing you should do is\ndisable the debugging options; they are responsible for a huge amount of bloat\nin the VFS inode structure).\n\nThis patch:\n\nThe filesystem or device-specific pointer in the inode is inside a union,\nwhich is pretty pointless given that all 30+ users of this field have been\nusing the void pointer.  Get rid of the union and rename it to i_private, with\na comment to explain who is allowed to use the void pointer.  This is just a\ncleanup, but it allows us to reuse the union \u0027u\u0027 for something something where\nthe union will actually be used.\n\n[judith@osdl.org: powerpc build fix]\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Judith Lebzelter \u003cjudith@osdl.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "349457ccf2592c14bdf13b6706170ae2e94931b1",
      "tree": "3670945b5a62617d38cf1f317487387032d3da4d",
      "parents": [
        "1390334b4c697b7588d5661fcf6acaeec409cf4c"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 14:22:21 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:45 2006 -0700"
      },
      "message": "[PATCH] Allow file systems to manually d_move() inside of -\u003erename()\n\nSome file systems want to manually d_move() the dentries involved in a\nrename.  We can do this by making use of the FS_ODD_RENAME flag if we just\nhave nfs_rename() unconditionally do the d_move().  While there, we rename\nthe flag to be more descriptive.\n\nOCFS2 uses this to protect that part of the rename operation with a cluster\nlock.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n"
    },
    {
      "commit": "4df46240a1312161e3c794f6ace50ef7eb5ff3d7",
      "tree": "c32b0e6b32b79f8fbb8326743867b25ea483134d",
      "parents": [
        "36e8e5783297fbb83bdebe7e245ef659958f23cb"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 27 01:23:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 27 11:01:32 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate reiserfs\n\nreiserfs seems to have another locking level layer for the i_mutex due to the\nxattrs-are-a-directory thing.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "01bf466e1866feeb7fce0319cbafe0166e29f5e4",
      "tree": "9dc2bc9474e5bcef5628828a8b64708ec383ce74",
      "parents": [
        "8a2ab7f5df76b920d62b908919d987d3b8a82856"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Jul 10 04:44:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:21 2006 -0700"
      },
      "message": "[PATCH] FDPIC: Define SEEK_* constants in the Linux kernel headers\n\nAdd definitions for SEEK_SET, SEEK_CUR and SEEK_END to the kernel header\nfiles.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f475ae957db66650db66916c62604ac27409d884",
      "tree": "3b9c40dd20f1b7f3fcc59035941c4a084ce71a19",
      "parents": [
        "5e66dd6d66ffe758b39b6dcadf2330753ee1159b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 29 16:38:32 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 05 13:13:17 2006 -0400"
      },
      "message": "VFS: Allow caller to determine if BSD or posix locks were actually freed\n\nChange posix_lock_file_conf(), and flock_lock_file() so that if called\nwith an F_UNLCK argument, and the FL_EXISTS flag they will indicate\nwhether or not any locks were actually freed by returning 0 or -ENOENT.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "663d440eaa496db903cc58be04b9b602ba45e43b",
      "tree": "8af6967e175693f1c163a106a1d84be7a1bd0bfc",
      "parents": [
        "2b2d5493e10051694ae3a57ea6a153e3cb4d4488"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:10 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate blkdev nesting\n\nTeach special (recursive) locking code to the lock validator.\n\nEffects on non-lockdep kernels:\n\n- the introduction of the following function variants:\n\n  extern struct block_device *open_partition_by_devnum(dev_t, unsigned);\n\n  extern int blkdev_put_partition(struct block_device *);\n\n  static int\n  blkdev_get_whole(struct block_device *bdev, mode_t mode, unsigned flags);\n\n which on non-lockdep are the same as open_by_devnum(), blkdev_put()\n and blkdev_get().\n\n- a subclass parameter to do_open(). [unused on non-lockdep]\n\n- a subclass parameter to __blkdev_put(), which is a new internal\n  function for the main blkdev_put*() functions. [parameter unused\n  on non-lockdep kernels, except for two sanity check WARN_ON()s]\n\nthese functions carry no semantical difference - they only express\nobject dependencies towards the lockdep subsystem.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "897c6ff9568bcb102ffc6b465ebe1def0cba829d",
      "tree": "05e0ea4e39fd5b064bdcab351a468b1f3cb963d5",
      "parents": [
        "cf51624999e56c88154b5f7d451a265db6aabff7"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Mon Jul 03 00:25:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:09 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate sb -\u003es_umount\n\nThe s_umount rwsem needs to be classified as per-superblock since it\u0027s\nperfectly legit to keep multiple of those recursively in the VFS locking\nrules.\n\nHas no effect on non-lockdep kernels.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cf51624999e56c88154b5f7d451a265db6aabff7",
      "tree": "eee3fd290f9d79b26c4b6a2f1041f596da896a3c",
      "parents": [
        "91ebe2a9320db7195d1e25152b5d158fc66dc133"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:27 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:09 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate -\u003es_lock\n\nTeach special (per-filesystem) locking code to the lock validator.\n\nMinimal effect on non-lockdep kernels: one extra parameter to alloc_super().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f2eace23e924bd3f05aedea4fc505eb5508d2d93",
      "tree": "3e78dc1c4be979164a91665f56299e344fb6d6b6",
      "parents": [
        "a90b9c05df3c1e58eaedc28795d0f5abd896c098"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:06 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate i_mutex\n\nTeach special (recursive) locking code to the lock validator.  Has no effect\non non-lockdep kernels.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f5e54d6e53a20cef45af7499e86164f0e0d16bb2",
      "tree": "cb92acbb89b84796261bf5563182261ec5654127",
      "parents": [
        "a052b68b1e7a31f1e6a721290035e9deb0f6fed9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 28 04:26:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 14:59:04 2006 -0700"
      },
      "message": "[PATCH] mark address_space_operations const\n\nSame as with already do with the file operations: keep them in .rodata and\nprevents people from doing runtime patching.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "816724e65c72a90a44fbad0ef0b59b186c85fa90",
      "tree": "421fa29aedff988e392f92780637553e275d37a0",
      "parents": [
        "70ac4385a13f78bc478f26d317511893741b05bd",
        "d384ea691fe4ea8c2dd5b9b8d9042eb181776f18"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 08:41:41 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:07:53 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tfs/nfs/inode.c\n\tfs/super.c\n\nFix conflicts between patch \u0027NFS: Split fs/nfs/inode.c\u0027 and patch\n\u0027VFS: Permit filesystem to override root dentry on mount\u0027\n"
    },
    {
      "commit": "b0904e147f7cbe4be3b4dae49ddccd627bb66f16",
      "tree": "81bb0e45d46a3bb038d953f616fd6e32d7ca5e4b",
      "parents": [
        "75e1fcc0b18df0a65ab113198e9dc0e98999a08c"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 23 02:05:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:03 2006 -0700"
      },
      "message": "[PATCH] fs/locks.c: make posix_locks_deadlock() static\n\nWe can now make posix_locks_deadlock() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\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": "75e1fcc0b18df0a65ab113198e9dc0e98999a08c",
      "tree": "3ac0d0d3120cbca4ee9734494e2c9a4e0775ac4f",
      "parents": [
        "ff7b86b82083f24b8637dff1528c7101c18c7f39"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Jun 23 02:05:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:02 2006 -0700"
      },
      "message": "[PATCH] vfs: add lock owner argument to flush operation\n\nPass the POSIX lock owner ID to the flush operation.\n\nThis is useful for filesystems which don\u0027t want to store any locking state\nin inode-\u003ei_flock but want to handle locking/unlocking POSIX locks\ninternally.  FUSE is one such filesystem but I think it possible that some\nnetwork filesystems would need this also.\n\nAlso add a flag to indicate that a POSIX locking request was generated by\nclose(), so filesystems using the above feature won\u0027t send an extra locking\nrequest in this case.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2d1db3b1170db4e8bf0531dd636742269c2cf579",
      "tree": "1161ed614a55869c278234d7472673fd1a577887",
      "parents": [
        "c3fcf8a5daacf350f0632e1379414c01f34eeea3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:50 2006 -0700"
      },
      "message": "[PATCH] page migration cleanup: pass \"mapping\" to migration functions\n\nChange handling of address spaces.\n\nPass a pointer to the address space in which the page is migrated to all\nmigration function.  This avoids repeatedly having to retrieve the address\nspace pointer from the page and checking it for validity.  The old page\nmapping will change once migration has gone to a certain step, so it is less\nconfusing to have the pointer always available.\n\nMove the setting of the mapping and index for the new page into\nmigrate_pages().\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "726c334223180e3c0197cc980a432681370d4baf",
      "tree": "8327b354bb3dc959a6606051ae6f8d4d035e38a2",
      "parents": [
        "454e2398be9b9fa30433fccc548db34d19aa9958"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to perform statfs with a known root dentry\n\nGive the statfs superblock operation a dentry pointer rather than a superblock\npointer.\n\nThis complements the get_sb() patch.  That reduced the significance of\nsb-\u003es_root, allowing NFS to place a fake root there.  However, NFS does\nrequire a dentry to use as a target for the statfs operation.  This permits\nthe root in the vfsmount to be used instead.\n\nlinux/mount.h has been added where necessary to make allyesconfig build\nsuccessfully.\n\nInterest has also been expressed for use with the FUSE and XFS filesystems.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "454e2398be9b9fa30433fccc548db34d19aa9958"
}
