Re: Possible interference between reiser4 and usb-storage?

2006-12-02 Thread Clemens Eisserer

Hi again,


I would recommend to use on-the-fly conversion to unix-file plugin. It
will reduce
memory usage for incompressible files. You will need to reformat your
root partition.
Use "mkfs.reiser4 -o create=ccreg40,compressMode=conv /dev/xxx" to
enable this.
But first rebuild kernel with the attached patch. This feature is
relatively new, so it
would be better to have a backup of your root partition and update it
from time to time.


Thanks a lot ... I'll give it a try soon when I'll get my new laptop.
Congratulations to reiser4's stability - I ever encountered a single
stability or data corruption problem.

However lately I deleted about 8 700mb files (mpg) and my laptop was
busy for about 5min. I deleted it using konqueror - do you have an
idea why deleting such large files is that slow?

Thank you in advnace, lg Clemens


[PATCH 10/10] reiser4-generic_file_read-fix

2006-12-02 Thread Laurent Riffard
From: Edward Shishkin <[EMAIL PROTECTED]>

Use do_sync_read() instead of generic_file_read()
---
 fs/reiser4/plugin/file/cryptcompress.c |2 +-
 fs/reiser4/plugin/object.c |1 +
 2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/fs/reiser4/plugin/file/cryptcompress.c 
b/fs/reiser4/plugin/file/cryptcompress.c
index b587933..64137dc 100644
--- a/fs/reiser4/plugin/file/cryptcompress.c
+++ b/fs/reiser4/plugin/file/cryptcompress.c
@@ -2883,7 +2883,7 @@ ssize_t read_cryptcompress(struct file * file, char 
__user *buf, size_t size,
down_read(&info->lock);
LOCK_CNT_INC(inode_sem_r);
 
-   result = generic_file_read(file, buf, size, off);
+   result = do_sync_read(file, buf, size, off);
 
up_read(&info->lock);
LOCK_CNT_DEC(inode_sem_r);
diff --git a/fs/reiser4/plugin/object.c b/fs/reiser4/plugin/object.c
index a57ce06..9f11dd6 100644
--- a/fs/reiser4/plugin/object.c
+++ b/fs/reiser4/plugin/object.c
@@ -305,6 +305,7 @@ file_plugin file_plugins[LAST_FILE_PLUGIN_ID] = {
.llseek = generic_file_llseek,
.read = read_cryptcompress,
.write = write_cryptcompress,
+   .aio_read = generic_file_aio_read,
.mmap = mmap_cryptcompress,
.release = release_cryptcompress,
.fsync = sync_common,
-- 
1.4.4.1.gaed4



[PATCH 2/10] Reiser4: cometics changes in mm/filemap.c.

2006-12-02 Thread Laurent Riffard
This patch moves some EXPORT_SYMOLs near the functions definition.
---
 mm/filemap.c |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/mm/filemap.c b/mm/filemap.c
index ffe6dcc..c117b52 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -467,6 +467,7 @@ int add_to_page_cache_lru(struct page *page, struct 
address_space *mapping,
lru_cache_add(page);
return ret;
 }
+EXPORT_SYMBOL(add_to_page_cache_lru);
 
 #ifdef CONFIG_NUMA
 struct page *__page_cache_alloc(gfp_t gfp)
@@ -740,7 +741,7 @@ unsigned find_get_pages(struct address_space *mapping, 
pgoff_t start,
read_unlock_irq(&mapping->tree_lock);
return ret;
 }
-EXPORT_SYMBOL(add_to_page_cache_lru);
+EXPORT_SYMBOL(find_get_pages);
 
 /**
  * find_get_pages_contig - gang contiguous pagecache lookup
@@ -801,7 +802,7 @@ unsigned find_get_pages_tag(struct address_space *mapping, 
pgoff_t *index,
read_unlock_irq(&mapping->tree_lock);
return ret;
 }
-EXPORT_SYMBOL(find_get_pages);
+EXPORT_SYMBOL(find_get_pages_tag);
 
 /**
  * grab_cache_page_nowait - returns locked page at given index in given cache
@@ -859,7 +860,6 @@ static void shrink_readahead_size_eio(struct file *filp,
 
ra->ra_pages /= 4;
 }
-EXPORT_SYMBOL(find_get_pages_tag);
 
 /**
  * do_generic_mapping_read - generic file read routine
-- 
1.4.4.1.gaed4



[PATCH 6/10] Reiser4: fix calls to kmem_cache_destroy

2006-12-02 Thread Laurent Riffard
Since Linux v2.6.19-rc1, kmem_cache_destroy() returns void because there
is very little filesystem driver code can do upon failed
kmem_cache_destroy().

This patch updates Reiser4 code to reflect this change. BTW, we do not
test anymore for null argument since kmem_cache_destroy does this check.
---
 fs/reiser4/super_ops.c |6 +-
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/fs/reiser4/super_ops.c b/fs/reiser4/super_ops.c
index 0f39702..04fa72d 100644
--- a/fs/reiser4/super_ops.c
+++ b/fs/reiser4/super_ops.c
@@ -589,11 +589,7 @@ static struct file_system_type reiser4_fs_type = {
 
 void destroy_reiser4_cache(kmem_cache_t **cachep)
 {
-   int result;
-
-   BUG_ON(*cachep == NULL);
-   result = kmem_cache_destroy(*cachep);
-   BUG_ON(result != 0);
+   kmem_cache_destroy(*cachep);
*cachep = NULL;
 }
 
-- 
1.4.4.1.gaed4



Reiser4 for 2.6.19

2006-12-02 Thread Laurent Riffard
Hi,

There is 10 patches in this series, first one is "Reiser4 for 2.6.18
version 3". It's made up from the last Namesys Reiser4 patch for vanilla
kernel
(http://ftp.namesys.com/pub/reiser4-for-2.6/2.6.18/reiser4-for-2.6.18-3.patch.gz),
updated to apply cleanly on top of 2.6.19 kernel. One can alternatively
apply the original patch from Namesys (reiser4-for-2.6.18-3.patch.gz) on
top of 2.6.19 kernel, it will successfully apply with some oddities.

The 9 next patches are compile-fixes for 2.6.19 or bug-fixes I picked up from
reiserfs mailing-list.

Andrew Wade (3):
  Reiser4: fix use after free in jrelse_tail
  Reiser4: release d_ref
  Reiser4: release d_ref (fix)

Edward Shishkin (2):
  Reiser4 for 2.6.18 version 3
  reiser4-generic_file_read-fix

Laurent Riffard (5):
  Reiser4: cometics changes in mm/filemap.c.
  Reiser4: fix calls to kmem_cache_destroy
  Reiser4: Replace inode.u.generic_ip with inode.i_private
  Reiser4: inode.i_blksize suppression
  Reiser4: remove unnecessary config.h includes.

The whole series is available as in a single patch:
http://laurent.riffard.free.fr/reiser4/reiser4-for-2.6.19.patch.gz.

I'm not a filesystem guru, nor I'm affiliated with Namesys. These
patches just suit my needs. It works for me and I hope it will help
somebody else. 

~~
laurent 



[PATCH 8/10] Reiser4: inode.i_blksize suppression

2006-12-02 Thread Laurent Riffard
This patch updates the reiser4 code to reflect the suppression of the
inode.i_blksize field (see commit
ba52de123d454b57369f291348266d86f4b35070).
---
 fs/reiser4/plugin/item/static_stat.c |2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/fs/reiser4/plugin/item/static_stat.c 
b/fs/reiser4/plugin/item/static_stat.c
index 0ef01e6..f53a5aa 100644
--- a/fs/reiser4/plugin/item/static_stat.c
+++ b/fs/reiser4/plugin/item/static_stat.c
@@ -168,8 +168,6 @@ int init_inode_static_sd(struct inode *inode /* object 
being processed */ ,
break;
}
state->extmask = bigmask;
-   /* common initialisations */
-   inode->i_blksize = get_super_private(inode->i_sb)->optimal_io_size;
if (len - (bit / 16 * sizeof(d16)) > 0) {
/* alignment in save_len_static_sd() is taken into account
   -edward */
-- 
1.4.4.1.gaed4



[PATCH 7/10] Reiser4: Replace inode.u.generic_ip with inode.i_private

2006-12-02 Thread Laurent Riffard
inode.u.generic_ip was replaced with inode.i_private to reduce the size
of the VFS inode structure. This patch updates reiser4 code to reflect
this change.
---
 fs/reiser4/inode.h   |2 +-
 fs/reiser4/plugin/file/symlink.c |   14 +++---
 fs/reiser4/plugin/inode_ops.c|6 +++---
 fs/reiser4/plugin/item/static_stat.c |   18 +-
 4 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/fs/reiser4/inode.h b/fs/reiser4/inode.h
index ed59b0f..88b155d 100644
--- a/fs/reiser4/inode.h
+++ b/fs/reiser4/inode.h
@@ -41,7 +41,7 @@ typedef enum {
REISER4_IMMUTABLE = 2,
/* inode was read from storage */
REISER4_LOADED = 3,
-   /* this bit is set for symlinks. inode->u.generic_ip points to target
+   /* this bit is set for symlinks. inode->i_private points to target
   name of symlink. */
REISER4_GENERIC_PTR_USED = 4,
/* set if size of stat-data item for this inode is known. If this is
diff --git a/fs/reiser4/plugin/file/symlink.c b/fs/reiser4/plugin/file/symlink.c
index 343e72e..4f3f05a 100644
--- a/fs/reiser4/plugin/file/symlink.c
+++ b/fs/reiser4/plugin/file/symlink.c
@@ -42,8 +42,8 @@ int create_symlink(struct inode *symlink,
 */
reiser4_inode_data(symlink)->extmask |= (1 << SYMLINK_STAT);
 
-   assert("vs-838", symlink->u.generic_ip == NULL);
-   symlink->u.generic_ip = (void *)data->name;
+   assert("vs-838", symlink->i_private == NULL);
+   symlink->i_private = (void *)data->name;
 
assert("vs-843", symlink->i_size == 0);
INODE_SET_FIELD(symlink, i_size, strlen(data->name));
@@ -51,14 +51,14 @@ int create_symlink(struct inode *symlink,
/* insert stat data appended with data->name */
result = inode_file_plugin(symlink)->write_sd_by_inode(symlink);
if (result) {
-   /* FIXME-VS: Make sure that symlink->u.generic_ip is not 
attached
+   /* FIXME-VS: Make sure that symlink->i_private is not attached
   to kmalloced data */
INODE_SET_FIELD(symlink, i_size, 0);
} else {
-   assert("vs-849", symlink->u.generic_ip
+   assert("vs-849", symlink->i_private
   && inode_get_flag(symlink, REISER4_GENERIC_PTR_USED));
assert("vs-850",
-  !memcmp((char *)symlink->u.generic_ip, data->name,
+  !memcmp((char *)symlink->i_private, data->name,
   (size_t) symlink->i_size + 1));
}
return result;
@@ -76,8 +76,8 @@ void destroy_inode_symlink(struct inode *inode)
assert("edward-801", inode_get_flag(inode, REISER4_GENERIC_PTR_USED));
assert("vs-839", S_ISLNK(inode->i_mode));
 
-   kfree(inode->u.generic_ip);
-   inode->u.generic_ip = NULL;
+   kfree(inode->i_private);
+   inode->i_private = NULL;
inode_clr_flag(inode, REISER4_GENERIC_PTR_USED);
 }
 
diff --git a/fs/reiser4/plugin/inode_ops.c b/fs/reiser4/plugin/inode_ops.c
index 73e6cbd..7c215af 100644
--- a/fs/reiser4/plugin/inode_ops.c
+++ b/fs/reiser4/plugin/inode_ops.c
@@ -389,16 +389,16 @@ int mknod_common(struct inode *parent, struct dentry 
*dentry,
  *
  * This is common implementation of vfs's followlink method of struct
  * inode_operations.
- * Assumes that inode's generic_ip points to the content of symbolic link.
+ * Assumes that inode's i_private points to the content of symbolic link.
  */
 void *follow_link_common(struct dentry *dentry, struct nameidata *nd)
 {
assert("vs-851", S_ISLNK(dentry->d_inode->i_mode));
 
-   if (!dentry->d_inode->u.generic_ip
+   if (!dentry->d_inode->i_private
|| !inode_get_flag(dentry->d_inode, REISER4_GENERIC_PTR_USED))
return ERR_PTR(RETERR(-EINVAL));
-   nd_set_link(nd, dentry->d_inode->u.generic_ip);
+   nd_set_link(nd, dentry->d_inode->i_private);
return NULL;
 }
 
diff --git a/fs/reiser4/plugin/item/static_stat.c 
b/fs/reiser4/plugin/item/static_stat.c
index d1a4a40..0ef01e6 100644
--- a/fs/reiser4/plugin/item/static_stat.c
+++ b/fs/reiser4/plugin/item/static_stat.c
@@ -430,21 +430,21 @@ save_large_times_sd(struct inode *inode /* object being 
processed */ ,
 
 /* symlink stat data extension */
 
-/* allocate memory for symlink target and attach it to inode->u.generic_ip */
+/* allocate memory for symlink target and attach it to inode->i_private */
 static int
 symlink_target_to_inode(struct inode *inode, const char *target, int len)
 {
-   assert("vs-845", inode->u.generic_ip == NULL);
+   assert("vs-845", inode->i_private == NULL);
assert("vs-846", !inode_get_flag(inode, REISER4_GENERIC_PTR_USED));
 
/* FIXME-VS: this is prone to deadlock. Not more than other similar
   places, though */
-   inode->u.generic_ip = kmalloc((size_t) len + 1, get_gfp_mask());
-   if (!inode->u.generic_ip)
+   inode->i_private 

[PATCH 9/10] Reiser4: remove unnecessary config.h includes.

2006-12-02 Thread Laurent Riffard
---
 fs/reiser4/plugin/compress/compress.c |1 -
 fs/reiser4/reiser4.h  |1 -
 2 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/fs/reiser4/plugin/compress/compress.c 
b/fs/reiser4/plugin/compress/compress.c
index 25d4dea..1a7122d 100644
--- a/fs/reiser4/plugin/compress/compress.c
+++ b/fs/reiser4/plugin/compress/compress.c
@@ -6,7 +6,6 @@
 #include "../plugin.h"
 #include "minilzo.h"
 
-#include 
 #include 
 #include 
 #include 
diff --git a/fs/reiser4/reiser4.h b/fs/reiser4/reiser4.h
index ec94eec..cdae341 100644
--- a/fs/reiser4/reiser4.h
+++ b/fs/reiser4/reiser4.h
@@ -6,7 +6,6 @@
 #if !defined( __REISER4_H__ )
 #define __REISER4_H__
 
-#include 
 #include  /* for HZ */
 #include 
 #include 
-- 
1.4.4.1.gaed4



Re: Possible interference between reiser4 and usb-storage?

2006-12-02 Thread Clemens Eisserer

Thanks a lot for the detailed explanation.


Current conversion policy (convert to extent, if first 64K are
incompressible)
allows to properly handle ~50% of all mpegs. I hope it can be increased
up to
70-80% using only cosmetic changes. However, other problems you described
(a lot of HD seeks, slow directory listing) should disappear with the
_current_
conversion stuff.


1.) Ok, you convinced me ... I'll try it out very soon. Is the patch
you mentioned against my patched 2.6.19rc4-mm1 kernel which has
already been patched by a patch you posted on the list about 1 month
ago when I asked about compression?
I'll do some timings before and let you know how well it does.

2.) Is there a way to find out how much a file / files have/has been
compression.
If I ask konqueror how large all sub-stuff of a directory is, is this
the compressed size or the size the uncompressed files have?

Thanks a lot for all your patience, lg Clemens


Howto help hans?

2006-12-02 Thread Clemens Eisserer

Hello again,

I just read in a german online news-site
http://forum.tecchannel.de/news/themen/linux/456733/ that Hans'
advocate Daniel Horowitz (I don't know wether this is the right word,
that one how helps hans in front of the court) stopped working for
hime because Hans was not able to pay him anymore.

I don't know wether this is right or just imagination of newspapers,
but if thats right we should help somehow. As far as I know there is
currently no way of donating to Reiser4's developmant nore to help
Hans in any way? Any ideas?
Whats about registering a domain with sum fund stuff - donate to
Reiser4 / help Hans?

Does nobody care?!

lg Clemens


Compress Plugin

2006-12-02 Thread Tim Heinrich
Hi, i have heard about the compress plugin, but I could not find
information how to use it... Do I need a special patch or is it a option
to mkfs.reiser4?

Tim


signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


Re: Compress Plugin

2006-12-02 Thread Clemens Eisserer

At least what I can tell its both - you need a patch and some
arguments for mkfs.
Search the list, about one month ago edward explained it to me (with
link to patches and README file).

Good luck, lg Clemens

2006/12/2, Tim Heinrich <[EMAIL PROTECTED]>:

Hi, i have heard about the compress plugin, but I could not find
information how to use it... Do I need a special patch or is it a option
to mkfs.reiser4?

Tim





[SPAM] P A C C Ы Л K И ОТ 3000 РУБ.

2006-12-02 Thread Carla Bruce
Title: P A C C Ы Л K И ОТ 3000 РУБ.


 
 
 
 
  
 $M^А^C^С^О^B^Ы^Е^ ^Р^А^С^С^Ы^Л^K^И^ 
 
 
   Т,Е,Л,:,(,4,9,5,),2,2,3,,,1,7,,,6,8,
  
  
  
  
  
 
   ФОРМЫ ОПЛАТЫ:
   WebMoney.   
   Через Сбeрбанк.
   Бaнковский перeвод для юp. лиц.   
   Нaличными в oфиcе.
   Haличными чeрeз kyрьеpa. 
 Нaши пpиимyщecтвa:
- Oбхoд фильтpoв
 - Бecплaтнoe изгoтoвлeниe мaкeты
 - Бecплaтный выeзд кypьерa
 - Любыe фoрмы oплaты
 - Ежeмeсячнoe oбнoвлениe бaз 
 
 Опeрaтивнocть:
   - Paccылкa   cтартyeт нa слeдyющий день пocле oплaты
   - Выeзд kyрьерa прoизвoдитcя в дeнь oбрaщения или нa cлeдующий   дeнь.
   
 
   Прeдприятия Мoсквы 
   521 000 адр.
   3000 руб. 
 
 
   Физичeсkие лица Мockвы 
   1 000  000 адр.
3 000 pyб. 
 
 
   Вcя Mосква 
   3 000  000 aдр.
   5 400 руб.
 
 
   Пpeдприятия Poссии 
   2 000 000 адр.
   4 300 рyб.
 
 
   Рoссия (Цeнтральный pегион)
   5000 000 адр.
   8 100 pyб. 
 
 
   Вcя Рoccия 
   8 000  000 aдр.
   13 500 рyб.
 
 
   Рoccия и cтрaны CНГ 
   12 000  000 адр.
   16 200 руб. 
 
 
   Cанkт Пeтeрбyрг 
   700 000 адр. 
   3 000 руб. 
 
 
   CША, Aнглия,Гeрмания и др. 
   1 000 000 адр. 
   3 000 руб. 
 
   
  
  
   
  
  
 ЗВOНИТE CEЙЧAC!
 Т,Е,Л,:,(495) 2 2 3 - 1 7 - 6 8