summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/linux/jffs2.h1
-rw-r--r--mkfs.jffs2.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/jffs2.h b/include/linux/jffs2.h
index 2cac60e..8fc99e5 100644
--- a/include/linux/jffs2.h
+++ b/include/linux/jffs2.h
@@ -186,6 +186,7 @@ struct jffs2_raw_xref
jint32_t hdr_crc;
jint32_t ino; /* inode number */
jint32_t xid; /* XATTR identifier number */
+ jint32_t xseqno; /* xref sequencial number */
jint32_t node_crc;
} __attribute__((packed));
diff --git a/mkfs.jffs2.c b/mkfs.jffs2.c
index fa4a5f3..c460a7b 100644
--- a/mkfs.jffs2.c
+++ b/mkfs.jffs2.c
@@ -1038,6 +1038,7 @@ typedef struct xattr_entry {
#define XATTR_BUFFER_SIZE (64 * 1024) /* 64KB */
static uint32_t enable_xattr = 0;
static uint32_t highest_xid = 0;
+static uint32_t highest_xseqno = 0;
static struct {
int xprefix;
@@ -1244,6 +1245,7 @@ static void write_xattr_entry(struct filesystem_entry *e)
ref.hdr_crc = cpu_to_je32(crc32(0, &ref, sizeof(struct jffs2_unknown_node) - 4));
ref.ino = cpu_to_je32(e->sb.st_ino);
ref.xid = cpu_to_je32(xe->xid);
+ ref.xseqno = cpu_to_je32(highest_xseqno += 2);
ref.node_crc = cpu_to_je32(crc32(0, &ref, sizeof(ref) - 4));
pad_block_if_less_than(sizeof(ref));