-
Vladimir Saveliev authored
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-list@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.piotrowski@gmail.com: kill #include "linux/config.h"] [akpm@linux-foundation.org: reiser4_drop_page: don't call remove_from_page_cache] [bunk@stusta.de: fs/reiser4/: possible cleanups] Signed-off-by: Vladimir Saveliev <vs@namesys.com> Signed-off-by: Hans Reiser <reiser@namesys.com> Signed-off-by: Edward Shishkin <edward@namesys.com> DESC reiser4: fix for drop-unused-semaphores.patch EDESC 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 <edward@namesys.com> Cc Jonathan Briggs <jbriggs@esoft.com> DESC reiser4-slab-allocators-remove-slab_debug_initial-flag EDESC Cc: Christoph Lameter <cl@linux-foundation.org>.com> DESC reiser4: use simple_prepare_write to zero page data EDESC 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.diller@gmail.com> Cc: Vladimir Saveliev <vs@namesys.com> Cc: Edward Shishkin <edward@namesys.com> DESC reiser4-fix EDESC DESC reiser4: use zero_user_page EDESC Use zero_user_page() instead of open-coding it. Signed-off-by: Nate Diller <nate.diller@gmail.com> Cc: Vladimir Saveliev <vs@namesys.com> Cc: Edward Shishkin <edward@namesys.com> DESC reiser4: remove typedefs EDESC . Reduce number of typedefs from 289 to 248 . Remove unused file plugin/file/invert.c . Update comments DESC reiser4: fix write_extent EDESC Prepared-by Ignatich <ignatich@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 <edward@namesys.com> DESC reiser4 make sync_inodes non-void EDESC Make reiser4_sync_inodes non-void Signed-off-by: Edward Shishkin <edward@namesys.com> DESC Reiser4: Drop 'size' argument from bio_endio and bi_end_io EDESC Reiser4: Drop 'size' argument from bio_endio and bi_end_io This patch pushes into Reiser4 the changes introduced by commit 6712ecf8: 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.riffard@free.fr> Acked-by: Jens Axboe <jens.axboe@oracle.com> Acked-by: Edward Shishkin <edward@namesys.com> DESC mm: clean up and kernelify shrinker registration EDESC 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 <rusty@rustcorp.com.au> Cc: Vladimir Saveliev <vs@namesys.com> Acked-by: Edward Shishkin <edward@namesys.com> DESC reiser4: fix NULL dereference in __mnt_is_readonly in ftruncate() EDESC Signed-off-by: Dave Hansen <haveblue@us.ibm.com> Cc: Edward Shishkin <edward@namesys.com> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC reiser4: fix extent2tail EDESC 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 <edward@namesys.com> DESC reiser4: fix read_tail EDESC Update hint when reading tails Signed-off-by: Edward Shishkin <edward@namesys.com> DESC reiser4: fix unix-file readpages filler EDESC 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 <edward@namesys.com> DESC reiser4: fix readpage_unix_file EDESC . 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 <edward@namesys.com> Cc: Zan Lynx <zlynx@acm.org> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC reiser4: fix for new aops patches EDESC Cc: Vladimir Saveliev <vs@namesys.com> Cc: Edward Shishkin <edward@namesys.com> DESC reiser4: do not allocate struct file on stack EDESC Do not allocate struct file on stack, pass the persistent one instead. Signed-off-by: Edward Shishkin <edward@namesys.com> Tested-by: Zan Lynx <zlynx@acm.org> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC git-block-vs-reiser4 EDESC Hope this is right. Hope you know what you're doing ;) Cc: Vladimir Saveliev <vs@namesys.com> Cc: Edward Shishkin <edward@namesys.com> Cc: Jens Axboe <jens.axboe@oracle.com> DESC reiser4: cryptcompress misc fixups EDESC . 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 <edward@namesys.com> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC reiser4: cryptcompress misc fixups-2 EDESC Check a file plugin id before manipulating with plugin-specific counter. Signed-off-by: Edward Shishkin <edward@namesys.com> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC fs/reiser4/plugin/: make 3 functions static EDESC 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 <bunk@kernel.org> Cc: Edward Shishkin <edward@namesys.com> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC reiser4: change error code base EDESC Change REISER4_ERROR_CODE_BASE to 10000 to not overlap real errnos Signed-off-by: Edward Shishkin <edward@namesys.com> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC reiser4: use lzo library functions EDESC . 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 <edward@namesys.com> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC fs/reiser4/plugin/file/cryptcompress.c: kmalloc + memset conversion to kzalloc EDESC 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.kozlowski@tuxland.pl> Cc: Edward Shishkin <edward@namesys.com> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC reiser4: kmalloc + memset conversion to kzalloc EDESC Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Cc: Edward Shishkin <edward@namesys.com> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC fs/reiser4/init_super.c: kmalloc + memset conversion to kzalloc EDESC fs/reiser4/init_super.c | 19283 -> 19246 (-37 bytes) fs/reiser4/init_super.o | 155348 -> 155152 (-196 bytes) Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Cc: Edward Shishkin <edward@namesys.com> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC fs/reiser4/plugin/inode_ops_rename.c: kmalloc + memset conversion to kzalloc EDESC 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.kozlowski@tuxland.pl> Cc: Edward Shishkin <edward@namesys.com> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC fs/reiser4/ktxnmgrd.c: kmalloc + memset conversion to kzalloc EDESC fs/reiser4/ktxnmgrd.c | 5314 -> 5277 (-37 bytes) fs/reiser4/ktxnmgrd.o | 131624 -> 131496 (-128 bytes) Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Cc: Edward Shishkin <edward@namesys.com> Cc: "Vladimir V. Saveliev" <vs@namesys.com> DESC Use helpers to obtain task pid in printks EDESC 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 <xemul@openvz.org> DESC Subject: [PATCH 1/2] remove asm/bitops.h includes EDESC 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 <bunk@kernel.org> Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
76950d31