diff options
author | KaiGai Kohei <kaigai@ak.jp.nec.com> | 2006-06-24 09:14:13 +0900 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2006-06-27 16:18:02 +0100 |
commit | 8a13695cbe4e8311b363f9bd25162904b984ca74 (patch) | |
tree | 2ff6ecca99d5b6185e1b3df0f3ab1447a3fdff9b /fs/jffs2/xattr.h | |
parent | a1ae76e96a18edf4b8a4d4e102762060c26d1c6a (diff) | |
download | linux-8a13695cbe4e8311b363f9bd25162904b984ca74.tar.gz linux-8a13695cbe4e8311b363f9bd25162904b984ca74.tar.bz2 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.h | 23 |
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); |