diff options
-rw-r--r-- | fs/ext4/inline.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 70cf4c7b268a..44b4fcdc3755 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c | |||
@@ -144,6 +144,12 @@ int ext4_find_inline_data_nolock(struct inode *inode) | |||
144 | goto out; | 144 | goto out; |
145 | 145 | ||
146 | if (!is.s.not_found) { | 146 | if (!is.s.not_found) { |
147 | if (is.s.here->e_value_inum) { | ||
148 | EXT4_ERROR_INODE(inode, "inline data xattr refers " | ||
149 | "to an external xattr inode"); | ||
150 | error = -EFSCORRUPTED; | ||
151 | goto out; | ||
152 | } | ||
147 | EXT4_I(inode)->i_inline_off = (u16)((void *)is.s.here - | 153 | EXT4_I(inode)->i_inline_off = (u16)((void *)is.s.here - |
148 | (void *)ext4_raw_inode(&is.iloc)); | 154 | (void *)ext4_raw_inode(&is.iloc)); |
149 | EXT4_I(inode)->i_inline_size = EXT4_MIN_INLINE_DATA_SIZE + | 155 | EXT4_I(inode)->i_inline_size = EXT4_MIN_INLINE_DATA_SIZE + |