fs/ext4/dir.c:126:12: warning: stack frame size of 2096 bytes in function 'ext4_readdir'
From: kernel test robot
Date: Sat May 29 2021 - 02:17:26 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 6799d4f2da496cab9b3fd26283a8ce3639b1a88d
commit: 471fbbea7ff7061b2d6474665cb5a2ceb4fd6500 ext4: handle casefolding with encryption
date: 8 weeks ago
config: powerpc64-randconfig-r036-20210529 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project bc6799f2f79f0ae87e9f1ebf9d25ba799fbd25a9)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc64 cross compiling tool for clang build
# apt-get install binutils-powerpc64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=471fbbea7ff7061b2d6474665cb5a2ceb4fd6500
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 471fbbea7ff7061b2d6474665cb5a2ceb4fd6500
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All warnings (new ones prefixed by >>):
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:199:1: note: expanded from here
__do_insw
^
arch/powerpc/include/asm/io.h:557:56: note: expanded from macro '__do_insw'
#define __do_insw(p, b, n) readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from fs/ext4/dir.c:26:
In file included from include/linux/buffer_head.h:14:
In file included from include/linux/pagemap.h:11:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:10:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:201:1: note: expanded from here
__do_insl
^
arch/powerpc/include/asm/io.h:558:56: note: expanded from macro '__do_insl'
#define __do_insl(p, b, n) readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from fs/ext4/dir.c:26:
In file included from include/linux/buffer_head.h:14:
In file included from include/linux/pagemap.h:11:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:10:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:203:1: note: expanded from here
__do_outsb
^
arch/powerpc/include/asm/io.h:559:58: note: expanded from macro '__do_outsb'
#define __do_outsb(p, b, n) writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from fs/ext4/dir.c:26:
In file included from include/linux/buffer_head.h:14:
In file included from include/linux/pagemap.h:11:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:10:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:205:1: note: expanded from here
__do_outsw
^
arch/powerpc/include/asm/io.h:560:58: note: expanded from macro '__do_outsw'
#define __do_outsw(p, b, n) writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from fs/ext4/dir.c:26:
In file included from include/linux/buffer_head.h:14:
In file included from include/linux/pagemap.h:11:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:10:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:207:1: note: expanded from here
__do_outsl
^
arch/powerpc/include/asm/io.h:561:58: note: expanded from macro '__do_outsl'
#define __do_outsl(p, b, n) writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
>> fs/ext4/dir.c:126:12: warning: stack frame size of 2096 bytes in function 'ext4_readdir' [-Wframe-larger-than=]
static int ext4_readdir(struct file *file, struct dir_context *ctx)
^
14 warnings generated.
vim +/ext4_readdir +126 fs/ext4/dir.c
ac27a0ec112a08 Dave Kleikamp 2006-10-11 125
725bebb27882ae Al Viro 2013-05-17 @126 static int ext4_readdir(struct file *file, struct dir_context *ctx)
ac27a0ec112a08 Dave Kleikamp 2006-10-11 127 {
498e5f24158da7 Theodore Ts'o 2008-11-05 128 unsigned int offset;
aa13d5f67c6f5f Giedrius Rekasius 2014-05-27 129 int i;
617ba13b31fbf5 Mingming Cao 2006-10-11 130 struct ext4_dir_entry_2 *de;
ac27a0ec112a08 Dave Kleikamp 2006-10-11 131 int err;
725bebb27882ae Al Viro 2013-05-17 132 struct inode *inode = file_inode(file);
d1f5273e9adb40 Fan Yong 2012-03-18 133 struct super_block *sb = inode->i_sb;
4461471107b79b Michael Halcrow 2015-04-12 134 struct buffer_head *bh = NULL;
a7550b30ab709f Jaegeuk Kim 2016-07-10 135 struct fscrypt_str fstr = FSTR_INIT(NULL, 0);
ac27a0ec112a08 Dave Kleikamp 2006-10-11 136
ec0caa974cd092 Eric Biggers 2020-12-02 137 err = fscrypt_prepare_readdir(inode);
3b1ada55b905f3 Eric Biggers 2019-12-09 138 if (err)
28b4c263961c47 Theodore Ts'o 2016-02-07 139 return err;
28b4c263961c47 Theodore Ts'o 2016-02-07 140
d1f5273e9adb40 Fan Yong 2012-03-18 141 if (is_dx_dir(inode)) {
725bebb27882ae Al Viro 2013-05-17 142 err = ext4_dx_readdir(file, ctx);
400086d7c11327 Milan Djurovic 2021-03-15 143 if (err != ERR_BAD_DX_DIR)
725bebb27882ae Al Viro 2013-05-17 144 return err;
400086d7c11327 Milan Djurovic 2021-03-15 145
48a34311953d92 Jan Kara 2020-02-10 146 /* Can we just clear INDEX flag to ignore htree information? */
48a34311953d92 Jan Kara 2020-02-10 147 if (!ext4_has_metadata_csum(sb)) {
ac27a0ec112a08 Dave Kleikamp 2006-10-11 148 /*
ac27a0ec112a08 Dave Kleikamp 2006-10-11 149 * We don't set the inode dirty flag since it's not
48a34311953d92 Jan Kara 2020-02-10 150 * critical that it gets flushed back to the disk.
ac27a0ec112a08 Dave Kleikamp 2006-10-11 151 */
48a34311953d92 Jan Kara 2020-02-10 152 ext4_clear_inode_flag(inode, EXT4_INODE_INDEX);
48a34311953d92 Jan Kara 2020-02-10 153 }
ac27a0ec112a08 Dave Kleikamp 2006-10-11 154 }
8af0f082279770 Tao Ma 2013-04-19 155
8af0f082279770 Tao Ma 2013-04-19 156 if (ext4_has_inline_data(inode)) {
8af0f082279770 Tao Ma 2013-04-19 157 int has_inline_data = 1;
4461471107b79b Michael Halcrow 2015-04-12 158 err = ext4_read_inline_dir(file, ctx,
8af0f082279770 Tao Ma 2013-04-19 159 &has_inline_data);
8af0f082279770 Tao Ma 2013-04-19 160 if (has_inline_data)
4461471107b79b Michael Halcrow 2015-04-12 161 return err;
4461471107b79b Michael Halcrow 2015-04-12 162 }
4461471107b79b Michael Halcrow 2015-04-12 163
592ddec7578a33 Chandan Rajendra 2018-12-12 164 if (IS_ENCRYPTED(inode)) {
8b10fe68985278 Jeff Layton 2020-08-10 165 err = fscrypt_fname_alloc_buffer(EXT4_NAME_LEN, &fstr);
b7236e21d55ff9 Theodore Ts'o 2015-05-18 166 if (err < 0)
4461471107b79b Michael Halcrow 2015-04-12 167 return err;
4461471107b79b Michael Halcrow 2015-04-12 168 }
8af0f082279770 Tao Ma 2013-04-19 169
725bebb27882ae Al Viro 2013-05-17 170 while (ctx->pos < inode->i_size) {
2ed886852adfcb Theodore Ts'o 2010-05-16 171 struct ext4_map_blocks map;
ac27a0ec112a08 Dave Kleikamp 2006-10-11 172
1f60fbe7274918 Theodore Ts'o 2016-04-23 173 if (fatal_signal_pending(current)) {
1f60fbe7274918 Theodore Ts'o 2016-04-23 174 err = -ERESTARTSYS;
1f60fbe7274918 Theodore Ts'o 2016-04-23 175 goto errout;
1f60fbe7274918 Theodore Ts'o 2016-04-23 176 }
1f60fbe7274918 Theodore Ts'o 2016-04-23 177 cond_resched();
4e19d6b65fb4fc Theodore Ts'o 2019-06-20 178 offset = ctx->pos & (sb->s_blocksize - 1);
725bebb27882ae Al Viro 2013-05-17 179 map.m_lblk = ctx->pos >> EXT4_BLOCK_SIZE_BITS(sb);
2ed886852adfcb Theodore Ts'o 2010-05-16 180 map.m_len = 1;
2ed886852adfcb Theodore Ts'o 2010-05-16 181 err = ext4_map_blocks(NULL, inode, &map, 0);
4e19d6b65fb4fc Theodore Ts'o 2019-06-20 182 if (err == 0) {
4e19d6b65fb4fc Theodore Ts'o 2019-06-20 183 /* m_len should never be zero but let's avoid
4e19d6b65fb4fc Theodore Ts'o 2019-06-20 184 * an infinite loop if it somehow is */
4e19d6b65fb4fc Theodore Ts'o 2019-06-20 185 if (map.m_len == 0)
4e19d6b65fb4fc Theodore Ts'o 2019-06-20 186 map.m_len = 1;
4e19d6b65fb4fc Theodore Ts'o 2019-06-20 187 ctx->pos += map.m_len * sb->s_blocksize;
4e19d6b65fb4fc Theodore Ts'o 2019-06-20 188 continue;
4e19d6b65fb4fc Theodore Ts'o 2019-06-20 189 }
ac27a0ec112a08 Dave Kleikamp 2006-10-11 190 if (err > 0) {
2ed886852adfcb Theodore Ts'o 2010-05-16 191 pgoff_t index = map.m_pblk >>
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 192 (PAGE_SHIFT - inode->i_blkbits);
725bebb27882ae Al Viro 2013-05-17 193 if (!ra_has_index(&file->f_ra, index))
cf914a7d656e62 Rusty Russell 2007-07-19 194 page_cache_sync_readahead(
dc7868fcb9a739 Fengguang Wu 2007-07-19 195 sb->s_bdev->bd_inode->i_mapping,
725bebb27882ae Al Viro 2013-05-17 196 &file->f_ra, file,
cf914a7d656e62 Rusty Russell 2007-07-19 197 index, 1);
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 198 file->f_ra.prev_pos = (loff_t)index << PAGE_SHIFT;
1c2150283cae89 Theodore Ts'o 2014-08-29 199 bh = ext4_bread(NULL, inode, map.m_lblk, 0);
c906f38e8853cf Kirill Tkhai 2016-02-16 200 if (IS_ERR(bh)) {
c906f38e8853cf Kirill Tkhai 2016-02-16 201 err = PTR_ERR(bh);
c906f38e8853cf Kirill Tkhai 2016-02-16 202 bh = NULL;
c906f38e8853cf Kirill Tkhai 2016-02-16 203 goto errout;
c906f38e8853cf Kirill Tkhai 2016-02-16 204 }
ac27a0ec112a08 Dave Kleikamp 2006-10-11 205 }
ac27a0ec112a08 Dave Kleikamp 2006-10-11 206
ac27a0ec112a08 Dave Kleikamp 2006-10-11 207 if (!bh) {
e6c4021190c828 Eric Sandeen 2006-12-06 208 /* corrupt size? Maybe no more blocks to read */
725bebb27882ae Al Viro 2013-05-17 209 if (ctx->pos > inode->i_blocks << 9)
e6c4021190c828 Eric Sandeen 2006-12-06 210 break;
725bebb27882ae Al Viro 2013-05-17 211 ctx->pos += sb->s_blocksize - offset;
ac27a0ec112a08 Dave Kleikamp 2006-10-11 212 continue;
ac27a0ec112a08 Dave Kleikamp 2006-10-11 213 }
ac27a0ec112a08 Dave Kleikamp 2006-10-11 214
b0336e8d2108e6 Darrick J. Wong 2012-04-29 215 /* Check the checksum */
b0336e8d2108e6 Darrick J. Wong 2012-04-29 216 if (!buffer_verified(bh) &&
f036adb3997646 Theodore Ts'o 2019-06-21 217 !ext4_dirblock_csum_verify(inode, bh)) {
725bebb27882ae Al Viro 2013-05-17 218 EXT4_ERROR_FILE(file, 0, "directory fails checksum "
b0336e8d2108e6 Darrick J. Wong 2012-04-29 219 "at offset %llu",
725bebb27882ae Al Viro 2013-05-17 220 (unsigned long long)ctx->pos);
725bebb27882ae Al Viro 2013-05-17 221 ctx->pos += sb->s_blocksize - offset;
d5ac7773051602 Guo Chao 2013-01-28 222 brelse(bh);
4461471107b79b Michael Halcrow 2015-04-12 223 bh = NULL;
b0336e8d2108e6 Darrick J. Wong 2012-04-29 224 continue;
b0336e8d2108e6 Darrick J. Wong 2012-04-29 225 }
b0336e8d2108e6 Darrick J. Wong 2012-04-29 226 set_buffer_verified(bh);
b0336e8d2108e6 Darrick J. Wong 2012-04-29 227
ac27a0ec112a08 Dave Kleikamp 2006-10-11 228 /* If the dir block has changed since the last call to
ac27a0ec112a08 Dave Kleikamp 2006-10-11 229 * readdir(2), then we might be pointing to an invalid
ac27a0ec112a08 Dave Kleikamp 2006-10-11 230 * dirent right now. Scan from the start of the block
ac27a0ec112a08 Dave Kleikamp 2006-10-11 231 * to make sure. */
c472c07bfed9c8 Goffredo Baroncelli 2018-02-01 232 if (!inode_eq_iversion(inode, file->f_version)) {
ac27a0ec112a08 Dave Kleikamp 2006-10-11 233 for (i = 0; i < sb->s_blocksize && i < offset; ) {
617ba13b31fbf5 Mingming Cao 2006-10-11 234 de = (struct ext4_dir_entry_2 *)
ac27a0ec112a08 Dave Kleikamp 2006-10-11 235 (bh->b_data + i);
ac27a0ec112a08 Dave Kleikamp 2006-10-11 236 /* It's too expensive to do a full
ac27a0ec112a08 Dave Kleikamp 2006-10-11 237 * dirent test each time round this
ac27a0ec112a08 Dave Kleikamp 2006-10-11 238 * loop, but we do have to test at
ac27a0ec112a08 Dave Kleikamp 2006-10-11 239 * least that it is non-zero. A
ac27a0ec112a08 Dave Kleikamp 2006-10-11 240 * failure will be detected in the
ac27a0ec112a08 Dave Kleikamp 2006-10-11 241 * dirent test below. */
3d0518f4758eca Wei Yongjun 2009-02-14 242 if (ext4_rec_len_from_disk(de->rec_len,
471fbbea7ff706 Daniel Rosenberg 2021-03-19 243 sb->s_blocksize) < ext4_dir_rec_len(1,
471fbbea7ff706 Daniel Rosenberg 2021-03-19 244 inode))
ac27a0ec112a08 Dave Kleikamp 2006-10-11 245 break;
3d0518f4758eca Wei Yongjun 2009-02-14 246 i += ext4_rec_len_from_disk(de->rec_len,
3d0518f4758eca Wei Yongjun 2009-02-14 247 sb->s_blocksize);
ac27a0ec112a08 Dave Kleikamp 2006-10-11 248 }
ac27a0ec112a08 Dave Kleikamp 2006-10-11 249 offset = i;
725bebb27882ae Al Viro 2013-05-17 250 ctx->pos = (ctx->pos & ~(sb->s_blocksize - 1))
ac27a0ec112a08 Dave Kleikamp 2006-10-11 251 | offset;
ee73f9a52a3437 Jeff Layton 2018-01-09 252 file->f_version = inode_query_iversion(inode);
ac27a0ec112a08 Dave Kleikamp 2006-10-11 253 }
ac27a0ec112a08 Dave Kleikamp 2006-10-11 254
725bebb27882ae Al Viro 2013-05-17 255 while (ctx->pos < inode->i_size
ac27a0ec112a08 Dave Kleikamp 2006-10-11 256 && offset < sb->s_blocksize) {
617ba13b31fbf5 Mingming Cao 2006-10-11 257 de = (struct ext4_dir_entry_2 *) (bh->b_data + offset);
725bebb27882ae Al Viro 2013-05-17 258 if (ext4_check_dir_entry(inode, file, de, bh,
226ba972b08637 Tao Ma 2012-12-10 259 bh->b_data, bh->b_size,
226ba972b08637 Tao Ma 2012-12-10 260 offset)) {
63f5793351d821 Andrew Morton 2006-10-11 261 /*
725bebb27882ae Al Viro 2013-05-17 262 * On error, skip to the next block
63f5793351d821 Andrew Morton 2006-10-11 263 */
725bebb27882ae Al Viro 2013-05-17 264 ctx->pos = (ctx->pos |
ac27a0ec112a08 Dave Kleikamp 2006-10-11 265 (sb->s_blocksize - 1)) + 1;
725bebb27882ae Al Viro 2013-05-17 266 break;
ac27a0ec112a08 Dave Kleikamp 2006-10-11 267 }
3d0518f4758eca Wei Yongjun 2009-02-14 268 offset += ext4_rec_len_from_disk(de->rec_len,
3d0518f4758eca Wei Yongjun 2009-02-14 269 sb->s_blocksize);
ac27a0ec112a08 Dave Kleikamp 2006-10-11 270 if (le32_to_cpu(de->inode)) {
592ddec7578a33 Chandan Rajendra 2018-12-12 271 if (!IS_ENCRYPTED(inode)) {
725bebb27882ae Al Viro 2013-05-17 272 if (!dir_emit(ctx, de->name,
ac27a0ec112a08 Dave Kleikamp 2006-10-11 273 de->name_len,
ac27a0ec112a08 Dave Kleikamp 2006-10-11 274 le32_to_cpu(de->inode),
4461471107b79b Michael Halcrow 2015-04-12 275 get_dtype(sb, de->file_type)))
4461471107b79b Michael Halcrow 2015-04-12 276 goto done;
4461471107b79b Michael Halcrow 2015-04-12 277 } else {
a7550b30ab709f Jaegeuk Kim 2016-07-10 278 int save_len = fstr.len;
a7550b30ab709f Jaegeuk Kim 2016-07-10 279 struct fscrypt_str de_name =
a7550b30ab709f Jaegeuk Kim 2016-07-10 280 FSTR_INIT(de->name,
a7550b30ab709f Jaegeuk Kim 2016-07-10 281 de->name_len);
d229959072eba4 Theodore Ts'o 2015-05-18 282
4461471107b79b Michael Halcrow 2015-04-12 283 /* Directory is encrypted */
a7550b30ab709f Jaegeuk Kim 2016-07-10 284 err = fscrypt_fname_disk_to_usr(inode,
471fbbea7ff706 Daniel Rosenberg 2021-03-19 285 EXT4_DIRENT_HASH(de),
471fbbea7ff706 Daniel Rosenberg 2021-03-19 286 EXT4_DIRENT_MINOR_HASH(de),
471fbbea7ff706 Daniel Rosenberg 2021-03-19 287 &de_name, &fstr);
ef1eb3aa50930f Eric Biggers 2016-09-15 288 de_name = fstr;
a7550b30ab709f Jaegeuk Kim 2016-07-10 289 fstr.len = save_len;
ef1eb3aa50930f Eric Biggers 2016-09-15 290 if (err)
4461471107b79b Michael Halcrow 2015-04-12 291 goto errout;
4461471107b79b Michael Halcrow 2015-04-12 292 if (!dir_emit(ctx,
ef1eb3aa50930f Eric Biggers 2016-09-15 293 de_name.name, de_name.len,
4461471107b79b Michael Halcrow 2015-04-12 294 le32_to_cpu(de->inode),
4461471107b79b Michael Halcrow 2015-04-12 295 get_dtype(sb, de->file_type)))
4461471107b79b Michael Halcrow 2015-04-12 296 goto done;
725bebb27882ae Al Viro 2013-05-17 297 }
ac27a0ec112a08 Dave Kleikamp 2006-10-11 298 }
725bebb27882ae Al Viro 2013-05-17 299 ctx->pos += ext4_rec_len_from_disk(de->rec_len,
3d0518f4758eca Wei Yongjun 2009-02-14 300 sb->s_blocksize);
ac27a0ec112a08 Dave Kleikamp 2006-10-11 301 }
ae05327a00fd47 Al Viro 2016-05-12 302 if ((ctx->pos < inode->i_size) && !dir_relax_shared(inode))
4461471107b79b Michael Halcrow 2015-04-12 303 goto done;
ac27a0ec112a08 Dave Kleikamp 2006-10-11 304 brelse(bh);
4461471107b79b Michael Halcrow 2015-04-12 305 bh = NULL;
4461471107b79b Michael Halcrow 2015-04-12 306 offset = 0;
725bebb27882ae Al Viro 2013-05-17 307 }
4461471107b79b Michael Halcrow 2015-04-12 308 done:
4461471107b79b Michael Halcrow 2015-04-12 309 err = 0;
4461471107b79b Michael Halcrow 2015-04-12 310 errout:
a7550b30ab709f Jaegeuk Kim 2016-07-10 311 fscrypt_fname_free_buffer(&fstr);
4461471107b79b Michael Halcrow 2015-04-12 312 brelse(bh);
4461471107b79b Michael Halcrow 2015-04-12 313 return err;
ac27a0ec112a08 Dave Kleikamp 2006-10-11 314 }
ac27a0ec112a08 Dave Kleikamp 2006-10-11 315
:::::: The code at line 126 was first introduced by commit
:::::: 725bebb27882ae617d50776cc8b6cacd84481c91 [readdir] convert ext4
:::::: TO: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
:::::: CC: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip