)]}'
{
  "log": [
    {
      "commit": "edf6be245fd34a4438646375cecb11f5feb92646",
      "tree": "ca1ddfc1900d5875d5434c6c7f39ca4966ef3baa",
      "parents": [
        "7c46d0ae29ba880963db283706950de7aa86c0a0"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 19:15:56 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 19:15:56 2012 +0300"
      },
      "message": "UBIFS: rename dumping functions\n\nThis commit re-names all functions which dump something from \"dbg_dump_*()\" to\n\"ubifs_dump_*()\". This is done for consistency with UBI and because this way it\nwill be more logical once we remove the debugging sompilation option.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "1bdcc63112a0fe10030abee6ad71aaecd091e68e",
      "tree": "0fa4760bfed47a315b4d4291438b8865c06fc5c1",
      "parents": [
        "273946a5c507ff5bce12349143470e8629bbe0a7"
      ],
      "author": {
        "name": "Subodh Nijsure",
        "email": "subodh.nijsure@gmail.com",
        "time": "Sat Apr 14 09:09:57 2012 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu May 03 14:11:11 2012 +0300"
      },
      "message": "UBIFS: remove xattr Kconnfig option\n\nRemove CONFIG_UBIFS_FS_XATTR configuration option and associated\nUBIFS_FS_XATTR ifdefs.\n\nTesting:\n       Tested using integck while using nandsim on x86 \u0026 MX28 based\n       platform with Micron MT29F2G08ABAEAH4 nand.\n\nSigned-off-by: Subodh Nijsure \u003csnijsure@grid-net.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "a1c7c13783c9d2d1d67f53c49dc4eaf34811a290",
      "tree": "6699f175d1b5ec915ed82f243badf57f543ed01d",
      "parents": [
        "53b55e55893fbce8d78caeb22e17a28d909a2132"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:36 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:26 2012 +0800"
      },
      "message": "ubifs: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "bbd9d6f7fbb0305c9a592bf05a32e87eb364a4ff",
      "tree": "12b2bb4202b05f6ae6a43c6ce830a0472043dbe5",
      "parents": [
        "8e204874db000928e37199c2db82b7eb8966cc3c",
        "5a9a43646cf709312d71eca71cef90ad802f28f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits)\n  vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp\n  isofs: Remove global fs lock\n  jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory\n  fix IN_DELETE_SELF on overwriting rename() on ramfs et.al.\n  mm/truncate.c: fix build for CONFIG_BLOCK not enabled\n  fs:update the NOTE of the file_operations structure\n  Remove dead code in dget_parent()\n  AFS: Fix silly characters in a comment\n  switch d_add_ci() to d_splice_alias() in \"found negative\" case as well\n  simplify gfs2_lookup()\n  jfs_lookup(): don\u0027t bother with . or ..\n  get rid of useless dget_parent() in btrfs rename() and link()\n  get rid of useless dget_parent() in fs/btrfs/ioctl.c\n  fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n  drivers: fix up various -\u003ellseek() implementations\n  fs: handle SEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek\n  Ext4: handle SEEK_HOLE/SEEK_DATA generically\n  Btrfs: implement our own -\u003ellseek\n  fs: add SEEK_HOLE and SEEK_DATA flags\n  reiserfs: make reiserfs default to barrier\u003dflush\n  ...\n\nFix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new\nshrinker callout for the inode cache, that clashed with the xfs code to\nstart the periodic workers later.\n"
    },
    {
      "commit": "02c24a82187d5a628c68edfe71ae60dc135cd178",
      "tree": "c8dbaba4d82e2b20ed4335910a564a1f7d90fcf6",
      "parents": [
        "22735068d53c7115e384bc88dea95b17e76a6839"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Jul 16 20:44:56 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:59 2011 -0400"
      },
      "message": "fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n\nBtrfs needs to be able to control how filemap_write_and_wait_range() is called\nin fsync to make it less of a painful operation, so push down taking i_mutex and\nthe calling of filemap_write_and_wait() down into the -\u003efsync() handlers.  Some\nfile systems can drop taking the i_mutex altogether it seems, like ext3 and\nocfs2.  For correctness sake I just pushed everything down in all cases to make\nsure that we keep the current behavior the same for everybody, and then each\nindividual fs maintainer can make up their mind about what to do from there.\nThanks,\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d808efb407e1a2cf83a8d21411157195f26bdef9",
      "tree": "a939d339288290b10b332dc6890646e68867aa20",
      "parents": [
        "bb2615d4d14777fd37e2b91bd99b92c0354813d1"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue May 31 18:14:38 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:27 2011 +0300"
      },
      "message": "UBIFS: amend debugging inode size check function prototype\n\nAdd \u0027const struct ubifs_info *c\u0027 parameter to \u0027dbg_check_synced_i_size()\u0027\nfunction because we\u0027ll need it in the next patch when we switch to debugfs.\nSo this patch is just a preparation.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2cd0a60cf49db4722445337b90fb06c9672f1128",
      "tree": "4410f113a75068d65134d08309fede29090f6bf4",
      "parents": [
        "341e262f903afbb8c23133ed6e193ea6254f73c4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Apr 24 15:35:11 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:55 2011 +0300"
      },
      "message": "UBIFS: remove strange commentary\n\nRemove the following commentary from \u0027ubifs_file_mmap()\u0027:\n\n/* \u0027generic_file_mmap()\u0027 takes care of NOMMU case */\n\nI do not understand what it means, and I could not find anything relater to\nNOMMU in \u0027generic_file_mmap()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "3b2f9a019e655f3407e4e69cdbaf8b75699b79a4",
      "tree": "6cb40aec6dd430b1af32a4d20ffbe346ea6b9b3f",
      "parents": [
        "1a29af8bd740b2720caeafbffece1c0be6a9d06d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Apr 21 15:11:33 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:55 2011 +0300"
      },
      "message": "UBIFS: use ro_mount instead of MS_RDONLY\n\nWe have our own flags indicating R/O mode, and c-\u003ero_mode is equivalent\nto MS_RDONLY. Let\u0027s be consistent and use UBIFS flags everywhere.\nThis patch is just a minor cleanup.\n\nAdditionally, add a comment that we are surprised with VFS behavior -\nas a reminder to look at this some day.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "b137545c44fc0c80fb778abb0c582bda5601e8f8",
      "tree": "fb3da759a3c64587bee8bacf408cf774adb8b09a",
      "parents": [
        "cc64f774b4acd4954abe54f5919f50d78aba1e5f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Mar 29 18:04:05 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:53 2011 +0300"
      },
      "message": "UBIFS: introduce a separate structure for budgeting info\n\nThis patch separates out all the budgeting-related information\nfrom \u0027struct ubifs_info\u0027 to \u0027struct ubifs_budg_info\u0027. This way the\ncode looks a bit cleaner. However, the main driver for this is\nthat we want to save budgeting information and print it later,\nso a separate data structure for this is helpful.\n\nThis patch is a preparation for the further debugging output\nimprovements.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "c43615702f9c5957981693a4d966ed81d8fc1ecc",
      "tree": "2ebe066623e693e2f0d85a609b19a5ccd27a0993",
      "parents": [
        "1bbfc848a915081237660d898bbcf50e4a8fc59f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 25 15:27:40 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:53 2011 +0300"
      },
      "message": "UBIFS: fix minor stylistic issues\n\nFix several minor stylistic issues:\n* lines longer than 80 characters\n* space before closing parenthesis \u0027)\u0027\n* spaces in the indentations\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "78530bf7f2559b317c04991b52217c1608d5a58d",
      "tree": "c7f34bbcee5861a1fda8482afb36b168910e7cc7",
      "parents": [
        "a6360dd37e1a144ed11e6548371bade559a1e4df"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Apr 13 10:31:52 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Apr 13 10:43:32 2011 +0300"
      },
      "message": "UBIFS: fix oops when R/O file-system is fsync\u0027ed\n\nThis patch fixes severe UBIFS bug: UBIFS oopses when we \u0027fsync()\u0027 an\nfile on R/O-mounter file-system. We (the UBIFS authors) incorrectly\nthought that VFS would not propagate \u0027fsync()\u0027 down to the file-system\nif it is read-only, but this is not the case.\n\nIt is easy to exploit this bug using the following simple perl script:\n\nuse strict;\nuse File::Sync qw(fsync sync);\n\ndie \"File path is not specified\" if not defined $ARGV[0];\nmy $path \u003d $ARGV[0];\n\nopen FILE, \"\u003c\", \"$path\" or die \"Cannot open $path: $!\";\nfsync(\\*FILE) or die \"cannot fsync $path: $!\";\nclose FILE or die \"Cannot close $path: $!\";\n\nThanks to Reuben Dowle \u003cReuben.Dowle@navico.com\u003e for reporting about this\nissue.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReported-by: Reuben Dowle \u003cReuben.Dowle@navico.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "6ed09c34b7984a978a73a855f4c2e6662acc8bdb",
      "tree": "c6177f03d1a523d1ae66c2b26ac2c8817df70b29",
      "parents": [
        "9d523cafbe0dab5a2b873ecd85c37fec9d1368f3"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Mar 23 10:32:58 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Mar 24 16:16:18 2011 +0200"
      },
      "message": "UBIFS: fix assertion warning and refine comments\n\nThis patch fixes the following UBIFS assertion warning:\n\nUBIFS assert failed in do_readpage at 115 (pid 199)\n[\u003cb00321b8\u003e] (unwind_backtrace+0x0/0xdc) from [\u003caf025118\u003e]\n(do_readpage+0x108/0x594 [ubifs])\n[\u003caf025118\u003e] (do_readpage+0x108/0x594 [ubifs]) from [\u003caf025764\u003e]\n(ubifs_write_end+0x1c0/0x2e8 [ubifs])\n[\u003caf025764\u003e] (ubifs_write_end+0x1c0/0x2e8 [ubifs]) from\n[\u003cb00a0164\u003e] (generic_file_buffered_write+0x18c/0x270)\n[\u003cb00a0164\u003e] (generic_file_buffered_write+0x18c/0x270) from\n[\u003cb00a08d4\u003e] (__generic_file_aio_write+0x478/0x4c0)\n[\u003cb00a08d4\u003e] (__generic_file_aio_write+0x478/0x4c0) from\n[\u003cb00a0984\u003e] (generic_file_aio_write+0x68/0xc8)\n[\u003cb00a0984\u003e] (generic_file_aio_write+0x68/0xc8) from\n[\u003caf024a78\u003e] (ubifs_aio_write+0x178/0x1d8 [ubifs])\n[\u003caf024a78\u003e] (ubifs_aio_write+0x178/0x1d8 [ubifs]) from\n[\u003cb00d104c\u003e] (do_sync_write+0xb0/0x100)\n[\u003cb00d104c\u003e] (do_sync_write+0xb0/0x100) from [\u003cb00d1abc\u003e]\n(vfs_write+0xac/0x154)\n[\u003cb00d1abc\u003e] (vfs_write+0xac/0x154) from [\u003cb00d1c10\u003e]\n(sys_write+0x3c/0x68)\n[\u003cb00d1c10\u003e] (sys_write+0x3c/0x68) from [\u003cb002d9a0\u003e]\n(ret_fast_syscall+0x0/0x2c)\n\nThe \u0027PG_checked\u0027 flag is used to indicate that the page does not\nsupposedly exist on the media (e.g., a hole or a page beyond the\ninode size), so it requires slightly bigger budget, because we have\nto account the indexing size increase. And this flag basically\ntells that the budget for this page has to be \"new page budget\".\nThe \"new page budget\" is slightly bigger than the \"existing page\nbudget\".\n\nThe \u0027do_readpage()\u0027 function has the following assertion which\nsometimes is hit: \u0027ubifs_assert(!PageChecked(page))\u0027. Obviously,\nthe meaning of this assertion is: \"I should not be asked to read\na page which does not exist on the media\".\n\nHowever, in \u0027ubifs_write_begin()\u0027 we have a small \"trick\". Notice,\nthat VFS may write pages which were not read yet, so the page data\nwere not loaded from the media to the page cache yet. If VFS tells\nthat it is going to change only some part of the page, we obviously\nhave to load it from the media. However, if VFS tells that it is\ngoing to change whole page, we do not read it from the media for\noptimization purposes.\n\nHowever, since we do not read it, we do not know if it exists on\nthe media or not (a hole, etc). So we set the \u0027PG_checked\u0027 flag\nto this page to force bigger budget, just in case.\n\nSo \u0027ubifs_write_begin()\u0027 sets \u0027PG_checked\u0027. Then we are in\n\u0027ubifs_write_end()\u0027. And VFS tells us: \"hey, for some reasons I\nchanged my mind and did not change whole page\". Frankly, I do not\nknow why this happens, but I hit this somehow on an ARM platform.\nAnd this is extremely rare.\n\nSo in this case UBIFS does the following:\n\n1. Cancels allocated budget.\n2. Loads the page from the media by calling \u0027do_readpage()\u0027.\n3. Asks VFS to repeat the whole write operation from the very\n   beginning (call \u0027-\u003ewrite_begin() again, etc).\n\nAnd the assertion warning is hit at the step 2 - remember we have\nthe \u0027PG_checked\u0027 set for this page, and \u0027do_readpage()\u0027 does not\nlike this. So this patch fixes the problem by adding step 1.5 and\ncleaning the \u0027PG_checked\u0027 before calling \u0027do_readpage()\u0027.\n\nAll in all, this patch does not fix any functionality issue, but it\nsilences UBIFS false positive warning which may happen in very very\nrare cases.\n\nAnd while on it, this patch also improves a commentary which explains\nthe reasons of setting the \u0027PG_checked\u0027 flag for the page. The old\ncommentary was a bit difficult to understand.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2ef13294d29bcfb306e0d360f1b97f37b647b0c0",
      "tree": "877e1ece00c14de0f0d79e86b6480d284d309216",
      "parents": [
        "2680d722bf2c5f75225dd9acb3ec9e5a9e2652f4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Sep 19 18:34:26 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Sep 19 21:07:58 2010 +0300"
      },
      "message": "UBIFS: introduce new flags for RO mounts\n\nCommit 2fde99cb55fb9d9b88180512a5e8a5d939d27fec \"UBIFS: mark VFS SB RO too\"\nintroduced regression. This commit made UBIFS set the \u0027MS_RDONLY\u0027 flag in the\nVFS superblock when it switches to R/O mode due to an error. This was done\nto make VFS show the R/O UBIFS flag in /proc/mounts.\n\nHowever, several places in UBIFS relied on the \u0027MS_RDONLY\u0027 flag and assume this\nflag can only change when we re-mount. For example, \u0027ubifs_put_super()\u0027.\n\nThis patch introduces new UBIFS flag - \u0027c-\u003ero_mount\u0027 which changes only when\nwe re-mount, and preserves the way UBIFS was originally mounted (R/W or R/O).\nThis allows us to de-initialize UBIFS cleanly in \u0027ubifs_put_super()\u0027.\n\nThis patch also changes all \u0027ubifs_assert(!c-\u003ero_media)\u0027 assertions to\n\u0027ubifs_assert(!c-\u003ero_media \u0026\u0026 !c-\u003ero_mount)\u0027, because we never should write\nanything if the FS was mounter R/O.\n\nAll the places where we test for \u0027MS_RDONLY\u0027 flag in the VFS SB were changed\nand now we test the \u0027c-\u003ero_mount\u0027 flag instead, because it preserves the\noriginal UBIFS mount type, unlike the \u0027MS_RDONLY\u0027 flag.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2680d722bf2c5f75225dd9acb3ec9e5a9e2652f4",
      "tree": "af016ede5f300a33ddd3ad66a8c3c0e6bf05774e",
      "parents": [
        "8c893a5545ca772744376295690723dcb0b47d96"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Sep 17 16:44:28 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Sep 17 17:08:09 2010 +0300"
      },
      "message": "UBIFS: introduce new flag for RO due to errors\n\nThe R/O state may have various reasons:\n\n1. The UBI volume is R/O\n2. The FS is mounted R/O\n3. The FS switched to R/O mode because of an error\n\nHowever, in UBIFS we have only one variable which represents cases\n1 and 3 - \u0027c-\u003ero_media\u0027. Indeed, we set this to 1 if we switch to\nR/O mode due to an error, and then we test it in many places to\nmake sure that we stop writing as soon as the error happens.\n\nBut this is very unclean. One consequence of this, for example, is\nthat in \u0027ubifs_remount_fs()\u0027 we use \u0027c-\u003ero_media\u0027 to check whether\nwe are in R/O mode because on an error, and we print a message\nin this case. However, if we are in R/O mode because the media\nis R/O, our message is bogus.\n\nThis patch introduces new flag - \u0027c-\u003ero_error\u0027 which is set when\nwe switch to R/O mode because of an error. It also changes all\n\"if (c-\u003ero_media)\" checks to \"if (c-\u003ero_error)\" checks, because\nthis is what the checks actually mean. We do not need to check\nfor \u0027c-\u003ero_media\u0027 because if the UBI volume is in R/O mode, we\ndo not allow R/W mounting, and now writes can happen. This is\nguaranteed by VFS. But it is good to double-check this, so this\npatch also adds many \"ubifs_assert(!c-\u003ero_media)\" checks.\n\nIn the \u0027ubifs_remount_fs()\u0027 function this patch makes a bit more\nchanges - it fixes the error messages as well.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2c27c65ed0696f0b5df2dad2cf6462d72164d547",
      "tree": "7d9036e3dea98938f7fd7074366ee73929e9b2e5",
      "parents": [
        "db78b877f7744bec4a9d9f9e7d10da3931d7cd39"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:30:04 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:39 2010 -0400"
      },
      "message": "check ATTR_SIZE contraints in inode_change_ok\n\nMake sure we check the truncate constraints early on in -\u003esetattr by adding\nthose checks to inode_change_ok.  Also clean up and document inode_change_ok\nto make this obvious.\n\nAs a fallout we don\u0027t have to call inode_newsize_ok from simple_setsize and\nsimplify it down to a truncate_setsize which doesn\u0027t return an error.  This\nsimplifies a lot of setattr implementations and means we use truncate_setsize\nalmost everywhere.  Get rid of fat_setsize now that it\u0027s trivial and mark\next2_setsize static to make the calling convention obvious.\n\nKeep the inode_newsize_ok in vmtruncate for now as all callers need an\naudit for its removal anyway.\n\nNote: setattr code in ecryptfs doesn\u0027t call inode_change_ok at all and\nneeds a deeper audit, but that is left for later.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "15c6fd9786dfaab43547bf60df6fa63170fb64fc",
      "tree": "afd997b3402761e28b6c39f414fbd93c69fdcdce",
      "parents": [
        "7bb46a6734a7e1ad4beaecc11cae7ed3ff81d30f"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Thu May 27 01:05:34 2010 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:15:42 2010 -0400"
      },
      "message": "kill spurious reference to vmtruncate\n\nLots of filesystems calls vmtruncate despite not implementing the old\n-\u003etruncate method.  Switch them to use simple_setsize and add some\ncomments about the truncate code where it seems fitting.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ea8085910ef3dd4f3cad6845aaa2b580d39b115",
      "tree": "d9c1edb5906f943f7d70bfb4b65106e29772d379",
      "parents": [
        "cc967be54710d97c05229b2e5ba2d00df84ddd64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 26 17:53:25 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:05:02 2010 -0400"
      },
      "message": "drop unused dentry argument to -\u003efsync\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "a9185b41a4f84971b930c519f0c63bd450c4810d",
      "tree": "268cf4e206cca12fb9e1dd68984e7c190e465b46",
      "parents": [
        "26821ed40b4230259e770c9911180f38fcaa6f59"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Mar 05 09:21:37 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 13:25:52 2010 -0500"
      },
      "message": "pass writeback_control to -\u003ewrite_inode\n\nThis gives the filesystem more information about the writeback that\nis happening.  Trond requested this for the NFS unstable write handling,\nand other filesystems might benefit from this too by beeing able to\ndistinguish between the different callers in more detail.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "eaff8079d4f1016a12e34ab323737314f24127dd",
      "tree": "a3d9e00320c6195e55811d5247a521f99341a411",
      "parents": [
        "7a0ad10c367ab57c899d340372f37880cbe6ab52"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Dec 17 14:25:01 2009 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 17 11:03:25 2009 -0500"
      },
      "message": "kill I_LOCK\n\nAfter I_SYNC was split from I_LOCK the leftover is always used together with\nI_NEW and thus superflous.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "774888bcd646c7055ac69ad4fd0c0fff0827ee39",
      "tree": "7651125c8ba02bc64ba7507d0599c2e37bb159eb",
      "parents": [
        "9722324e65a017ea0ce39236a2f87c649bb7c39d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Sep 30 22:17:16 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Nov 24 08:18:55 2009 +0200"
      },
      "message": "UBIFS: remove manual O_SYNC handling\n\ngeneric_file_aio_write already calls into -\u003efsync to handle O_SYNC/O_DSYNC.\nRemove the duplicate call to ubifs_sync_wbufs_by_inode which is already\ncovered by ubifs_fsync.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "873a64c762f0c52cdf95dcee59bd416bbf9688e6",
      "tree": "02b0bde3595eb9f7f5b83d961e41504748a4e325",
      "parents": [
        "0dcd18e4073454daf591e7127247e32ec942b4f3"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 01 17:06:43 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Sep 10 12:06:47 2009 +0300"
      },
      "message": "UBIFS: amend commentaries\n\nThis patch amends and nicifies commentaries in file.c, as well as\nfixes some spelling problems.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e0724bf6e4a1f2e678d2b2aab01cae22e17862f0",
      "tree": "559a8fa8e7a92f8ae0e0a27d4e71f408fa7cec62",
      "parents": [
        "38d9aefb5ce8f26358b0d5cd933cfa9e267105b1",
        "de0975781a1a8bc92e07eb7681d10ef9bb5e6df9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 15:00:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 15:00:19 2009 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: fix recovery bug\n  UBIFS: add R/O compatibility\n  UBIFS: fix compiler warnings\n  UBIFS: fully sort GCed nodes\n  UBIFS: fix commentaries\n  UBIFS: introduce a helpful variable\n  UBIFS: use KERN_CONT\n  UBIFS: fix lprops committing bug\n  UBIFS: fix bogus assertion\n  UBIFS: fix bug where page is marked uptodate when out of space\n  UBIFS: amend key_hash return value\n  UBIFS: improve find function interface\n  UBIFS: list usage cleanup\n  UBIFS: fix dbg_chk_lpt_sz()\n"
    },
    {
      "commit": "c2ec175c39f62949438354f603f4aa170846aabb",
      "tree": "f2c9bf1bec2deabe2d3a5092405b027637b6ead3",
      "parents": [
        "c2fdf3a9b2d52842808a8e551b53b55dd9b45030"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Mar 31 15:23:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: page_mkwrite change prototype to match fault\n\nChange the page_mkwrite prototype to take a struct vm_fault, and return\nVM_FAULT_xxx flags.  There should be no functional change.\n\nThis makes it possible to return much more detailed error information to\nthe VM (and also can provide more information eg.  virtual_address to the\ndriver, which might be important in some special cases).\n\nThis is required for a subsequent fix.  And will also make it easier to\nmerge page_mkwrite() with fault() in future.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Felix Blyakher \u003cfelixb@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": "7d4e9ccb435e51e013e63abd340b4f496428139c",
      "tree": "c61d7f4b984cf67de137f8a8f821e1dc4da3fa50",
      "parents": [
        "fb1cd01a33ecb8a49d590c034ba146dff80c5597"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 20 19:11:12 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 20 19:11:12 2009 +0200"
      },
      "message": "UBIFS: fix commentaries\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "f55aa59106b66cd547c8f296e0b3430ad76554c5",
      "tree": "bcfbbf27c804ea19d10283d341602a0ef8c35c29",
      "parents": [
        "cb4f952db3a01a2d56eb17e0eb00ce99ae5f0f50"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Mon Feb 23 12:47:25 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sat Mar 14 16:46:33 2009 +0200"
      },
      "message": "UBIFS: fix bug where page is marked uptodate when out of space\n\nUBIFS fast path in write_begin may mark a page up to date\nand then discover that there may not be enough space to do\nthe write, and so fall back to a slow path.  The slow path\ntries harder, but may still find no space - leaving the page\nmarked up to date, when it is not.  This patch ensures that\nthe page is marked not up to date in that case.\n\nThe bug that this patch fixes becomes evident when the write\nis into a hole (sparse file) or is at the end of the file\nand a subsequent read is off the end of the file.  In both\ncases, the file system should return zeros but was instead\nreturning the page that had not been written because the\nfile system was out of space.\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "84abf972ccff5c13d10b672972949eba431a6e0e",
      "tree": "378ebf8a77fbc1f906fa8eee2472f8bd6d935772",
      "parents": [
        "e4d9b6cbfc98d696a28d2c24a3d49768695811ee"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jan 23 14:54:59 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 12:54:11 2009 +0200"
      },
      "message": "UBIFS: add re-mount debugging checks\n\nWe observe space corrupted accounting when re-mounting. So add some\ndebbugging checks to catch problems like this.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e8b815663b1bfd9c255af5176604ec0eafdf6ed7",
      "tree": "63eea164bed606905200177f18391238102bda40",
      "parents": [
        "dedb0d48a9d4d57086526b94a4b64da789a646e4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 15 17:43:23 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jan 18 14:05:08 2009 +0200"
      },
      "message": "UBIFS: constify operations\n\nMark super, file, and inode operation structcutes with \u0027const\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "54566b2c1594c2326a645a3551f9d989f7ba3c5e",
      "tree": "b373f3283fe5e197d0df29cd6b645c35adf1076c",
      "parents": [
        "e687d691cb3790d25e31c74f5941fd7c565e9df5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Jan 04 12:00:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "fs: symlink write_begin allocation context fix\n\nWith the write_begin/write_end aops, page_symlink was broken because it\ncould no longer pass a GFP_NOFS type mask into the point where the\nallocations happened.  They are done in write_begin, which would always\nassume that the filesystem can be entered from reclaim.  This bug could\ncause filesystem deadlocks.\n\nThe funny thing with having a gfp_t mask there is that it doesn\u0027t really\nallow the caller to arbitrarily tinker with the context in which it can be\ncalled.  It couldn\u0027t ever be GFP_ATOMIC, for example, because it needs to\ntake the page lock.  The only thing any callers care about is __GFP_FS\nanyway, so turn that into a single flag.\n\nAdd a new flag for write_begin, AOP_FLAG_NOFS.  Filesystems can now act on\nthis flag in their write_begin function.  Change __grab_cache_page to\naccept a nofs argument as well, to honour that flag (while we\u0027re there,\nchange the name to grab_cache_page_write_begin which is more instructive\nand does away with random leading underscores).\n\nThis is really a more flexible way to go in the end anyway -- if a\nfilesystem happens to want any extra allocations aside from the pagecache\nones in ints write_begin function, it may now use GFP_KERNEL (rather than\nGFP_NOFS) for common case allocations (eg.  ocfs2_alloc_write_ctxt, for a\nrandom example).\n\n[kosaki.motohiro@jp.fujitsu.com: fix ubifs]\n[kosaki.motohiro@jp.fujitsu.com: fix fuse]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Cleaned up the calling convention: just pass in the AOP flags\n  untouched to the grab_cache_page_write_begin() function.  That\n  just simplifies everybody, and may even allow future expansion of the\n  logic.   - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f92b982680e4b4149c559789a54e1e9db190752a",
      "tree": "fb24f6351be9f307d8f9001f226f8aa0ee71cfdc",
      "parents": [
        "6a4a9b438fe43397f4652853838f284cddd629b5"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Dec 28 11:34:26 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 31 14:13:25 2008 +0200"
      },
      "message": "UBIFS: fix checkpatch.pl warnings\n\nThese are mostly long lines and wrong indentation warning\nfixes. But also there are two volatile variables and\ncheckpatch.pl complains about them:\n\nWARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt\n+       volatile int gc_seq;\n\nWARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt\n+       volatile int gced_lnum;\n\nWell, we anyway use smp_wmb() for c-\u003egc_seq and c-\u003egced_lnum, so\nthese \u0027volatile\u0027 modifiers can be just dropped.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7bbe5b5aa6d1e38af6f1fc866efc0aa461d73f19",
      "tree": "f9cd48adda1b832c77a7cca63534a4fce2648546",
      "parents": [
        "995be04548f62c8e6b447410cd28b0666614b461"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Dec 09 11:02:51 2008 -0500"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Dec 23 12:19:14 2008 +0200"
      },
      "message": "UBIFS: use PAGE_CACHE_MASK correctly\n\nIt has high bits set, not low bits set as the UBIFS code\nassumed.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "3477d204658733aa3a87d3ae03b0327c1e599517",
      "tree": "1c9ba659f76c09a19b98f4bcbfac6fc67db43112",
      "parents": [
        "6c0c42cdfd73fb161417403d8d077cb136e10bbf"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Nov 19 11:53:15 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Nov 21 18:59:33 2008 +0200"
      },
      "message": "UBIFS: pre-allocate bulk-read buffer\n\nTo avoid memory allocation failure during bulk-read, pre-allocate\na bulk-read buffer, so that if there is only one bulk-reader at\na time, it would just use the pre-allocated buffer and would not\ndo any memory allocation. However, if there are more than 1 bulk-\nreader, then only one reader would use the pre-allocated buffer,\nwhile the other reader would allocate the buffer for itself.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "6c0c42cdfd73fb161417403d8d077cb136e10bbf",
      "tree": "343de0cb98df07295bc3e03eee083012ac12bae7",
      "parents": [
        "39ce81ce7168aa7226fb9f182c3a2b57060d0905"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Nov 18 20:20:05 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Nov 21 18:59:25 2008 +0200"
      },
      "message": "UBIFS: do not allocate too much\n\nBulk-read allocates 128KiB or more using kmalloc. The allocation\nstarts failing often when the memory gets fragmented. UBIFS still\nworks fine in this case, because it falls-back to standard\n(non-optimized) read method, though. This patch teaches bulk-read\nto allocate exactly the amount of memory it needs, instead of\nallocating 128KiB every time.\n\nThis patch is also a preparation to the further fix where we\u0027ll\nhave a pre-allocated bulk-read buffer as well. For example, now\nthe @bu object is prepared in \u0027ubifs_bulk_read()\u0027, so we could\npath either pre-allocated or allocated information to\n\u0027ubifs_do_bulk_read()\u0027 later. Or teaching \u0027ubifs_do_bulk_read()\u0027\nnot to allocate \u0027bu-\u003ebuf\u0027 if it is already there.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "39ce81ce7168aa7226fb9f182c3a2b57060d0905",
      "tree": "8b3c8ff8559c7d3243c0299cae6986aa21601c60",
      "parents": [
        "7e2d9bfa4eabee3e1919a40f20d2ef8b569bd07e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Nov 18 18:09:49 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Nov 21 18:59:16 2008 +0200"
      },
      "message": "UBIFS: do not print scary memory allocation warnings\n\nBulk-read allocates a lot of memory with \u0027kmalloc()\u0027, and when it\nis/gets fragmented \u0027kmalloc()\u0027 fails with a scarry warning. But\nbecause bulk-read is just an optimization, UBIFS keeps working fine.\nSupress the warning by passing __GFP_NOWARN option to \u0027kmalloc()\u0027.\n\nThis patch also introduces a macro for the magic 128KiB constant.\nThis is just neater.\n\nNote, this is not really fixes the problem we had, but just hides\nthe warnings. The further patches fix the problem.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "0ecb9529a4d47825778e7b0d226eb36019252a9d",
      "tree": "1d39f3ba19e63ab4a47171433898171eba5ee793",
      "parents": [
        "069782a1ee55105220e5ae2db448495dac267cb1"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Oct 24 10:52:57 2008 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Nov 06 11:06:19 2008 +0200"
      },
      "message": "UBIFS: endian handling fixes and annotations\n\nNoticed by sparse:\nfs/ubifs/file.c:75:2: warning: restricted __le64 degrades to integer\nfs/ubifs/file.c:629:4: warning: restricted __le64 degrades to integer\nfs/ubifs/dir.c:431:3: warning: restricted __le64 degrades to integer\n\nThis should be checked to ensure the ubifs_assert is working as\nintended, I\u0027ve done the suggested annotation in this patch.\n\nfs/ubifs/sb.c:298:6: warning: incorrect type in assignment (different base types)\nfs/ubifs/sb.c:298:6:    expected int [signed] [assigned] tmp\nfs/ubifs/sb.c:298:6:    got restricted __le64 [usertype] \u003cnoident\u003e\nfs/ubifs/sb.c:299:19: warning: incorrect type in assignment (different base types)\nfs/ubifs/sb.c:299:19:    expected restricted __le64 [usertype] atime_sec\nfs/ubifs/sb.c:299:19:    got int [signed] [assigned] tmp\nfs/ubifs/sb.c:300:19: warning: incorrect type in assignment (different base types)\nfs/ubifs/sb.c:300:19:    expected restricted __le64 [usertype] ctime_sec\nfs/ubifs/sb.c:300:19:    got int [signed] [assigned] tmp\nfs/ubifs/sb.c:301:19: warning: incorrect type in assignment (different base types)\nfs/ubifs/sb.c:301:19:    expected restricted __le64 [usertype] mtime_sec\nfs/ubifs/sb.c:301:19:    got int [signed] [assigned] tmp\n\nThis looks like a bugfix as your tmp was a u32 so there was truncation in\nthe atime, mtime, ctime value, probably not intentional, add a tmp_le64\nand use it here.\n\nfs/ubifs/key.h:348:9: warning: cast to restricted __le32\nfs/ubifs/key.h:348:9: warning: cast to restricted __le32\nfs/ubifs/key.h:419:9: warning: cast to restricted __le32\n\nRead from the annotated union member instead.\n\nfs/ubifs/recovery.c:175:13: warning: incorrect type in assignment (different base types)\nfs/ubifs/recovery.c:175:13:    expected unsigned int [unsigned] [usertype] save_flags\nfs/ubifs/recovery.c:175:13:    got restricted __le32 [usertype] flags\nfs/ubifs/recovery.c:186:13: warning: incorrect type in assignment (different base types)\nfs/ubifs/recovery.c:186:13:    expected restricted __le32 [usertype] flags\nfs/ubifs/recovery.c:186:13:    got unsigned int [unsigned] [usertype] save_flags\n\nDo byteshifting at compile time of the flag value.  Annotate the saved_flags\nas le32.\n\nfs/ubifs/debug.c:368:10: warning: cast to restricted __le32\nfs/ubifs/debug.c:368:10: warning: cast from restricted __le64\n\nShould be checked if the truncation was intentional, I\u0027ve changed the\nprintk to print the full width.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "5c0013c16bd2ee08ffef1a1365622556a57218f5",
      "tree": "65148d84c2c9a7d5f30c6e4c53db743ba795a30b",
      "parents": [
        "46773be497a05010a2873e9ad96d739fb352c1e4"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Fri Sep 12 10:34:51 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 30 11:12:59 2008 +0300"
      },
      "message": "UBIFS: fix bulk-read handling uptodate pages\n\nBulk-read skips uptodate pages but this was putting its\narray index out and causing it to treat subsequent pages\nas holes.\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\n"
    },
    {
      "commit": "ed382d5898ccfc3d7ba775be2f1596f6a1547935",
      "tree": "20738a804f51086e94f6c76c689b929582b7c415",
      "parents": [
        "2094c334fdebbcceddf21f97cb16b144707af56e"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Fri Sep 05 16:17:42 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 30 11:12:57 2008 +0300"
      },
      "message": "UBIFS: ensure data read beyond i_size is zeroed out correctly\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\n"
    },
    {
      "commit": "4793e7c5e1c88382ead18db5ca072bac54467318",
      "tree": "07e5e99d988b28fed07d5a01141169362c5a007d",
      "parents": [
        "a70948b564e9f6cb81115c606d46f5b74a77b7c2"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Tue Sep 02 16:29:46 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 30 11:12:56 2008 +0300"
      },
      "message": "UBIFS: add bulk-read facility\n\nSome flash media are capable of reading sequentially at faster rates.\nUBIFS bulk-read facility is designed to take advantage of that, by\nreading in one go consecutive data nodes that are also located\nconsecutively in the same LEB.\n\nRead speed on Arm platform with OneNAND goes from 17 MiB/s to\n19 MiB/s.\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\n"
    },
    {
      "commit": "04da11bfcf511544ae19e0a7e5f994b3237752ac",
      "tree": "8023d9cd338b2f0c7521df65df41880952310973",
      "parents": [
        "6a55617ed5d1aa62b850de2cf66f5ede2eef4825"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Aug 20 17:16:34 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Aug 21 16:48:52 2008 +0300"
      },
      "message": "UBIFS: fix zero-length truncations\n\nAlways allow truncations to zero, even if budgeting thinks there\nis no space. UBIFS reserves some space for deletions anyway.\n\nOtherwise, the following happans:\n1. create a file, and write as much as possible there, until ENOSPC\n2. truncate the file, which fails with ENOSPC, which is not good.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "22bc7fa8c5da09805edc6a6199ce81373b2c207d",
      "tree": "a8a93699030cea567f98e0aa4a396175a66418bf",
      "parents": [
        "0010f18afc5f8ba25e1d20e3165894c32a65af02"
      ],
      "author": {
        "name": "Zoltan Sogor",
        "email": "weth@inf.u-szeged.hu",
        "time": "Mon Jul 28 16:28:49 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Aug 13 11:38:43 2008 +0300"
      },
      "message": "UBIFS: support splice_write\n\nSigned-off-by: Zoltan Sogor \u003cweth@inf.u-szeged.hu\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "dab4b4d2f915a65022343012a795f4ae4ae7e83c",
      "tree": "13a1ec2c5f6b18781145bccddf2fb63017a1336b",
      "parents": [
        "547000da6412c45456ff2ff44a171d01027bd727"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jul 24 14:52:45 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Aug 13 11:35:16 2008 +0300"
      },
      "message": "UBIFS: align inode data to eight\n\nUBIFS aligns node lengths to 8, so budgeting has to do the\nsame. Well, direntry, inode, and page budgets are already\naligned, but not inode data budget (e.g., data in special\ndevices or symlinks). Do this for inode data as well.\nAlso, add corresponding debugging checks.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7d32c2bb143fa1ca3b0c420feb08a832d65395be",
      "tree": "2929bc914c8e70b2e14d451fa70c1c4273c24ac9",
      "parents": [
        "182854b46f9feb6f1b03abe747bb2beeebf2adb0"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jul 18 18:54:29 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Aug 13 11:20:07 2008 +0300"
      },
      "message": "UBIFS: improve debugging\n\n1. Print inode mode in some of debugging messages\n2. Add few more useful assertions\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "3f8206d496e9e9495afb1d4e70d29712b4d403c9",
      "tree": "5bedea1aff8b5e584fbf8497c80fcaccf9242d69",
      "parents": [
        "964bd183624c03680796b63b4ab97ee3905a806a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 03:46:43 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:42 2008 -0400"
      },
      "message": "[PATCH] get rid of indirect users of namei.h\n\nfs.h needs path.h, not namei.h; nfs_fs.h doesn\u0027t need it at all.\nSeveral places in the tree needed direct include.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d",
      "tree": "919debdd48aef9eee9ff0e8f465ef2649325b993",
      "parents": [
        "e56a99d5a42dcb91e622ae7a0289d8fb2ddabffb"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jul 14 19:08:37 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jul 15 17:35:15 2008 +0300"
      },
      "message": "UBIFS: add new flash file system\n\nThis is a new flash file system. See\nhttp://www.linux-mtd.infradead.org/doc/ubifs.html\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\n"
    }
  ]
}
