Author: arekm Date: Sat Dec 5 19:04:21 2009 GMT Module: packages Tag: HEAD ---- Log message: - updated based on patches from http://userweb.kernel.org/~akpm/mmotm/broken-out/
---- Files affected: packages/kernel: kernel-reiser4.patch (1.8 -> 1.9) ---- Diffs: ================================================================ Index: packages/kernel/kernel-reiser4.patch diff -u packages/kernel/kernel-reiser4.patch:1.8 packages/kernel/kernel-reiser4.patch:1.9 --- packages/kernel/kernel-reiser4.patch:1.8 Fri Dec 4 21:55:09 2009 +++ packages/kernel/kernel-reiser4.patch Sat Dec 5 20:04:15 2009 @@ -1,15 +1,1107 @@ -diff -urN linux-2.6.28.orig/Documentation/Changes linux-2.6.28/Documentation/Changes ---- linux-2.6.28.orig/Documentation/Changes 2008-07-14 01:51:29.000000000 +0400 -+++ linux-2.6.28/Documentation/Changes 2008-12-26 15:03:53.000000000 +0300 -@@ -36,6 +36,7 @@ - o e2fsprogs 1.29 # tune2fs +From: Artem Bityutskiy <dedek...@yandex.ru> + +This patch adds new operation to struct super_operations - sync_inodes, +generic implementaion and changes fs-writeback.c:sync_sb_inodes() to call +filesystem's sync_inodes if it is defined or generic implementaion otherwise. +This new operation allows filesystem to decide itself what to flush. + +Reiser4 flushes dirty pages on basic of atoms, not of inodes. sync_sb_inodes +used to call address space flushing method (writepages) for every dirty inode. + For reiser4 it caused having to commit atoms unnecessarily often. This +turned into substantial slowdown. Having this method helped to fix that +problem. + +akpm: this patch needs to be chnaged to remove the `sb' arg. + +Signed-off-by: Artem Bityutskiy <artem.bityuts...@nokia.com> +Cc: Edward Shishkin <edward.shish...@gmail.com> +Signed-off-by: Andrew Morton <a...@linux-foundation.org> +--- + + fs/fs-writeback.c | 5 ++++- + include/linux/fs.h | 2 ++ + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff -puN fs/fs-writeback.c~reiser4-vfs-add-super_operationssync_inodes-2 fs/fs-writeback.c +--- a/fs/fs-writeback.c~reiser4-vfs-add-super_operationssync_inodes-2 ++++ a/fs/fs-writeback.c +@@ -1221,7 +1221,10 @@ EXPORT_SYMBOL(writeback_inodes_sb); + */ + void sync_inodes_sb(struct super_block *sb) + { +- bdi_sync_writeback(sb->s_bdi, sb); ++ if (sb->s_op->sync_inodes) ++ sb->s_op->sync_inodes(sb, NULL); ++ else ++ bdi_sync_writeback(sb->s_bdi, sb); + wait_sb_inodes(sb); + } + EXPORT_SYMBOL(sync_inodes_sb); +diff -puN include/linux/fs.h~reiser4-vfs-add-super_operationssync_inodes-2 include/linux/fs.h +--- a/include/linux/fs.h~reiser4-vfs-add-super_operationssync_inodes-2 ++++ a/include/linux/fs.h +@@ -1568,6 +1568,8 @@ struct super_operations { + void (*clear_inode) (struct inode *); + void (*umount_begin) (struct super_block *); + ++ void (*sync_inodes)(struct super_block *sb, ++ struct writeback_control *wbc); + int (*show_options)(struct seq_file *, struct vfsmount *); + int (*show_stats)(struct seq_file *, struct vfsmount *); + #ifdef CONFIG_QUOTA +_ +From: Hans Reiser <rei...@namesys.com> + +Reiser4 is trying to add/remove pages to/from address space, so it needs +add_to_page_cache_lru to be EXPORT_SYMBOL-ed. + +[b...@stusta.de: unexport {,__}remove_from_page_cache] +Signed-off-by: Adrian Bunk <b...@stusta.de> +Signed-off-by: Andrew Morton <a...@linux-foundation.org> +--- + + mm/filemap.c | 1 + + 1 file changed, 1 insertion(+) + +diff -puN mm/filemap.c~reiser4-export-remove_from_page_cache mm/filemap.c +--- a/mm/filemap.c~reiser4-export-remove_from_page_cache ++++ a/mm/filemap.c +@@ -779,6 +779,7 @@ repeat: + rcu_read_unlock(); + return ret; + } ++EXPORT_SYMBOL(add_to_page_cache_lru); + + /** + * find_get_pages_contig - gang contiguous pagecache lookup +_ +From: Andrew Morton <a...@linux-foundation.org> + +merge glitch + +Reported-by: Randy Dunlap <randy.dun...@oracle.com> +Signed-off-by: Andrew Morton <a...@linux-foundation.org> +--- + + mm/filemap.c | 1 - + 1 file changed, 1 deletion(-) + +diff -puN mm/filemap.c~reiser4-export-remove_from_page_cache-fix mm/filemap.c +--- a/mm/filemap.c~reiser4-export-remove_from_page_cache-fix ++++ a/mm/filemap.c +@@ -779,7 +779,6 @@ repeat: + rcu_read_unlock(); + return ret; + } +-EXPORT_SYMBOL(add_to_page_cache_lru); + + /** + * find_get_pages_contig - gang contiguous pagecache lookup +_ +Signed-off-by: Andrew Morton <a...@linux-foundation.org> +--- + + mm/filemap.c | 1 + + 1 file changed, 1 insertion(+) + +diff -puN mm/filemap.c~reiser4-export-find_get_pages mm/filemap.c +--- a/mm/filemap.c~reiser4-export-find_get_pages ++++ a/mm/filemap.c +@@ -779,6 +779,7 @@ repeat: + rcu_read_unlock(); + return ret; + } ++EXPORT_SYMBOL(find_get_pages); + + /** + * find_get_pages_contig - gang contiguous pagecache lookup +_ +From: Vladimir Saveliev <v...@namesys.com> + +This is the main reiserfs4 filesystem. + +Q&A wrt this patch: + +- A really short guide to how to get up and running with this filesystem. + + Reiser4 is a file system based on dancing tree algorithms, and + is described at http://www.namesys.com. One should be able to get it + up and running just like any of the other filesystems supported by + Linux. Configure it to be compiled either builtin or as a module. + Create reiser4 filesystem with mkfs.reiser4, mount and use it. More + detailed info can be found at + http://thebsh.namesys.com/snapshots/LATEST/READ.ME. + +- The direct URL which people use to obtain the mkfs tool for this + filesystem. Also fsck and anything else. + + Reiser4 userland tools can be obtained at + ftp://ftp.namesys.com/pub/reiser4progs. + ftp://ftp.namesys.com/pub/reiser4progs/README contains detailed + instructions on how to compile and install these tools. Also all + reiser4 progs have man pages. + +- Any known shortcomings, caveats, etc. + + Reiser4 has been tested on i386 yet only. Quota support is + not ready yet. Should be ready soon. Reiser4 was tested extensively, + and we got to where the mailing list was not able to hit any bugs, but + then we told people that, got an order of magnitude increase in users, + and they are able to hit bugs that we are working on now. + + Reiser's Law of Software Engineering: Each order of magnitude + increase in users finds more bugs, in a quantity equal to the previous + order of magnitude increase in users. Success for software developers + is measured by how long the frustration lasts. + + Only the very core functionality is working. Exotic plugins, + an API for multiple operation transactions and accessing multiple + small files in one syscall, compression, inheritance, all have been + postponed until after the core functionality is shipped. The + compression plugin needs a code review before anyone should use it. + +- A statement on compatibility with reiserfs3 filesytems. + + To upgrade from reiserfs V3 to V4, use tar, or sponsor us to + write a convertfs. + +- Bear in mind that people will immediately benchmark this filesytem, and + first impressions count. Now is your chance to communicate any tuning + guidelines, mount options or whatever which you'd like people to understand + BEFORE they start publishing benchmark info. + + Reiser4 is not tuned for fsync/sync/O_SYNC performance yet. + + If you see results that are much different from those at + www.namesys.com/benchmarks.html, let us know. If you see performance + characteristics that don't quite make sense, email + reiserfs-l...@namesys.com, such things are always of interest. + + reiser4 is not tuned for mmaping and dirtying more than + physical ram like IOzone does. This is quite different in its code + path from writing and dirtying more than physical ram. There are + those who think that what IOZone does is rarely done by real programs, + and therefor we should not bother to optimize what it does. All I + know is, this month we are not optimized for it. + + Please consider its space savings when you benchmark it also. + +[michal.k.k.piotrow...@gmail.com: kill #include "linux/config.h"] +[a...@linux-foundation.org: reiser4_drop_page: don't call remove_from_page_cache] +[b...@stusta.de: fs/reiser4/: possible cleanups] +Signed-off-by: Vladimir Saveliev <v...@namesys.com> +Signed-off-by: Hans Reiser <rei...@namesys.com> +Signed-off-by: Edward Shishkin <edw...@namesys.com> +DESC +reiser4: fix for drop-unused-semaphores.patch +EDESC +From: Edward Shishkin <edw...@namesys.com> + +Wait for tail conversion completion when acquiring exclusive access by +. mmap_unix_file() +. setattr_unix_file() +. release_unix_file() +Update comments. + +Signed-off-by: Edward Shishkin <edw...@namesys.com> +Cc Jonathan Briggs <jbri...@esoft.com> +DESC +reiser4-slab-allocators-remove-slab_debug_initial-flag +EDESC +From: Andrew Morton <a...@linux-foundation.org> + +Cc: Christoph Lameter <c...@linux-foundation.org>.com> +DESC +reiser4: use simple_prepare_write to zero page data +EDESC +From: Nate Diller <nate.dil...@gmail.com> + +It's common for file systems to need to zero data on either side of a +write, if a page is not Uptodate during prepare_write. It just so happens +that simple_prepare_write() in libfs.c does exactly that, so we can avoid +duplication and just call that function to zero page data. + +Signed-off-by: Nate Diller <nate.dil...@gmail.com> +Cc: Vladimir Saveliev <v...@namesys.com> +Cc: Edward Shishkin <edw...@namesys.com> +DESC +reiser4-fix +EDESC +From: Andrew Morton <a...@linux-foundation.org> + + +DESC +reiser4: use zero_user_page +EDESC +From: Nate Diller <nate.dil...@gmail.com> + +Use zero_user_page() instead of open-coding it. + +Signed-off-by: Nate Diller <nate.dil...@gmail.com> +Cc: Vladimir Saveliev <v...@namesys.com> +Cc: Edward Shishkin <edw...@namesys.com> +DESC +reiser4: remove typedefs +EDESC +From: Edward Shishkin <edw...@namesys.com> + +. Reduce number of typedefs from 289 to 248 +. Remove unused file plugin/file/invert.c +. Update comments + +DESC +reiser4: fix write_extent +EDESC +From: Edward Shishkin <edw...@namesys.com> + +Prepared-by Ignatich <ignat...@gmail.com> + +Fix reiser4_write_extent(): + 1) handling incomplete writes missed in reiser4-temp-fix.patch + 2) bugs in the case of returned errors + +Signed-off-by: Edward Shishkin <edw...@namesys.com> +DESC +reiser4 make sync_inodes non-void +EDESC +From: Edward Shishkin <edw...@namesys.com> + +Make reiser4_sync_inodes non-void + +Signed-off-by: Edward Shishkin <edw...@namesys.com> +DESC +Reiser4: Drop 'size' argument from bio_endio and bi_end_io +EDESC +From: Laurent Riffard <laurent.riff...@free.fr> + +Reiser4: Drop 'size' argument from bio_endio and bi_end_io + +This patch pushes into Reiser4 the changes introduced by +commit 6712ecf8f648118c3363c142196418f89a510b90: + + As bi_end_io is only called once when the request is complete, + the 'size' argument is now redundant. Remove it. + + Now there is no need for bio_endio to subtract the size completed + from bi_size. So don't do that either. + + While we are at it, change bi_end_io to return void. + +Signed-off-by: Laurent Riffard <laurent.riff...@free.fr> +Acked-by: Jens Axboe <jens.ax...@oracle.com> +Acked-by: Edward Shishkin <edw...@namesys.com> +DESC +mm: clean up and kernelify shrinker registration +EDESC +From: Rusty Russell <ru...@rustcorp.com.au> + +I can never remember what the function to register to receive VM pressure +is called. I have to trace down from __alloc_pages() to find it. + +It's called "set_shrinker()", and it needs Your Help. + +1) Don't hide struct shrinker. It contains no magic. +2) Don't allocate "struct shrinker". It's not helpful. +3) Call them "register_shrinker" and "unregister_shrinker". +4) Call the function "shrink" not "shrinker". +5) Reduce the 17 lines of waffly comments to 13, but document it properly. + +The comment in reiser4 makes me a little queasy. + +Signed-off-by: Rusty Russell <ru...@rustcorp.com.au> +Cc: Vladimir Saveliev <v...@namesys.com> +Acked-by: Edward Shishkin <edw...@namesys.com> +DESC +reiser4: fix NULL dereference in __mnt_is_readonly in ftruncate() +EDESC +From: Dave Hansen <haveb...@us.ibm.com> + +Signed-off-by: Dave Hansen <haveb...@us.ibm.com> +Cc: Edward Shishkin <edw...@namesys.com> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +reiser4: fix extent2tail +EDESC +From: Edward Shishkin <edw...@namesys.com> + +Fixed bug in extent2tail conversion. + +Bug description: +when converting partially converted file +(with flag REISER4_PART_MIXED installed) +reiser4_cut_tree() starts to cut old metatada +from wrong offset. Result is data corruption. + +Signed-off-by: Edward Shishkin <edw...@namesys.com> +DESC +reiser4: fix read_tail +EDESC +From: Edward Shishkin <edw...@namesys.com> + +Update hint when reading tails + +Signed-off-by: Edward Shishkin <edw...@namesys.com> +DESC +reiser4: fix unix-file readpages filler +EDESC +From: Edward Shishkin <edw...@namesys.com> + +Protect page (via incrementing page count) from being reclaimed when looking +for extent pointer in unix-file specific readpages filler. + +Signed-off-by: Edward Shishkin <edw...@namesys.com> +DESC +reiser4: fix readpage_unix_file +EDESC +From: Edward Shishkin <edw...@namesys.com> + +. If nominated (by VFS) page is out of file size, then fill it + by zeros instead of returning -EINVAL (this prevents returning + an unexpected error (-EINVAL) by some apps that don't check + file size). + +. Check if the page became uptodate while it was being unlocked. + +Signed-off-by: Edward Shishkin <edw...@namesys.com> +Cc: Zan Lynx <zl...@acm.org> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +reiser4: fix for new aops patches +EDESC +From: Nick Piggin <npig...@suse.de> + +Cc: Vladimir Saveliev <v...@namesys.com> +Cc: Edward Shishkin <edw...@namesys.com> +DESC +reiser4: do not allocate struct file on stack +EDESC +From: Edward Shishkin <edw...@namesys.com> + +Do not allocate struct file on stack, pass the persistent one instead. + +Signed-off-by: Edward Shishkin <edw...@namesys.com> +Tested-by: Zan Lynx <zl...@acm.org> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +git-block-vs-reiser4 +EDESC +From: Andrew Morton <a...@linux-foundation.org> + +Hope this is right. + +Hope you know what you're doing ;) + +Cc: Vladimir Saveliev <v...@namesys.com> +Cc: Edward Shishkin <edw...@namesys.com> +Cc: Jens Axboe <jens.ax...@oracle.com> +DESC +reiser4: cryptcompress misc fixups +EDESC +From: Edward Shishkin <edw...@namesys.com> + +. Fix a race (reproducible by fsx + sync (1)) between + checkin_page_cluster operations: serialize them via special per-inode + checkin_mutex (usual i_mutex is not suitable for this purpose, as + ->writepages() also calls checkin_page_cluster(); + +. Add comments for checkin/checkout technique for synchronization of + primary and secondary caches with proof of correctness; + +. Fix missed right neighbor when updating disk clusters by + handle_pos_on_leaf() during squalloc (should use upper levels to get + expected non-connected neighbor); + +. Resolve a race between read and truncate (when read finds partially + truncated and, hence, unrecoverable disk cluster) via keeping a track of + leftmost truncated disk clusters in cryptcompress-specific part of inode; + +. Introduce size translators and size modulators for + common needs; + +. Update comments; + +. Rename badly sounding function names; + +. Fix coding style; + +. Add my part of credits. + +Signed-off-by: Edward Shishkin <edw...@namesys.com> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +reiser4: cryptcompress misc fixups-2 +EDESC +From: Edward Shishkin <edw...@namesys.com> + +Check a file plugin id before manipulating with plugin-specific counter. + +Signed-off-by: Edward Shishkin <edw...@namesys.com> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +fs/reiser4/plugin/: make 3 functions static +EDESC +From: Adrian Bunk <b...@kernel.org> + +This patch makes the following needlessly global functions static: +- file/cryptcompress.c: __put_page_cluster() +- file/cryptcompress.c: put_hint_cluster() +- item/ctail.c: ctail_read_disk_cluster() + +Signed-off-by: Adrian Bunk <b...@kernel.org> +Cc: Edward Shishkin <edw...@namesys.com> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +reiser4: change error code base +EDESC +From: Edward Shishkin <edw...@namesys.com> + +Change REISER4_ERROR_CODE_BASE to 10000 to not overlap real errnos + +Signed-off-by: Edward Shishkin <edw...@namesys.com> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +reiser4: use lzo library functions +EDESC +From: Edward Shishkin <edw...@namesys.com> + +. Convert Reiser4 to use lzo implementation in lib/lzo/ instead of + including its own copy of minilzo; +. Do not set zeros to workmem region. + +Signed-off-by: Edward Shishkin <edw...@namesys.com> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +fs/reiser4/plugin/file/cryptcompress.c: kmalloc + memset conversion to kzalloc +EDESC +From: Mariusz Kozlowski <m.kozlow...@tuxland.pl> + + fs/reiser4/plugin/file/cryptcompress.c | 101386 -> 101352 (-34 bytes) + fs/reiser4/plugin/file/cryptcompress.o | 456784 -> 456644 (-140 bytes) + +Signed-off-by: Mariusz Kozlowski <m.kozlow...@tuxland.pl> +Cc: Edward Shishkin <edw...@namesys.com> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +reiser4: kmalloc + memset conversion to kzalloc +EDESC +From: Mariusz Kozlowski <m.kozlow...@tuxland.pl> + +Signed-off-by: Mariusz Kozlowski <m.kozlow...@tuxland.pl> +Cc: Edward Shishkin <edw...@namesys.com> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +fs/reiser4/init_super.c: kmalloc + memset conversion to kzalloc +EDESC +From: Mariusz Kozlowski <m.kozlow...@tuxland.pl> + + fs/reiser4/init_super.c | 19283 -> 19246 (-37 bytes) + fs/reiser4/init_super.o | 155348 -> 155152 (-196 bytes) + +Signed-off-by: Mariusz Kozlowski <m.kozlow...@tuxland.pl> +Cc: Edward Shishkin <edw...@namesys.com> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +fs/reiser4/plugin/inode_ops_rename.c: kmalloc + memset conversion to kzalloc +EDESC +From: Mariusz Kozlowski <m.kozlow...@tuxland.pl> + + fs/reiser4/plugin/inode_ops_rename.c | 28474 -> 28344 (-130 bytes) + fs/reiser4/plugin/inode_ops_rename.o | 142600 -> 142476 (-124 bytes) + +Signed-off-by: Mariusz Kozlowski <m.kozlow...@tuxland.pl> +Cc: Edward Shishkin <edw...@namesys.com> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +fs/reiser4/ktxnmgrd.c: kmalloc + memset conversion to kzalloc +EDESC +From: Mariusz Kozlowski <m.kozlow...@tuxland.pl> + + fs/reiser4/ktxnmgrd.c | 5314 -> 5277 (-37 bytes) + fs/reiser4/ktxnmgrd.o | 131624 -> 131496 (-128 bytes) + +Signed-off-by: Mariusz Kozlowski <m.kozlow...@tuxland.pl> +Cc: Edward Shishkin <edw...@namesys.com> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +Use helpers to obtain task pid in printks +EDESC +From: Pavel Emelyanov <xe...@openvz.org> + +The task_struct->pid member is going to be deprecated, so start +using the helpers (task_pid_nr/task_pid_vnr/task_pid_nr_ns) in +the kernel. + +The first thing to start with is the pid, printed to dmesg - in +this case we may safely use task_pid_nr(). Besides, printks produce +more (much more) than a half of all the explicit pid usage. + +Signed-off-by: Pavel Emelyanov <xe...@openvz.org> +DESC +Subject: [PATCH 1/2] remove asm/bitops.h includes +EDESC +From: Jiri Slaby <jirisl...@gmail.com> + +remove asm/bitops.h includes + +including asm/bitops directly may cause compile errors. don't include it +and include linux/bitops instead. next patch will deny including asm header +directly. + +Cc: Adrian Bunk <b...@kernel.org> +Signed-off-by: Jiri Slaby <jirisl...@gmail.com> + +--- +commit 3c05eef3d0a98065323d7d6d9a78e0985eba4b10 +tree cb9691832992f570b0363dd568f6fa3d2c81e3f5 +parent 132bb039c741d00f066e7501e3613d2d20bf0595 +author Jiri Slaby <jirisl...@gmail.com> Tue, 04 Sep 2007 21:01:35 +0200 +committer Jiri Slaby <jirisl...@gmail.com> Tue, 04 Sep 2007 21:01:35 +0200 + +index 7ad84ea..32afaa3 100644 +DESC +git-nfsd-broke-reiser4 +EDESC +From: Andrew Morton <a...@linux-foundation.org> + +fs/reiser4/export_ops.c: In function 'reiser4_decode_fh': +fs/reiser4/export_ops.c:96: error: 'const struct export_operations' has no member named 'find_exported_dentry' +fs/reiser4/export_ops.c:96: warning: type defaults to 'int' in declaration of 'fn' +fs/reiser4/export_ops.c:98: error: 'const struct export_operations' has no member named 'find_exported_dentry' +fs/reiser4/export_ops.c:99: warning: comparison between pointer and integer +fs/reiser4/export_ops.c:101: error: called object 'fn' is not a function +fs/reiser4/export_ops.c: At top level: +fs/reiser4/export_ops.c:282: error: unknown field 'decode_fh' specified in initializer +fs/reiser4/export_ops.c:282: warning: initialization from incompatible pointer type +fs/reiser4/export_ops.c:284: error: unknown field 'get_dentry' specified in initializer +fs/reiser4/export_ops.c:285: warning: excess elements in struct initializer +fs/reiser4/export_ops.c:285: warning: (near initialization for 'reiser4_export_operations') + +help! + +Cc: J. Bruce Fields <bfie...@citi.umich.edu> +Cc: Edward Shishkin <edw...@namesys.com> +Cc: "Vladimir V. Saveliev" <v...@namesys.com> +DESC +slab-api-remove-useless-ctor-parameter-and-reorder-parameters-vs-reiser4 +EDESC <<Diff was trimmed, longer than 597 lines>> ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-reiser4.patch?r1=1.8&r2=1.9&f=u _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit