aboutsummaryrefslogtreecommitdiffstats
path: root/fs/jffs2/scan.c
diff options
context:
space:
mode:
authorKaiGai Kohei <kaigai@ak.jp.nec.com>2006-06-23 20:14:13 -0400
committerDavid Woodhouse <dwmw2@infradead.org>2006-06-27 11:18:02 -0400
commit8a13695cbe4e8311b363f9bd25162904b984ca74 (patch)
tree2ff6ecca99d5b6185e1b3df0f3ab1447a3fdff9b /fs/jffs2/scan.c
parenta1ae76e96a18edf4b8a4d4e102762060c26d1c6a (diff)
[JFFS2][XATTR] rid unnecessary writing of delete marker.
In the followinf situation, an explicit delete marker is not necessary, because we can certainlly detect those obsolete xattr_datum or xattr_ref on next mounting. - When to delete xattr_datum node. - When to delete xattr_ref node on removing inode. - When to delete xattr_ref node on updating xattr. This patch rids writing delete marker in those situations. Signed-off-by: KaiGai Kohei <kaigai@ak.jp.nec.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'fs/jffs2/scan.c')
-rw-r--r--fs/jffs2/scan.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/jffs2/scan.c b/fs/jffs2/scan.c
index 79638f56c5ea..2bfdc33752d3 100644
--- a/fs/jffs2/scan.c
+++ b/fs/jffs2/scan.c
@@ -332,10 +332,8 @@ static int jffs2_scan_xattr_node(struct jffs2_sb_info *c, struct jffs2_erasebloc
332 xid = je32_to_cpu(rx->xid); 332 xid = je32_to_cpu(rx->xid);
333 version = je32_to_cpu(rx->version); 333 version = je32_to_cpu(rx->version);
334 334
335 totlen = sizeof(struct jffs2_raw_xattr); 335 totlen = PAD(sizeof(struct jffs2_raw_xattr)
336 if (version != XDATUM_DELETE_MARKER) 336 + rx->name_len + 1 + je16_to_cpu(rx->value_len));
337 totlen += rx->name_len + 1 + je16_to_cpu(rx->value_len);
338 totlen = PAD(totlen);
339 if (totlen != je32_to_cpu(rx->totlen)) { 337 if (totlen != je32_to_cpu(rx->totlen)) {
340 JFFS2_WARNING("node length mismatch at %#08x, read=%u, calc=%u\n", 338 JFFS2_WARNING("node length mismatch at %#08x, read=%u, calc=%u\n",
341 ofs, je32_to_cpu(rx->totlen), totlen); 339 ofs, je32_to_cpu(rx->totlen), totlen);