summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2019-02-15 20:57:53 -0800
committerJaegeuk Kim <jaegeuk@kernel.org>2019-02-26 10:05:34 -0800
commitd5aa6ed6b68fcdde27c83a9b091fceeb58dd623f (patch)
treef3e2c6187444044f6838d8f91018bec1b21c5484
parent011f2e498d944c991ffd72955d654520afc29f4a (diff)
Revert "f2fs: fix to check inline_xattr_size boundary correctly"
This reverts commit 802a643228462e0e3f6e84977d912f1871f61467.
-rw-r--r--fs/f2fs/f2fs.h1
-rw-r--r--fs/f2fs/super.c10
-rw-r--r--include/linux/f2fs_fs.h13
3 files changed, 12 insertions, 12 deletions
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 607abef0abcf..c836992d5a00 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -524,6 +524,7 @@ struct f2fs_flush_device {
/* for inline stuff */
#define DEF_INLINE_RESERVED_SIZE 1
+#define DEF_MIN_INLINE_SIZE 1
static inline int get_extra_isize(struct inode *inode);
static inline int get_inline_xattr_addrs(struct inode *inode);
#define MAX_INLINE_DATA(inode) (sizeof(__le32) * \
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 4c3015a119b4..fa54715e4132 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -835,11 +835,11 @@ static int parse_options(struct super_block *sb, char *options)
return -EINVAL;
}
if (!F2FS_OPTION(sbi).inline_xattr_size ||
- F2FS_OPTION(sbi).inline_xattr_size >
- DEF_ADDRS_PER_INODE -
- F2FS_TOTAL_EXTRA_ATTR_SIZE / sizeof(__le32) -
- DEF_INLINE_RESERVED_SIZE -
- MIN_INLINE_DENTRY_SIZE / sizeof(__le32)) {
+ F2FS_OPTION(sbi).inline_xattr_size >=
+ DEF_ADDRS_PER_INODE -
+ F2FS_TOTAL_EXTRA_ATTR_SIZE -
+ DEF_INLINE_RESERVED_SIZE -
+ DEF_MIN_INLINE_SIZE) {
f2fs_msg(sb, KERN_ERR,
"inline xattr size is out of range");
return -EINVAL;
diff --git a/include/linux/f2fs_fs.h b/include/linux/f2fs_fs.h
index 2f5fbc41118c..6dcde67ba171 100644
--- a/include/linux/f2fs_fs.h
+++ b/include/linux/f2fs_fs.h
@@ -490,12 +490,12 @@ typedef __le32 f2fs_hash_t;
/*
* space utilization of regular dentry and inline dentry (w/o extra reservation)
- * regular dentry inline dentry (def) inline dentry (min)
- * bitmap 1 * 27 = 27 1 * 23 = 23 1 * 1 = 1
- * reserved 1 * 3 = 3 1 * 7 = 7 1 * 1 = 1
- * dentry 11 * 214 = 2354 11 * 182 = 2002 11 * 2 = 22
- * filename 8 * 214 = 1712 8 * 182 = 1456 8 * 2 = 16
- * total 4096 3488 40
+ * regular dentry inline dentry
+ * bitmap 1 * 27 = 27 1 * 23 = 23
+ * reserved 1 * 3 = 3 1 * 7 = 7
+ * dentry 11 * 214 = 2354 11 * 182 = 2002
+ * filename 8 * 214 = 1712 8 * 182 = 1456
+ * total 4096 3488
*
* Note: there are more reserved space in inline dentry than in regular
* dentry, when converting inline dentry we should handle this carefully.
@@ -507,7 +507,6 @@ typedef __le32 f2fs_hash_t;
#define SIZE_OF_RESERVED (PAGE_SIZE - ((SIZE_OF_DIR_ENTRY + \
F2FS_SLOT_LEN) * \
NR_DENTRY_IN_BLOCK + SIZE_OF_DENTRY_BITMAP))
-#define MIN_INLINE_DENTRY_SIZE 40 /* just include '.' and '..' entries */
/* One directory entry slot representing F2FS_SLOT_LEN-sized file name */
struct f2fs_dir_entry {