public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
From: KaiGai Kohei <kaigai@ak.jp.nec.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: linux-mtd@lists.infradead.org
Subject: Re: JFFS2/xattr problems.
Date: Sun, 21 May 2006 20:19:05 +0900	[thread overview]
Message-ID: <44704CA9.8010604@ak.jp.nec.com> (raw)
In-Reply-To: <1148150486.3875.251.camel@pmac.infradead.org>

Hello, David.

David Woodhouse wrote:
> I created a user xattr on JFFS2, then attempted to remove it. On NAND
> flash I get the following BUG():
> 
> jffs2_flash_writev(): Non-contiguous write to 004ca000
> wbuf was previously 004ca000-004ca040
> ------------[ cut here ]------------
> kernel BUG at /root/jffs2/wbuf.c:672!
> 
> Call Trace:
>  [<c8222aad>] jffs2_flash_writev+0x616/0x6ac [jffs2]
>  [<c823eadb>] nand_read_ecc+0x29/0x2f [nand]     [<c823eadb>] nand_read_ecc+0x29/0x2f [nand]
>  [<c8221a6a>] jffs2_flash_read+0x8a/0x22b [jffs2]     [<c8222b8b>] jffs2_flash_write+0x48/0x51 [jffs2]
>  [<c822364d>] delete_xattr_datum_node+0xcc/0x144 [jffs2]     [<c8223dea>] delete_xattr_datum+0x2c/0x3c [jffs2]
>  [<c8223ed2>] delete_xattr_ref+0x32/0x3b [jffs2]     [<c8224e37>] do_jffs2_setxattr+0x1a9/0x5aa [jffs2]
>  [<c01c1462>] _atomic_dec_and_lock+0x22/0x2c     [<c82254fc>] jffs2_user_setxattr+0x3c/0x47 [jffs2]
>  [<c016e9e8>] generic_removexattr+0x37/0x3d     [<c016ef78>] vfs_removexattr+0x78/0xc8
> 
> What is delete_xattr_datum_node() trying to do? It seems to be writing
> for a second time to an area of flash which has _already_ been written.
> You can't do that.

delete_xattr_datum_node() try to write invalid data to ensure the target
node was already deleted. I was worried about that a xdatum already removed
may be reused as a effective xdatum on next mounting.
But it's purely design problem that should be changed.

Alternatively, I plan to write a delete marker on new node allocated by
jffs2_reserve_space() when xdatum is removed.
I intend to be dealt with a xdatum with 0xffffffff of version number
as a delete marker for xdatum. This node will be ignored on next mounting.

There is a same issue on deletion of xattr_ref, I also plan to implement
with same method.

Some days will be necessary to change it.
Would you wait for a while?

> Also, just 'cp -av /lib/libc.so.6 /mnt/jffs2' is failing to set the
> POSIX ACL, with -EINVAL. This happens because posix_acl_equiv_mode()
> returns zero, because the ACL is entirely equivalent to normal modes. So
> the 'value' passed to do_jffs2_setxattr() is NULL, which should _delete_
> the corresponding xattr.
> 
> But because the xattr is not found, the code returns -EINVAL. Shouldn't
> that error be -ENOATTR? And shouldn't the ACL code then convert it to a
> more appropriate return value?

I agree, I'll fix it.

Thanks,
-- 
KaiGai Kohei <kaigai@kaigai.gr.jp>

  parent reply	other threads:[~2006-05-21 11:19 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-20 18:41 JFFS2/xattr problems David Woodhouse
2006-05-21  3:22 ` David Woodhouse
2006-05-21 11:24   ` KaiGai Kohei
2006-05-21 11:19 ` KaiGai Kohei [this message]
2006-05-21 12:41   ` David Woodhouse
2006-06-12  2:17   ` KaiGai Kohei
2006-06-12  8:03     ` David Woodhouse
2006-06-12  9:43       ` KaiGai Kohei
2006-06-12  9:53         ` David Woodhouse
2006-06-12 18:06           ` Jörn Engel
2006-06-13 13:36             ` KaiGai Kohei
2006-06-13 14:13               ` Jörn Engel
2006-06-14 21:58                 ` Theodore Tso
2006-06-15 11:47                   ` Jörn Engel
2006-06-15 15:24                     ` Theodore Tso
2006-06-13 13:30           ` KaiGai Kohei
2006-06-24  5:58             ` KaiGai Kohei
2006-06-24 12:44               ` David Woodhouse
2006-06-26 15:45               ` David Woodhouse
2006-06-27  2:43                 ` KaiGai Kohei
2006-06-29  6:02                   ` KaiGai Kohei

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=44704CA9.8010604@ak.jp.nec.com \
    --to=kaigai@ak.jp.nec.com \
    --cc=dwmw2@infradead.org \
    --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