From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [linux-next:master 7094/8804] fs/ntfs3/file.c:1148 ntfs_file_write_iter() warn: inconsistent returns '&inode->i_rwsem'.
Date: Thu, 19 Aug 2021 15:42:41 +0800 [thread overview]
Message-ID: <202108191537.eZKDa53j-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 7963 bytes --]
CC: kbuild-all(a)lists.01.org
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Hi Konstantin,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: f26c3abc432a2026ba9ee7767061a1f88aead6ec
commit: 6e5be40d32fb1907285277c02e74493ed43d77fe [7094/8804] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile
:::::: branch date: 24 hours ago
:::::: commit date: 6 days ago
config: i386-randconfig-m021-20210818 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
fs/ntfs3/file.c:1148 ntfs_file_write_iter() warn: inconsistent returns '&inode->i_rwsem'.
fs/ntfs3/fsntfs.c:803 ntfs_clear_mft_tail() error: uninitialized symbol 'err'.
fs/ntfs3/fsntfs.c:1264 ntfs_read_run_nb() error: uninitialized symbol 'clen'.
fs/ntfs3/fsntfs.c:1265 ntfs_read_run_nb() error: uninitialized symbol 'idx'.
fs/ntfs3/frecord.c:166 ni_load_mi_ex() error: we previously assumed 'r' could be null (see line 159)
fs/ntfs3/frecord.c:510 ni_ins_new_attr() error: we previously assumed 'le' could be null (see line 495)
fs/ntfs3/frecord.c:1439 ni_insert_nonresident() warn: potential memory corrupting cast 8 vs 2 bytes
fs/ntfs3/frecord.c:2559 ni_read_frame() warn: ignoring unreachable code.
fs/ntfs3/frecord.c:3070 ni_write_inode() warn: inconsistent returns '&ni->ni_lock'.
fs/ntfs3/namei.c:446 ntfs_rename() warn: variable dereferenced before check 'old_inode' (see line 312)
fs/ntfs3/xattr.c:529 ntfs_get_acl_ex() warn: passing zero to 'ERR_PTR'
fs/ntfs3/attrib.c:1093 attr_data_read_resident() warn: should 'page->index << 12' be a 64 bit type?
fs/ntfs3/attrib.c:1132 attr_data_write_resident() warn: should 'page->index << 12' be a 64 bit type?
fs/ntfs3/attrib.c:1353 attr_wof_frame_info() error: uninitialized symbol 'err'.
fs/ntfs3/attrib.c:1678 attr_allocate_frame() error: we previously assumed 'attr_b' could be null (see line 1591)
fs/ntfs3/index.c:561 hdr_find_split() warn: variable dereferenced before check 'e' (see line 559)
fs/ntfs3/index.c:1137 indx_find() warn: variable dereferenced before check 'fnd' (see line 1121)
fs/ntfs3/index.c:1375 indx_find_raw() error: we previously assumed 'n' could be null (see line 1353)
fs/ntfs3/index.c:1742 indx_insert_into_root() warn: possible memory leak of 're'
fs/ntfs3/fslog.c:2191 last_log_lsn() warn: possible memory leak of 'page_bufs'
fs/ntfs3/fslog.c:2404 find_log_rec() error: we previously assumed 'rh' could be null (see line 2391)
fs/ntfs3/fslog.c:2536 find_client_next_lsn() error: double free of 'lcb->lrh'
fs/ntfs3/fslog.c:638 enum_rstbl() error: we previously assumed 't' could be null (see line 627)
fs/ntfs3/fslog.c:3141 do_action() warn: variable dereferenced before check 'mi' (see line 3102)
fs/ntfs3/fslog.c:4737 log_replay() warn: Function too hairy. No more merges.
vim +1148 fs/ntfs3/file.c
4342306f0f0d5f Konstantin Komarov 2021-08-13 1092
4342306f0f0d5f Konstantin Komarov 2021-08-13 1093 /*
4342306f0f0d5f Konstantin Komarov 2021-08-13 1094 * file_operations::write_iter
4342306f0f0d5f Konstantin Komarov 2021-08-13 1095 */
4342306f0f0d5f Konstantin Komarov 2021-08-13 1096 static ssize_t ntfs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
4342306f0f0d5f Konstantin Komarov 2021-08-13 1097 {
4342306f0f0d5f Konstantin Komarov 2021-08-13 1098 struct file *file = iocb->ki_filp;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1099 struct address_space *mapping = file->f_mapping;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1100 struct inode *inode = mapping->host;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1101 ssize_t ret;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1102 struct ntfs_inode *ni = ntfs_i(inode);
4342306f0f0d5f Konstantin Komarov 2021-08-13 1103
4342306f0f0d5f Konstantin Komarov 2021-08-13 1104 if (is_encrypted(ni)) {
4342306f0f0d5f Konstantin Komarov 2021-08-13 1105 ntfs_inode_warn(inode, "encrypted i/o not supported");
4342306f0f0d5f Konstantin Komarov 2021-08-13 1106 return -EOPNOTSUPP;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1107 }
4342306f0f0d5f Konstantin Komarov 2021-08-13 1108
4342306f0f0d5f Konstantin Komarov 2021-08-13 1109 if (is_compressed(ni) && (iocb->ki_flags & IOCB_DIRECT)) {
4342306f0f0d5f Konstantin Komarov 2021-08-13 1110 ntfs_inode_warn(inode, "direct i/o + compressed not supported");
4342306f0f0d5f Konstantin Komarov 2021-08-13 1111 return -EOPNOTSUPP;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1112 }
4342306f0f0d5f Konstantin Komarov 2021-08-13 1113
4342306f0f0d5f Konstantin Komarov 2021-08-13 1114 if (is_dedup(ni)) {
4342306f0f0d5f Konstantin Komarov 2021-08-13 1115 ntfs_inode_warn(inode, "write into deduplicated not supported");
4342306f0f0d5f Konstantin Komarov 2021-08-13 1116 return -EOPNOTSUPP;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1117 }
4342306f0f0d5f Konstantin Komarov 2021-08-13 1118
4342306f0f0d5f Konstantin Komarov 2021-08-13 1119 if (!inode_trylock(inode)) {
4342306f0f0d5f Konstantin Komarov 2021-08-13 1120 if (iocb->ki_flags & IOCB_NOWAIT)
4342306f0f0d5f Konstantin Komarov 2021-08-13 1121 return -EAGAIN;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1122 inode_lock(inode);
4342306f0f0d5f Konstantin Komarov 2021-08-13 1123 }
4342306f0f0d5f Konstantin Komarov 2021-08-13 1124
4342306f0f0d5f Konstantin Komarov 2021-08-13 1125 ret = generic_write_checks(iocb, from);
4342306f0f0d5f Konstantin Komarov 2021-08-13 1126 if (ret <= 0)
4342306f0f0d5f Konstantin Komarov 2021-08-13 1127 goto out;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1128
4342306f0f0d5f Konstantin Komarov 2021-08-13 1129 if (WARN_ON(ni->ni_flags & NI_FLAG_COMPRESSED_MASK)) {
4342306f0f0d5f Konstantin Komarov 2021-08-13 1130 /* should never be here, see ntfs_file_open*/
4342306f0f0d5f Konstantin Komarov 2021-08-13 1131 ret = -EOPNOTSUPP;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1132 goto out;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1133 }
4342306f0f0d5f Konstantin Komarov 2021-08-13 1134
4342306f0f0d5f Konstantin Komarov 2021-08-13 1135 ret = ntfs_extend(inode, iocb->ki_pos, ret, file);
4342306f0f0d5f Konstantin Komarov 2021-08-13 1136 if (ret)
4342306f0f0d5f Konstantin Komarov 2021-08-13 1137 goto out;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1138
4342306f0f0d5f Konstantin Komarov 2021-08-13 1139 ret = is_compressed(ni) ? ntfs_compress_write(iocb, from)
4342306f0f0d5f Konstantin Komarov 2021-08-13 1140 : __generic_file_write_iter(iocb, from);
4342306f0f0d5f Konstantin Komarov 2021-08-13 1141
4342306f0f0d5f Konstantin Komarov 2021-08-13 1142 out:
4342306f0f0d5f Konstantin Komarov 2021-08-13 1143 inode_unlock(inode);
4342306f0f0d5f Konstantin Komarov 2021-08-13 1144
4342306f0f0d5f Konstantin Komarov 2021-08-13 1145 if (ret > 0)
4342306f0f0d5f Konstantin Komarov 2021-08-13 1146 ret = generic_write_sync(iocb, ret);
4342306f0f0d5f Konstantin Komarov 2021-08-13 1147
4342306f0f0d5f Konstantin Komarov 2021-08-13 @1148 return ret;
4342306f0f0d5f Konstantin Komarov 2021-08-13 1149 }
4342306f0f0d5f Konstantin Komarov 2021-08-13 1150
:::::: The code at line 1148 was first introduced by commit
:::::: 4342306f0f0d5ff4315a204d315c1b51b914fca5 fs/ntfs3: Add file operations and implementation
:::::: TO: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
:::::: CC: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
---
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: 38800 bytes --]
reply other threads:[~2021-08-19 7:42 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202108191537.eZKDa53j-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@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.