From: Ferenc Havasi <havasi@inf.u-szeged.hu>
To: "Jörn Engel" <joern@wohnheim.fh-wedel.de>
Cc: "Artem B. Bityuckiy" <dedekind@yandex.ru>, linux-mtd@lists.infradead.org
Subject: Re: [PATCH]fs/jffs2/wbuf.c: add compatibility support for OOB data block
Date: Mon, 01 Aug 2005 16:02:32 +0200 [thread overview]
Message-ID: <42EE2B78.70500@inf.u-szeged.hu> (raw)
In-Reply-To: <20050801104343.GB32464@wohnheim.fh-wedel.de>
Jörn Engel wrote:
>>diff -Narup Mtd-orig/fs/jffs2/build.c mtd/fs/jffs2/build.c
>>--- Mtd-orig/fs/jffs2/build.c 2005-07-22 12:32:07.000000000 +0200
>>+++ mtd/fs/jffs2/build.c 2005-07-29 18:43:16.000000000 +0200
>>@@ -334,6 +334,9 @@ int jffs2_do_mount_fs(struct jffs2_sb_in
>> c->blocks[i].first_node = NULL;
>> c->blocks[i].last_node = NULL;
>> c->blocks[i].bad_count = 0;
>>+#ifdef CONFIG_JFFS2_SUMMARY
>>+ c->blocks[i].sum_collected = NULL;
>>+#endif
>>
>>
>
>I guess we can start removing some of the #ifdef ugliness already.
>The extra field per eraseblock can be added unconditionally, as can
>this line.
>
>
>
OK, we will eliminate all of these kind of #endifs.
>> D1(printk(KERN_DEBUG "Going to GC REF_PRISTINE node at 0x%08x\n", ref_offset(raw)));
>>
>>@@ -513,8 +514,9 @@ static int jffs2_garbage_collect_pristin
>> /* Ask for a small amount of space (or the totlen if smaller) because we
>> don't want to force wastage of the end of a block if splitting would
>> work. */
>>- ret = jffs2_reserve_space_gc(c, min_t(uint32_t, sizeof(struct jffs2_raw_inode) + JFFS2_MIN_DATA_LEN,
>>- rawlen), &phys_ofs, &alloclen);
>>+ ret = jffs2_reserve_space_gc(c, min_t(uint32_t, sizeof(struct jffs2_raw_inode) +
>>+ JFFS2_MIN_DATA_LEN, rawlen), &phys_ofs, &alloclen, rawlen);
>>+ /* this is not optimal yet */
>>
>>
>
>Can you add some more explanation to the comment?
>
>
OK, we will.
The reason of "this is not optimal" is the following: for
jffs2_reserve_space_gc() we have to specify an argument called sumsize.
It is the summary size of the requested node. It needs it, because it is
necessary to fit not only the node but also its summary representation
into the erase block. In all other cases we know exactly the summary
size of all nodes except in this case, so we made an upper-estimation here.
>> if (ret)
>> return ret;
>>
>>@@ -594,7 +596,10 @@ static int jffs2_garbage_collect_pristin
>> nraw->__totlen = rawlen;
>> nraw->next_phys = NULL;
>>
>>- ret = jffs2_flash_write(c, phys_ofs, rawlen, &retlen, (char *)node);
>>+ vecs[0].iov_base = (unsigned char *) node;
>>+ vecs[0].iov_len = rawlen;
>>+
>>+ ret = jffs2_flash_writev(c, vecs, 1, phys_ofs, &retlen, 0);
>>
>>
>
>Why this change? If it's required, it might make sense to split it
>out into a preparatory patch. But my gut feeling is that dropping
>this part would be better.
>
>
Jffs2_flash_write() simply write directly the data onto the flash, and
does not collect the summary information. Jffs2_flash_writev() does.
>>+#ifdef CONFIG_JFFS2_SUMMARY
>>+
>>+/* Called with alloc sem _and_ erase_completion_lock */
>>+static int jffs2_do_reserve_space_sum(struct jffs2_sb_info *c, uint32_t minsize, uint32_t *ofs, uint32_t *len, uint32_t sumsize)
>>+{
>>
>>
>[...]
>
>
>>+#else
>>+
>>+/* Called with alloc sem _and_ erase_completion_lock */
>>+static int jffs2_do_reserve_space_normal(struct jffs2_sb_info *c, uint32_t minsize, uint32_t *ofs, uint32_t *len, uint32_t sumsize)
>>+{
>>
>>
>
>It doesn't take too much creativity to combine this and the above
>#ifdef into a single one. That will still be ugly, but it's a step in
>the right direction.
>
>
In the previous version it was combined, but we afraid of that it is
hard to see what exectly happen. But we can tranform it back.
Ferenc
next prev parent reply other threads:[~2005-08-01 14:02 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-21 7:22 [PATCH]fs/jffs2/wbuf.c: add compatibility support for OOB data block 赵 豆豆
2005-07-22 11:02 ` Artem B. Bityuckiy
2005-07-22 11:59 ` Jörn Engel
2005-07-22 12:12 ` Artem B. Bityuckiy
2005-07-22 12:27 ` Jörn Engel
2005-07-26 7:36 ` Ferenc Havasi
2005-07-26 7:44 ` Jörn Engel
2005-07-26 7:57 ` Ferenc Havasi
2005-07-26 8:29 ` Steven Scholz
2005-07-26 9:36 ` Jörn Engel
2005-07-26 10:03 ` Ferenc Havasi
2005-07-26 10:12 ` Artem B. Bityuckiy
2005-07-26 10:51 ` Steven Scholz
2005-07-26 11:13 ` Jörn Engel
2005-07-26 11:14 ` Steven Scholz
2005-07-26 12:37 ` Ferenc Havasi
2005-07-26 9:32 ` Jörn Engel
2005-07-26 10:03 ` Jörn Engel
2005-07-27 22:08 ` David Woodhouse
2005-07-28 9:01 ` Jörn Engel
2005-08-01 9:50 ` Havasi Ferenc
2005-08-01 9:56 ` Jörn Engel
2005-08-01 10:07 ` Havasi Ferenc
2005-08-01 10:43 ` Jörn Engel
2005-08-01 14:02 ` Ferenc Havasi [this message]
2005-08-01 14:18 ` Jörn Engel
2005-08-11 15:03 ` Ferenc Havasi
2005-08-11 15:47 ` Artem B. Bityuckiy
2005-08-11 16:59 ` Ferenc Havasi
2005-08-11 16:06 ` Artem B. Bityuckiy
2005-08-15 11:24 ` Ferenc Havasi
2005-08-15 12:23 ` Artem B. Bityuckiy
2005-08-15 17:10 ` Ferenc Havasi
2005-08-16 13:19 ` Artem B. Bityuckiy
2005-08-11 17:24 ` Jörn Engel
2005-08-15 9:48 ` Jörn Engel
2005-08-15 10:20 ` Artem B. Bityuckiy
2005-08-15 11:42 ` Ferenc Havasi
2005-08-15 11:56 ` Jörn Engel
2005-08-15 11:07 ` Artem B. Bityuckiy
2005-08-15 11:48 ` Ferenc Havasi
2005-08-15 11:59 ` Jörn Engel
2005-08-15 12:28 ` Ferenc Havasi
2005-08-15 12:38 ` Artem B. Bityuckiy
2005-08-15 12:52 ` Jörn Engel
2005-08-15 13:34 ` Ferenc Havasi
2005-08-15 13:42 ` Artem B. Bityuckiy
2005-08-15 13:48 ` Jörn Engel
2005-08-15 14:00 ` Artem B. Bityuckiy
2005-08-15 14:05 ` Jörn Engel
2005-08-15 14:19 ` Artem B. Bityuckiy
2005-08-15 14:32 ` Jörn Engel
2005-08-15 15:22 ` Artem B. Bityuckiy
2005-08-16 7:16 ` Artem B. Bityuckiy
2005-08-16 7:25 ` Artem B. Bityuckiy
2005-08-16 9:47 ` Jörn Engel
2005-08-16 9:56 ` Artem B. Bityuckiy
2005-08-15 13:43 ` Jörn Engel
2005-08-15 13:46 ` Artem B. Bityuckiy
2005-08-16 11:34 ` Artem B. Bityuckiy
2005-08-15 13:27 ` Ferenc Havasi
2005-08-15 13:40 ` Artem B. Bityuckiy
2005-08-15 13:45 ` Jörn Engel
2005-08-15 13:50 ` Artem B. Bityuckiy
2005-08-15 12:35 ` Artem B. Bityuckiy
2005-08-15 13:22 ` Ferenc Havasi
2005-08-15 13:38 ` Artem B. Bityuckiy
2005-08-15 13:51 ` Jörn Engel
2005-08-15 14:01 ` Artem B. Bityuckiy
2005-08-16 8:22 ` JFFS2 eraseblock header Artem B. Bityuckiy
2005-08-16 8:25 ` Artem B. Bityuckiy
2005-08-16 9:13 ` Ferenc Havasi
2005-08-16 9:25 ` Artem B. Bityuckiy
2005-09-08 13:32 ` David Woodhouse
2005-09-08 13:35 ` Artem B. Bityuckiy
2005-09-08 18:43 ` Jörn Engel
2005-09-09 12:57 ` Josh Boyer
2005-09-09 13:08 ` Artem B. Bityuckiy
2005-09-09 22:20 ` Jörn Engel
2005-08-15 11:53 ` [PATCH]fs/jffs2/wbuf.c: add compatibility support for OOB data block Jörn Engel
2005-08-15 12:46 ` Artem B. Bityuckiy
2005-07-26 8:40 ` Jffs2 problem with Versatile PB926EJ-S Soma sundaram Veerappan
2005-07-26 16:17 ` Todd Poynor
[not found] <BAY17-F15C6182BFC9EEA8E5AD337E8CA0@phx.gbl>
2005-07-25 9:14 ` [PATCH]fs/jffs2/wbuf.c: add compatibility support for OOB data block Jörn Engel
2005-07-25 9:20 ` Jörn Engel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42EE2B78.70500@inf.u-szeged.hu \
--to=havasi@inf.u-szeged.hu \
--cc=dedekind@yandex.ru \
--cc=joern@wohnheim.fh-wedel.de \
--cc=linux-mtd@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox