From f2364718734e8ffe458e89a705017926521e66dc Mon Sep 17 00:00:00 2001 From: Jean-Christophe DUBOIS Date: Thu, 10 May 2012 17:14:03 +0200 Subject: [PATCH] --- yaml --- r: 310236 b: refs/heads/master c: 8c5a0366403f5dbca9d4ccf50f95bafbaddc2844 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/jffs2/readinode.c | 1 + trunk/fs/jffs2/xattr.c | 7 +++++++ trunk/fs/jffs2/xattr.h | 2 ++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 9194046c0a37..4ec3071d9dcb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9824f75d56298e5fe4f9f57d9f3abd5fbf3d472c +refs/heads/master: 8c5a0366403f5dbca9d4ccf50f95bafbaddc2844 diff --git a/trunk/fs/jffs2/readinode.c b/trunk/fs/jffs2/readinode.c index 3833d74f2305..1ea349fff68b 100644 --- a/trunk/fs/jffs2/readinode.c +++ b/trunk/fs/jffs2/readinode.c @@ -1421,6 +1421,7 @@ int jffs2_do_crccheck_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *i mutex_unlock(&f->sem); jffs2_do_clear_inode(c, f); } + jffs2_xattr_do_crccheck_inode(c, ic); kfree (f); return ret; } diff --git a/trunk/fs/jffs2/xattr.c b/trunk/fs/jffs2/xattr.c index c18c0ab70ea4..3034e970eb9a 100644 --- a/trunk/fs/jffs2/xattr.c +++ b/trunk/fs/jffs2/xattr.c @@ -437,6 +437,8 @@ static void unrefer_xattr_datum(struct jffs2_sb_info *c, struct jffs2_xattr_datu * is called to release xattr related objects when unmounting. * check_xattr_ref_inode(c, ic) * is used to confirm inode does not have duplicate xattr name/value pair. + * jffs2_xattr_do_crccheck_inode(c, ic) + * is used to force xattr data integrity check during the initial gc scan. * -------------------------------------------------- */ static int verify_xattr_ref(struct jffs2_sb_info *c, struct jffs2_xattr_ref *ref) { @@ -684,6 +686,11 @@ static int check_xattr_ref_inode(struct jffs2_sb_info *c, struct jffs2_inode_cac return rc; } +void jffs2_xattr_do_crccheck_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *ic) +{ + check_xattr_ref_inode(c, ic); +} + /* -------- xattr subsystem functions --------------- * jffs2_init_xattr_subsystem(c) * is used to initialize semaphore and list_head, and some variables. diff --git a/trunk/fs/jffs2/xattr.h b/trunk/fs/jffs2/xattr.h index 7be4beb306f3..467ff376ee26 100644 --- a/trunk/fs/jffs2/xattr.h +++ b/trunk/fs/jffs2/xattr.h @@ -77,6 +77,7 @@ extern void jffs2_clear_xattr_subsystem(struct jffs2_sb_info *c); extern struct jffs2_xattr_datum *jffs2_setup_xattr_datum(struct jffs2_sb_info *c, uint32_t xid, uint32_t version); +extern void jffs2_xattr_do_crccheck_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *ic); extern void jffs2_xattr_delete_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *ic); extern void jffs2_xattr_free_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *ic); @@ -108,6 +109,7 @@ extern ssize_t jffs2_listxattr(struct dentry *, char *, size_t); #define jffs2_build_xattr_subsystem(c) #define jffs2_clear_xattr_subsystem(c) +#define jffs2_xattr_do_crccheck_inode(c, ic) #define jffs2_xattr_delete_inode(c, ic) #define jffs2_xattr_free_inode(c, ic) #define jffs2_verify_xattr(c) (1)