You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[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>
This commit is contained in:
committed by
David Woodhouse
parent
a1ae76e96a
commit
8a13695cbe
+1
-22
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user