From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: fs/buffer.c:2342:1: warning: the frame size of 2056 bytes is larger than 2048 bytes
Date: Mon, 01 Feb 2021 01:43:27 +0800 [thread overview]
Message-ID: <202102010117.GDAd3nTC-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 10997 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 6642d600b541b81931fb1ab0c041b0d68f77be7e
commit: 0060ef3b4e6dd1410da164d48a595eadb2fb02f7 mm: support THPs in zero_user_segments
date: 7 weeks ago
config: powerpc64-randconfig-r026-20210131 (attached as .config)
compiler: powerpc-linux-gcc (GCC) 9.3.0
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0060ef3b4e6dd1410da164d48a595eadb2fb02f7
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 0060ef3b4e6dd1410da164d48a595eadb2fb02f7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
fs/buffer.c: In function 'block_read_full_page':
>> fs/buffer.c:2342:1: warning: the frame size of 2056 bytes is larger than 2048 bytes [-Wframe-larger-than=]
2342 | }
| ^
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for NETDEVICES
Depends on NET
Selected by
- AKEBONO && PPC_47x
WARNING: unmet direct dependencies detected for PAGE_POOL
Depends on NET
Selected by
- STMMAC_ETH && NETDEVICES && ETHERNET && NET_VENDOR_STMICRO && HAS_IOMEM && HAS_DMA
Selected by
- MVPP2 && NETDEVICES && ETHERNET && NET_VENDOR_MARVELL && (ARCH_MVEBU || COMPILE_TEST
WARNING: unmet direct dependencies detected for NET_DEVLINK
Depends on NET
Selected by
- ICE && NETDEVICES && ETHERNET && NET_VENDOR_INTEL && PCI_MSI
WARNING: unmet direct dependencies detected for ETHERNET
Depends on NETDEVICES && NET
Selected by
- AKEBONO && PPC_47x
WARNING: unmet direct dependencies detected for PTP_1588_CLOCK_PCH
Depends on (X86_32 || COMPILE_TEST && HAS_IOMEM && NET
Selected by
- PCH_GBE && NETDEVICES && ETHERNET && NET_VENDOR_OKI && PCI && (X86_32 || COMPILE_TEST
WARNING: unmet direct dependencies detected for MMC_SDHCI
Depends on MMC && HAS_DMA
Selected by
- AKEBONO && PPC_47x
WARNING: unmet direct dependencies detected for MMC_SDHCI_PLTFM
Depends on MMC && MMC_SDHCI
Selected by
- AKEBONO && PPC_47x
WARNING: unmet direct dependencies detected for NET_PTP_CLASSIFY
Depends on NET
Selected by
- PCH_GBE && NETDEVICES && ETHERNET && NET_VENDOR_OKI && PCI && (X86_32 || COMPILE_TEST
WARNING: unmet direct dependencies detected for HOTPLUG_CPU
Depends on SMP && (PPC_PSERIES || PPC_PMAC || PPC_POWERNV || FSL_SOC_BOOKE
Selected by
- PM_SLEEP_SMP && SMP && (ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE && PM_SLEEP
WARNING: unmet direct dependencies detected for GRO_CELLS
Depends on NET
Selected by
- MACSEC && NETDEVICES && NET_CORE
- RMNET && NETDEVICES && ETHERNET && NET_VENDOR_QUALCOMM
WARNING: unmet direct dependencies detected for FAILOVER
Depends on NET
Selected by
- NET_FAILOVER && NETDEVICES
vim +2342 fs/buffer.c
8ab22b9abb5c55 Hisashi Hifumi 2008-07-28 2251
^1da177e4c3f41 Linus Torvalds 2005-04-16 2252 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 2253 * Generic "read page" function for block devices that have the normal
^1da177e4c3f41 Linus Torvalds 2005-04-16 2254 * get_block functionality. This is most of the block device filesystems.
^1da177e4c3f41 Linus Torvalds 2005-04-16 2255 * Reads the page asynchronously --- the unlock_buffer() and
^1da177e4c3f41 Linus Torvalds 2005-04-16 2256 * set/clear_buffer_uptodate() functions propagate buffer state into the
^1da177e4c3f41 Linus Torvalds 2005-04-16 2257 * page struct once IO has completed.
^1da177e4c3f41 Linus Torvalds 2005-04-16 2258 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 2259 int block_read_full_page(struct page *page, get_block_t *get_block)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2260 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2261 struct inode *inode = page->mapping->host;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2262 sector_t iblock, lblock;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2263 struct buffer_head *bh, *head, *arr[MAX_BUF_PER_PAGE];
45bce8f3e3436b Linus Torvalds 2012-11-29 2264 unsigned int blocksize, bbits;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2265 int nr, i;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2266 int fully_mapped = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2267
45bce8f3e3436b Linus Torvalds 2012-11-29 2268 head = create_page_buffers(page, inode, 0);
45bce8f3e3436b Linus Torvalds 2012-11-29 2269 blocksize = head->b_size;
45bce8f3e3436b Linus Torvalds 2012-11-29 2270 bbits = block_size_bits(blocksize);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2271
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 2272 iblock = (sector_t)page->index << (PAGE_SHIFT - bbits);
45bce8f3e3436b Linus Torvalds 2012-11-29 2273 lblock = (i_size_read(inode)+blocksize-1) >> bbits;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2274 bh = head;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2275 nr = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2276 i = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2277
^1da177e4c3f41 Linus Torvalds 2005-04-16 2278 do {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2279 if (buffer_uptodate(bh))
^1da177e4c3f41 Linus Torvalds 2005-04-16 2280 continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2281
^1da177e4c3f41 Linus Torvalds 2005-04-16 2282 if (!buffer_mapped(bh)) {
c64610ba585fab Andrew Morton 2005-05-16 2283 int err = 0;
c64610ba585fab Andrew Morton 2005-05-16 2284
^1da177e4c3f41 Linus Torvalds 2005-04-16 2285 fully_mapped = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2286 if (iblock < lblock) {
b0cf2321c65991 Badari Pulavarty 2006-03-26 2287 WARN_ON(bh->b_size != blocksize);
c64610ba585fab Andrew Morton 2005-05-16 2288 err = get_block(inode, iblock, bh, 0);
c64610ba585fab Andrew Morton 2005-05-16 2289 if (err)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2290 SetPageError(page);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2291 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2292 if (!buffer_mapped(bh)) {
eebd2aa355692a Christoph Lameter 2008-02-04 2293 zero_user(page, i * blocksize, blocksize);
c64610ba585fab Andrew Morton 2005-05-16 2294 if (!err)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2295 set_buffer_uptodate(bh);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2296 continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2297 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2298 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 2299 * get_block() might have updated the buffer
^1da177e4c3f41 Linus Torvalds 2005-04-16 2300 * synchronously
^1da177e4c3f41 Linus Torvalds 2005-04-16 2301 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 2302 if (buffer_uptodate(bh))
^1da177e4c3f41 Linus Torvalds 2005-04-16 2303 continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2304 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2305 arr[nr++] = bh;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2306 } while (i++, iblock++, (bh = bh->b_this_page) != head);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2307
^1da177e4c3f41 Linus Torvalds 2005-04-16 2308 if (fully_mapped)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2309 SetPageMappedToDisk(page);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2310
^1da177e4c3f41 Linus Torvalds 2005-04-16 2311 if (!nr) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2312 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 2313 * All buffers are uptodate - we can set the page uptodate
^1da177e4c3f41 Linus Torvalds 2005-04-16 2314 * as well. But not if get_block() returned an error.
^1da177e4c3f41 Linus Torvalds 2005-04-16 2315 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 2316 if (!PageError(page))
^1da177e4c3f41 Linus Torvalds 2005-04-16 2317 SetPageUptodate(page);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2318 unlock_page(page);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2319 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2320 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2321
^1da177e4c3f41 Linus Torvalds 2005-04-16 2322 /* Stage two: lock the buffers */
^1da177e4c3f41 Linus Torvalds 2005-04-16 2323 for (i = 0; i < nr; i++) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2324 bh = arr[i];
^1da177e4c3f41 Linus Torvalds 2005-04-16 2325 lock_buffer(bh);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2326 mark_buffer_async_read(bh);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2327 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2328
^1da177e4c3f41 Linus Torvalds 2005-04-16 2329 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 2330 * Stage 3: start the IO. Check for uptodateness
^1da177e4c3f41 Linus Torvalds 2005-04-16 2331 * inside the buffer lock in case another process reading
^1da177e4c3f41 Linus Torvalds 2005-04-16 2332 * the underlying blockdev brought it uptodate (the sct fix).
^1da177e4c3f41 Linus Torvalds 2005-04-16 2333 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 2334 for (i = 0; i < nr; i++) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2335 bh = arr[i];
^1da177e4c3f41 Linus Torvalds 2005-04-16 2336 if (buffer_uptodate(bh))
^1da177e4c3f41 Linus Torvalds 2005-04-16 2337 end_buffer_async_read(bh, 1);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2338 else
2a222ca992c35a Mike Christie 2016-06-05 2339 submit_bh(REQ_OP_READ, 0, bh);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2340 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2341 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 @2342 }
1fe72eaa0f46a0 H Hartley Sweeten 2009-09-22 2343 EXPORT_SYMBOL(block_read_full_page);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2344
:::::: The code@line 2342 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds@ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36272 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>
Subject: fs/buffer.c:2342:1: warning: the frame size of 2056 bytes is larger than 2048 bytes
Date: Mon, 1 Feb 2021 01:43:27 +0800 [thread overview]
Message-ID: <202102010117.GDAd3nTC-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 10816 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 6642d600b541b81931fb1ab0c041b0d68f77be7e
commit: 0060ef3b4e6dd1410da164d48a595eadb2fb02f7 mm: support THPs in zero_user_segments
date: 7 weeks ago
config: powerpc64-randconfig-r026-20210131 (attached as .config)
compiler: powerpc-linux-gcc (GCC) 9.3.0
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0060ef3b4e6dd1410da164d48a595eadb2fb02f7
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 0060ef3b4e6dd1410da164d48a595eadb2fb02f7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
fs/buffer.c: In function 'block_read_full_page':
>> fs/buffer.c:2342:1: warning: the frame size of 2056 bytes is larger than 2048 bytes [-Wframe-larger-than=]
2342 | }
| ^
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for NETDEVICES
Depends on NET
Selected by
- AKEBONO && PPC_47x
WARNING: unmet direct dependencies detected for PAGE_POOL
Depends on NET
Selected by
- STMMAC_ETH && NETDEVICES && ETHERNET && NET_VENDOR_STMICRO && HAS_IOMEM && HAS_DMA
Selected by
- MVPP2 && NETDEVICES && ETHERNET && NET_VENDOR_MARVELL && (ARCH_MVEBU || COMPILE_TEST
WARNING: unmet direct dependencies detected for NET_DEVLINK
Depends on NET
Selected by
- ICE && NETDEVICES && ETHERNET && NET_VENDOR_INTEL && PCI_MSI
WARNING: unmet direct dependencies detected for ETHERNET
Depends on NETDEVICES && NET
Selected by
- AKEBONO && PPC_47x
WARNING: unmet direct dependencies detected for PTP_1588_CLOCK_PCH
Depends on (X86_32 || COMPILE_TEST && HAS_IOMEM && NET
Selected by
- PCH_GBE && NETDEVICES && ETHERNET && NET_VENDOR_OKI && PCI && (X86_32 || COMPILE_TEST
WARNING: unmet direct dependencies detected for MMC_SDHCI
Depends on MMC && HAS_DMA
Selected by
- AKEBONO && PPC_47x
WARNING: unmet direct dependencies detected for MMC_SDHCI_PLTFM
Depends on MMC && MMC_SDHCI
Selected by
- AKEBONO && PPC_47x
WARNING: unmet direct dependencies detected for NET_PTP_CLASSIFY
Depends on NET
Selected by
- PCH_GBE && NETDEVICES && ETHERNET && NET_VENDOR_OKI && PCI && (X86_32 || COMPILE_TEST
WARNING: unmet direct dependencies detected for HOTPLUG_CPU
Depends on SMP && (PPC_PSERIES || PPC_PMAC || PPC_POWERNV || FSL_SOC_BOOKE
Selected by
- PM_SLEEP_SMP && SMP && (ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE && PM_SLEEP
WARNING: unmet direct dependencies detected for GRO_CELLS
Depends on NET
Selected by
- MACSEC && NETDEVICES && NET_CORE
- RMNET && NETDEVICES && ETHERNET && NET_VENDOR_QUALCOMM
WARNING: unmet direct dependencies detected for FAILOVER
Depends on NET
Selected by
- NET_FAILOVER && NETDEVICES
vim +2342 fs/buffer.c
8ab22b9abb5c55 Hisashi Hifumi 2008-07-28 2251
^1da177e4c3f41 Linus Torvalds 2005-04-16 2252 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 2253 * Generic "read page" function for block devices that have the normal
^1da177e4c3f41 Linus Torvalds 2005-04-16 2254 * get_block functionality. This is most of the block device filesystems.
^1da177e4c3f41 Linus Torvalds 2005-04-16 2255 * Reads the page asynchronously --- the unlock_buffer() and
^1da177e4c3f41 Linus Torvalds 2005-04-16 2256 * set/clear_buffer_uptodate() functions propagate buffer state into the
^1da177e4c3f41 Linus Torvalds 2005-04-16 2257 * page struct once IO has completed.
^1da177e4c3f41 Linus Torvalds 2005-04-16 2258 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 2259 int block_read_full_page(struct page *page, get_block_t *get_block)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2260 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2261 struct inode *inode = page->mapping->host;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2262 sector_t iblock, lblock;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2263 struct buffer_head *bh, *head, *arr[MAX_BUF_PER_PAGE];
45bce8f3e3436b Linus Torvalds 2012-11-29 2264 unsigned int blocksize, bbits;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2265 int nr, i;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2266 int fully_mapped = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2267
45bce8f3e3436b Linus Torvalds 2012-11-29 2268 head = create_page_buffers(page, inode, 0);
45bce8f3e3436b Linus Torvalds 2012-11-29 2269 blocksize = head->b_size;
45bce8f3e3436b Linus Torvalds 2012-11-29 2270 bbits = block_size_bits(blocksize);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2271
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 2272 iblock = (sector_t)page->index << (PAGE_SHIFT - bbits);
45bce8f3e3436b Linus Torvalds 2012-11-29 2273 lblock = (i_size_read(inode)+blocksize-1) >> bbits;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2274 bh = head;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2275 nr = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2276 i = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2277
^1da177e4c3f41 Linus Torvalds 2005-04-16 2278 do {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2279 if (buffer_uptodate(bh))
^1da177e4c3f41 Linus Torvalds 2005-04-16 2280 continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2281
^1da177e4c3f41 Linus Torvalds 2005-04-16 2282 if (!buffer_mapped(bh)) {
c64610ba585fab Andrew Morton 2005-05-16 2283 int err = 0;
c64610ba585fab Andrew Morton 2005-05-16 2284
^1da177e4c3f41 Linus Torvalds 2005-04-16 2285 fully_mapped = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2286 if (iblock < lblock) {
b0cf2321c65991 Badari Pulavarty 2006-03-26 2287 WARN_ON(bh->b_size != blocksize);
c64610ba585fab Andrew Morton 2005-05-16 2288 err = get_block(inode, iblock, bh, 0);
c64610ba585fab Andrew Morton 2005-05-16 2289 if (err)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2290 SetPageError(page);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2291 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2292 if (!buffer_mapped(bh)) {
eebd2aa355692a Christoph Lameter 2008-02-04 2293 zero_user(page, i * blocksize, blocksize);
c64610ba585fab Andrew Morton 2005-05-16 2294 if (!err)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2295 set_buffer_uptodate(bh);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2296 continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2297 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2298 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 2299 * get_block() might have updated the buffer
^1da177e4c3f41 Linus Torvalds 2005-04-16 2300 * synchronously
^1da177e4c3f41 Linus Torvalds 2005-04-16 2301 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 2302 if (buffer_uptodate(bh))
^1da177e4c3f41 Linus Torvalds 2005-04-16 2303 continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2304 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2305 arr[nr++] = bh;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2306 } while (i++, iblock++, (bh = bh->b_this_page) != head);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2307
^1da177e4c3f41 Linus Torvalds 2005-04-16 2308 if (fully_mapped)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2309 SetPageMappedToDisk(page);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2310
^1da177e4c3f41 Linus Torvalds 2005-04-16 2311 if (!nr) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2312 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 2313 * All buffers are uptodate - we can set the page uptodate
^1da177e4c3f41 Linus Torvalds 2005-04-16 2314 * as well. But not if get_block() returned an error.
^1da177e4c3f41 Linus Torvalds 2005-04-16 2315 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 2316 if (!PageError(page))
^1da177e4c3f41 Linus Torvalds 2005-04-16 2317 SetPageUptodate(page);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2318 unlock_page(page);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2319 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2320 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2321
^1da177e4c3f41 Linus Torvalds 2005-04-16 2322 /* Stage two: lock the buffers */
^1da177e4c3f41 Linus Torvalds 2005-04-16 2323 for (i = 0; i < nr; i++) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2324 bh = arr[i];
^1da177e4c3f41 Linus Torvalds 2005-04-16 2325 lock_buffer(bh);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2326 mark_buffer_async_read(bh);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2327 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2328
^1da177e4c3f41 Linus Torvalds 2005-04-16 2329 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 2330 * Stage 3: start the IO. Check for uptodateness
^1da177e4c3f41 Linus Torvalds 2005-04-16 2331 * inside the buffer lock in case another process reading
^1da177e4c3f41 Linus Torvalds 2005-04-16 2332 * the underlying blockdev brought it uptodate (the sct fix).
^1da177e4c3f41 Linus Torvalds 2005-04-16 2333 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 2334 for (i = 0; i < nr; i++) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2335 bh = arr[i];
^1da177e4c3f41 Linus Torvalds 2005-04-16 2336 if (buffer_uptodate(bh))
^1da177e4c3f41 Linus Torvalds 2005-04-16 2337 end_buffer_async_read(bh, 1);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2338 else
2a222ca992c35a Mike Christie 2016-06-05 2339 submit_bh(REQ_OP_READ, 0, bh);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2340 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2341 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 @2342 }
1fe72eaa0f46a0 H Hartley Sweeten 2009-09-22 2343 EXPORT_SYMBOL(block_read_full_page);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2344
:::::: The code at line 2342 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds@ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36272 bytes --]
next reply other threads:[~2021-01-31 17:43 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-31 17:43 kernel test robot [this message]
2021-01-31 17:43 ` fs/buffer.c:2342:1: warning: the frame size of 2056 bytes is larger than 2048 bytes kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202102010117.GDAd3nTC-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.