summaryrefslogtreecommitdiffstats
path: root/fs/jffs2/xattr.h
diff options
context:
space:
mode:
authorKaiGai Kohei <kaigai@ak.jp.nec.com>2006-06-24 02:14:13 +0200
committerDavid Woodhouse <dwmw2@infradead.org>2006-06-27 17:18:02 +0200
commit8a13695cbe4e8311b363f9bd25162904b984ca74 (patch)
tree2ff6ecca99d5b6185e1b3df0f3ab1447a3fdff9b /fs/jffs2/xattr.h
parent[JFFS2][XATTR] Fix ACL bug when updating null xattr by null ACL. (diff)
downloadlinux-8a13695cbe4e8311b363f9bd25162904b984ca74.tar.xz
linux-8a13695cbe4e8311b363f9bd25162904b984ca74.zip
[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/xattr.h')
-rw-r--r--fs/jffs2/xattr.h23
1 files changed, 1 insertions, 22 deletions
diff --git a/fs/jffs2/xattr.h b/fs/jffs2/xattr.h
index 06ab7b880212..4a10abc6d917 100644
--- a/fs/jffs2/xattr.h
+++ b/fs/jffs2/xattr.h
@@ -16,6 +16,7 @@
#define JFFS2_XFLAGS_HOT (0x01) /* This datum is HOT */
#define JFFS2_XFLAGS_BIND (0x02) /* This datum is not reclaimed */
+#define JFFS2_XFLAGS_DEAD (0x40) /* This datum is already dead */
#define JFFS2_XFLAGS_INVALID (0x80) /* This datum contains crc error */
struct jffs2_xattr_datum
@@ -60,34 +61,12 @@ struct jffs2_xattr_ref
struct jffs2_xattr_ref *next; /* chained from ic->xref_list */
};
-#define XDATUM_DELETE_MARKER (0xffffffff)
#define XREF_DELETE_MARKER (0x00000001)
-static inline int is_xattr_datum_dead(struct jffs2_xattr_datum *xd)
-{
- return (xd->version == XDATUM_DELETE_MARKER);
-}
-
-static inline void set_xattr_datum_dead(struct jffs2_xattr_datum *xd)
-{
- xd->version = XDATUM_DELETE_MARKER;
-}
-
static inline int is_xattr_ref_dead(struct jffs2_xattr_ref *ref)
{
return ((ref->xseqno & XREF_DELETE_MARKER) != 0);
}
-static inline void set_xattr_ref_dead(struct jffs2_xattr_ref *ref)
-{
- ref->xseqno |= XREF_DELETE_MARKER;
-}
-
-static inline void clr_xattr_ref_dead(struct jffs2_xattr_ref *ref)
-{
- ref->xseqno &= ~XREF_DELETE_MARKER;
-}
-
-
#ifdef CONFIG_JFFS2_FS_XATTR
extern void jffs2_init_xattr_subsystem(struct jffs2_sb_info *c);