aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fsck/dump.c2
-rw-r--r--fsck/fsck.c58
-rw-r--r--fsck/fsck.h4
-rw-r--r--fsck/mount.c2
-rw-r--r--fsck/xattr.c9
5 files changed, 7 insertions, 68 deletions
diff --git a/fsck/dump.c b/fsck/dump.c
index 864a3c3..ecadfdd 100644
--- a/fsck/dump.c
+++ b/fsck/dump.c
@@ -359,7 +359,7 @@ static void dump_xattr(struct f2fs_sb_info *sbi, struct f2fs_node *node_blk)
char xattr_name[F2FS_NAME_LEN] = {0};
int ret;
- xattr = read_all_xattrs(sbi, node_blk, true);
+ xattr = read_all_xattrs(sbi, node_blk);
if (!xattr)
return;
diff --git a/fsck/fsck.c b/fsck/fsck.c
index d2492d8..99cface 100644
--- a/fsck/fsck.c
+++ b/fsck/fsck.c
@@ -826,61 +826,6 @@ void fsck_reada_all_direct_node_blocks(struct f2fs_sb_info *sbi,
}
}
-static bool is_zeroed(const u8 *p, size_t size)
-{
- size_t i;
-
- for (i = 0; i < size; i++) {
- if (p[i])
- return false;
- }
- return true;
-}
-
-int chk_extended_attributes(struct f2fs_sb_info *sbi, u32 nid,
- struct f2fs_node *inode)
-{
- void *xattr;
- void *last_base_addr;
- struct f2fs_xattr_entry *ent;
- __u32 xattr_size = XATTR_SIZE(&inode->i);
- bool need_fix = false;
-
- if (xattr_size == 0)
- return 0;
-
- xattr = read_all_xattrs(sbi, inode, false);
- ASSERT(xattr);
-
- last_base_addr = (void *)xattr + xattr_size;
-
- list_for_each_xattr(ent, xattr) {
- if ((void *)(ent) + sizeof(__u32) > last_base_addr ||
- (void *)XATTR_NEXT_ENTRY(ent) > last_base_addr) {
- ASSERT_MSG("[0x%x] last xattr entry (offset: %lx) "
- "crosses the boundary",
- nid, (long int)((void *)ent - xattr));
- need_fix = true;
- break;
- }
- }
- if (!need_fix &&
- !is_zeroed((u8 *)ent, (u8 *)last_base_addr - (u8 *)ent)) {
- ASSERT_MSG("[0x%x] nonzero bytes in xattr space after "
- "end of list", nid);
- need_fix = true;
- }
- if (need_fix && c.fix_on) {
- memset(ent, 0, (u8 *)last_base_addr - (u8 *)ent);
- write_all_xattrs(sbi, inode, xattr_size, xattr);
- FIX_MSG("[0x%x] nullify wrong xattr entries", nid);
- free(xattr);
- return 1;
- }
- free(xattr);
- return 0;
-}
-
/* start with valid nid and blkaddr */
void fsck_chk_inode_blk(struct f2fs_sb_info *sbi, u32 nid,
enum FILE_TYPE ftype, struct f2fs_node *node_blk,
@@ -1055,9 +1000,6 @@ check_next:
}
}
- if (chk_extended_attributes(sbi, nid, node_blk))
- need_fix = 1;
-
if ((node_blk->i.i_inline & F2FS_INLINE_DATA)) {
unsigned int inline_size = MAX_INLINE_DATA(node_blk);
if (cur_qtype != -1)
diff --git a/fsck/fsck.h b/fsck/fsck.h
index c25f381..091b5d8 100644
--- a/fsck/fsck.h
+++ b/fsck/fsck.h
@@ -330,8 +330,6 @@ struct hardlink_cache_entry *f2fs_search_hardlink(struct f2fs_sb_info *sbi,
struct dentry *de);
/* xattr.c */
-void *read_all_xattrs(struct f2fs_sb_info *, struct f2fs_node *, bool);
-void write_all_xattrs(struct f2fs_sb_info *sbi,
- struct f2fs_node *inode, __u32 hsize, void *txattr_addr);
+void *read_all_xattrs(struct f2fs_sb_info *, struct f2fs_node *);
#endif /* _FSCK_H_ */
diff --git a/fsck/mount.c b/fsck/mount.c
index b4f96ec..9d786ea 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -370,7 +370,7 @@ void print_inode_info(struct f2fs_sb_info *sbi,
DISP_u32(F2FS_INODE_NIDS(inode), i_nid[3]); /* indirect */
DISP_u32(F2FS_INODE_NIDS(inode), i_nid[4]); /* double indirect */
- xattr_addr = read_all_xattrs(sbi, node, true);
+ xattr_addr = read_all_xattrs(sbi, node);
if (!xattr_addr)
goto out;
diff --git a/fsck/xattr.c b/fsck/xattr.c
index 9ccf361..fe28437 100644
--- a/fsck/xattr.c
+++ b/fsck/xattr.c
@@ -17,15 +17,14 @@
#include "node.h"
#include "xattr.h"
-void *read_all_xattrs(struct f2fs_sb_info *sbi, struct f2fs_node *inode,
- bool sanity_check)
+void *read_all_xattrs(struct f2fs_sb_info *sbi, struct f2fs_node *inode)
{
struct f2fs_xattr_header *header;
void *txattr_addr;
u64 inline_size = inline_xattr_size(&inode->i);
nid_t xnid = le32_to_cpu(inode->i.i_xattr_nid);
- if (c.func == FSCK && xnid && sanity_check) {
+ if (c.func == FSCK && xnid) {
if (fsck_sanity_check_nid(sbi, xnid, F2FS_FT_XATTR, TYPE_XATTR))
return NULL;
}
@@ -79,7 +78,7 @@ static struct f2fs_xattr_entry *__find_xattr(void *base_addr,
return entry;
}
-void write_all_xattrs(struct f2fs_sb_info *sbi,
+static void write_all_xattrs(struct f2fs_sb_info *sbi,
struct f2fs_node *inode, __u32 hsize, void *txattr_addr)
{
void *xattr_addr;
@@ -166,7 +165,7 @@ int f2fs_setxattr(struct f2fs_sb_info *sbi, nid_t ino, int index, const char *na
ret = dev_read_block(inode, ni.blk_addr);
ASSERT(ret >= 0);
- base_addr = read_all_xattrs(sbi, inode, true);
+ base_addr = read_all_xattrs(sbi, inode);
ASSERT(base_addr);
last_base_addr = (void *)base_addr + XATTR_SIZE(&inode->i);