From: Dan Carpenter <dan.carpenter@oracle.com>
To: riteshh@linux.ibm.com
Cc: linux-ext4@vger.kernel.org
Subject: [bug report] ext4: Add support for blocksize < pagesize in dioread_nolock
Date: Wed, 6 Nov 2019 11:25:05 +0300 [thread overview]
Message-ID: <20191106082505.GA31923@mwanda> (raw)
Hello Ritesh Harjani,
The patch c8cc88163f40: "ext4: Add support for blocksize < pagesize
in dioread_nolock" from Oct 16, 2019, leads to the following static
checker warning:
fs/ext4/inode.c:2390 mpage_process_page() error: 'io_end_vec' dereferencing possible ERR_PTR()
fs/ext4/inode.c:2557 mpage_map_and_submit_extent() error: 'io_end_vec' dereferencing possible ERR_PTR()
fs/ext4/inode.c:3677 ext4_end_io_dio() error: 'io_end_vec' dereferencing possible ERR_PTR()
fs/ext4/inode.c
2371 bh = head = page_buffers(page);
2372 do {
2373 if (lblk < mpd->map.m_lblk)
2374 continue;
2375 if (lblk >= mpd->map.m_lblk + mpd->map.m_len) {
2376 /*
2377 * Buffer after end of mapped extent.
2378 * Find next buffer in the page to map.
2379 */
2380 mpd->map.m_len = 0;
2381 mpd->map.m_flags = 0;
2382 io_end_vec->size += io_end_size;
2383 io_end_size = 0;
2384
2385 err = mpage_process_page_bufs(mpd, head, bh, lblk);
2386 if (err > 0)
2387 err = 0;
2388 if (!err && mpd->map.m_len && mpd->map.m_lblk > lblk) {
2389 io_end_vec = ext4_alloc_io_end_vec(io_end);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This allocation can fail.
2390 io_end_vec->offset = mpd->map.m_lblk << blkbits;
^^^^^^^^^^^^^^^^^^
Oops
2391 }
2392 *map_bh = true;
2393 goto out;
2394 }
2395 if (buffer_delay(bh)) {
2396 clear_buffer_delay(bh);
2397 bh->b_blocknr = pblock++;
2398 }
2399 clear_buffer_unwritten(bh);
2400 io_end_size += (1 << blkbits);
2401 } while (lblk++, (bh = bh->b_this_page) != head);
regards,
dan carpenter
next reply other threads:[~2019-11-06 8:25 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-06 8:25 Dan Carpenter [this message]
2019-11-06 9:38 ` [PATCH 1/1] ext4: Add error handling for io_end_vec struct allocation Ritesh Harjani
2019-11-11 22:11 ` Theodore Y. Ts'o
2019-11-06 10:12 ` [bug report] ext4: Add support for blocksize < pagesize in dioread_nolock Ritesh Harjani
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=20191106082505.GA31923@mwanda \
--to=dan.carpenter@oracle.com \
--cc=linux-ext4@vger.kernel.org \
--cc=riteshh@linux.ibm.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).