dir.c (36af5f407bbb2da6dd9809dd6f173dd377b57d74) dir.c (dcbb4c10e6d9693cc9d6fa493b4d130b66a60c7d)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * fs/f2fs/dir.c
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com/
7 */
8#include <linux/fs.h>

--- 204 unchanged lines hidden (view full) ---

213
214 if (npages == 0) {
215 *res_page = NULL;
216 goto out;
217 }
218
219 max_depth = F2FS_I(dir)->i_current_depth;
220 if (unlikely(max_depth > MAX_DIR_HASH_DEPTH)) {
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * fs/f2fs/dir.c
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com/
7 */
8#include <linux/fs.h>

--- 204 unchanged lines hidden (view full) ---

213
214 if (npages == 0) {
215 *res_page = NULL;
216 goto out;
217 }
218
219 max_depth = F2FS_I(dir)->i_current_depth;
220 if (unlikely(max_depth > MAX_DIR_HASH_DEPTH)) {
221 f2fs_msg(F2FS_I_SB(dir)->sb, KERN_WARNING,
222 "Corrupted max_depth of %lu: %u",
223 dir->i_ino, max_depth);
221 f2fs_warn(F2FS_I_SB(dir), "Corrupted max_depth of %lu: %u",
222 dir->i_ino, max_depth);
224 max_depth = MAX_DIR_HASH_DEPTH;
225 f2fs_i_depth_write(dir, max_depth);
226 }
227
228 for (level = 0; level < max_depth; level++) {
229 *res_page = NULL;
230 de = find_in_level(dir, level, fname, res_page);
231 if (de || IS_ERR(*res_page))

--- 579 unchanged lines hidden (view full) ---

811
812 de_name.name = d->filename[bit_pos];
813 de_name.len = le16_to_cpu(de->name_len);
814
815 /* check memory boundary before moving forward */
816 bit_pos += GET_DENTRY_SLOTS(le16_to_cpu(de->name_len));
817 if (unlikely(bit_pos > d->max ||
818 le16_to_cpu(de->name_len) > F2FS_NAME_LEN)) {
223 max_depth = MAX_DIR_HASH_DEPTH;
224 f2fs_i_depth_write(dir, max_depth);
225 }
226
227 for (level = 0; level < max_depth; level++) {
228 *res_page = NULL;
229 de = find_in_level(dir, level, fname, res_page);
230 if (de || IS_ERR(*res_page))

--- 579 unchanged lines hidden (view full) ---

810
811 de_name.name = d->filename[bit_pos];
812 de_name.len = le16_to_cpu(de->name_len);
813
814 /* check memory boundary before moving forward */
815 bit_pos += GET_DENTRY_SLOTS(le16_to_cpu(de->name_len));
816 if (unlikely(bit_pos > d->max ||
817 le16_to_cpu(de->name_len) > F2FS_NAME_LEN)) {
819 f2fs_msg(sbi->sb, KERN_WARNING,
820 "%s: corrupted namelen=%d, run fsck to fix.",
821 __func__, le16_to_cpu(de->name_len));
818 f2fs_warn(sbi, "%s: corrupted namelen=%d, run fsck to fix.",
819 __func__, le16_to_cpu(de->name_len));
822 set_sbi_flag(sbi, SBI_NEED_FSCK);
823 err = -EINVAL;
824 goto out;
825 }
826
827 if (IS_ENCRYPTED(d->inode)) {
828 int save_len = fstr->len;
829

--- 118 unchanged lines hidden ---
820 set_sbi_flag(sbi, SBI_NEED_FSCK);
821 err = -EINVAL;
822 goto out;
823 }
824
825 if (IS_ENCRYPTED(d->inode)) {
826 int save_len = fstr->len;
827

--- 118 unchanged lines hidden ---