* fs/ntfs3/attrib.c:1353:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
@ 2022-04-21 6:32 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-04-21 6:32 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 22787 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 559089e0a93d44280ec3ab478830af319c56dbe3
commit: 6e5be40d32fb1907285277c02e74493ed43d77fe fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile
date: 8 months ago
:::::: branch date: 17 hours ago
:::::: commit date: 8 months ago
config: riscv-randconfig-c006-20220420 (https://download.01.org/0day-ci/archive/20220420/202204202014.95CrpH92-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project bac6cd5bf85669e3376610cfc4c4f9ca015e7b9b)
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 riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e5be40d32fb1907285277c02e74493ed43d77fe
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 6e5be40d32fb1907285277c02e74493ed43d77fe
# save the config file
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
^
fs/ntfs3/attrib.c:519:6: note: Assuming 'new_size' is <= 'old_size'
if (new_size > old_size) {
^~~~~~~~~~~~~~~~~~~
fs/ntfs3/attrib.c:519:2: note: Taking false branch
if (new_size > old_size) {
^
fs/ntfs3/attrib.c:686:6: note: Assuming 'new_size' is not equal to 'old_size'
if (new_size != old_size ||
^~~~~~~~~~~~~~~~~~~~
fs/ntfs3/attrib.c:686:27: note: Left side of '||' is true
if (new_size != old_size ||
^
fs/ntfs3/attrib.c:688:9: note: Assuming '__UNIQUE_ID___x275' is <= '__UNIQUE_ID___y276'
vcn = max(svcn, new_alen);
^
include/linux/minmax.h:52:19: note: expanded from macro 'max'
#define max(x, y) __careful_cmp(x, y, >)
^~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^~~~~~~~~~
fs/ntfs3/attrib.c:688:9: note: '?' condition is false
vcn = max(svcn, new_alen);
^
include/linux/minmax.h:52:19: note: expanded from macro 'max'
#define max(x, y) __careful_cmp(x, y, >)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
fs/ntfs3/attrib.c:694:7: note: Assuming 'err' is 0
if (err)
^~~
fs/ntfs3/attrib.c:694:3: note: Taking false branch
if (err)
^
fs/ntfs3/attrib.c:699:7: note: Assuming 'vcn' is <= 'svcn'
if (vcn > svcn) {
^~~~~~~~~~
fs/ntfs3/attrib.c:699:3: note: Taking false branch
if (vcn > svcn) {
^
fs/ntfs3/attrib.c:703:14: note: Assuming 'le' is null
} else if (le && le->vcn) {
^~
fs/ntfs3/attrib.c:703:17: note: Left side of '&&' is false
} else if (le && le->vcn) {
^
fs/ntfs3/attrib.c:728:7: note: 'vcn' is equal to 'new_alen'
if (vcn == new_alen) {
^~~
fs/ntfs3/attrib.c:728:3: note: Taking true branch
if (vcn == new_alen) {
^
fs/ntfs3/attrib.c:730:8: note: Assuming 'new_size' is >= 'old_valid'
if (new_size < old_valid)
^~~~~~~~~~~~~~~~~~~~
fs/ntfs3/attrib.c:730:4: note: Taking false branch
if (new_size < old_valid)
^
fs/ntfs3/attrib.c:744:7: note: 'is_ext' is false
if (is_ext)
^~~~~~
fs/ntfs3/attrib.c:744:3: note: Taking false branch
if (is_ext)
^
fs/ntfs3/attrib.c:750:7: note: Assuming 'new_alloc_tmp' is > 'new_alloc'
if (new_alloc_tmp <= new_alloc)
^~~~~~~~~~~~~~~~~~~~~~~~~~
fs/ntfs3/attrib.c:750:3: note: Taking false branch
if (new_alloc_tmp <= new_alloc)
^
fs/ntfs3/attrib.c:756:7: note: 'le' is not equal to 'le_b'
if (le == le_b) {
^~
fs/ntfs3/attrib.c:756:3: note: Taking false branch
if (le == le_b) {
^
fs/ntfs3/attrib.c:764:7: note: Access to field 'type' results in a dereference of a null pointer (loaded from variable 'le')
if (le->type != type || le->name_len != name_len ||
^~
fs/ntfs3/attrib.c:1191:7: warning: Value stored to 'vcn' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
CLST vcn = from >> cluster_bits;
^~~ ~~~~~~~~~~~~~~~~~~~~
fs/ntfs3/attrib.c:1191:7: note: Value stored to 'vcn' during its initialization is never read
CLST vcn = from >> cluster_bits;
^~~ ~~~~~~~~~~~~~~~~~~~~
>> fs/ntfs3/attrib.c:1353:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
return err;
^ ~~~
fs/ntfs3/attrib.c:1225:9: note: 'err' declared without an initial value
int i, err;
^~~
fs/ntfs3/attrib.c:1229:6: note: Assuming field 'i_size' is >= 4294967296
if (ni->vfs_inode.i_size < 0x100000000ull) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/ntfs3/attrib.c:1229:2: note: Taking false branch
if (ni->vfs_inode.i_size < 0x100000000ull) {
^
fs/ntfs3/attrib.c:1245:6: note: Assuming field 'non_res' is not equal to 0
if (!attr->non_res) {
^~~~~~~~~~~~~~
fs/ntfs3/attrib.c:1245:2: note: Taking false branch
if (!attr->non_res) {
^
fs/ntfs3/attrib.c:1270:6: note: Assuming 'page' is non-null
if (!page) {
^~~~~
fs/ntfs3/attrib.c:1270:2: note: Taking false branch
if (!page) {
^
fs/ntfs3/attrib.c:1282:6: note: Assuming the condition is false
if (vbo[1]) {
^~~~~~
fs/ntfs3/attrib.c:1282:2: note: Taking false branch
if (vbo[1]) {
^
fs/ntfs3/attrib.c:1296:7: note: Assuming 'index' is equal to field 'index'
if (index != page->index) {
^~~~~~~~~~~~~~~~~~~~
fs/ntfs3/attrib.c:1296:3: note: Taking false branch
if (index != page->index) {
^
fs/ntfs3/attrib.c:1315:7: note: 'i' is 1
if (i) {
^
fs/ntfs3/attrib.c:1315:3: note: Taking true branch
if (i) {
^
fs/ntfs3/attrib.c:1316:4: note: Taking false branch
if (bytes_per_off == sizeof(__le32)) {
^
fs/ntfs3/attrib.c:1293:2: note: Loop condition is false. Exiting loop
do {
^
fs/ntfs3/attrib.c:1353:2: note: Undefined or garbage value returned to caller
return err;
^ ~~~
fs/ntfs3/attrib.c:1678:15: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
valid_size = le64_to_cpu(attr_b->nres.valid_size);
^
include/linux/byteorder/generic.h:87:21: note: expanded from macro 'le64_to_cpu'
#define le64_to_cpu __le64_to_cpu
^
include/uapi/linux/byteorder/little_endian.h:32:50: note: expanded from macro '__le64_to_cpu'
#define __le64_to_cpu(x) ((__force __u64)(__le64)(x))
^~~
fs/ntfs3/attrib.c:1482:6: note: Assuming 'attr_b' is non-null
if (!attr_b)
^~~~~~~
fs/ntfs3/attrib.c:1482:2: note: Taking false branch
if (!attr_b)
^
fs/ntfs3/attrib.c:1485:6: note: Assuming the condition is false
if (!is_attr_ext(attr_b))
^~~~~~~~~~~~~~~~~~~~
fs/ntfs3/attrib.c:1485:2: note: Taking false branch
if (!is_attr_ext(attr_b))
^
fs/ntfs3/attrib.c:1495:6: note: Assuming 'svcn' is > 'vcn'
if (svcn <= vcn && vcn < evcn1) {
^~~~~~~~~~~
fs/ntfs3/attrib.c:1495:18: note: Left side of '&&' is false
if (svcn <= vcn && vcn < evcn1) {
^
fs/ntfs3/attrib.c:1499:13: note: Assuming 'le_b' is non-null
} else if (!le_b) {
^~~~~
fs/ntfs3/attrib.c:1499:9: note: Taking false branch
} else if (!le_b) {
^
fs/ntfs3/attrib.c:1506:7: note: Assuming 'attr' is non-null
if (!attr) {
^~~~~
fs/ntfs3/attrib.c:1506:3: note: Taking false branch
if (!attr) {
^
fs/ntfs3/attrib.c:1515:6: note: Assuming 'err' is 0
if (err)
^~~
fs/ntfs3/attrib.c:1515:2: note: Taking false branch
if (err)
^
fs/ntfs3/attrib.c:1518:8: note: Calling 'attr_is_frame_compressed'
err = attr_is_frame_compressed(ni, attr_b, frame, &clst_data);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/ntfs3/attrib.c:1373:6: note: Assuming the condition is false
if (!is_attr_compressed(attr))
vim +1353 fs/ntfs3/attrib.c
be71b5cba2e648 Konstantin Komarov 2021-08-13 1208
be71b5cba2e648 Konstantin Komarov 2021-08-13 1209 #ifdef CONFIG_NTFS3_LZX_XPRESS
be71b5cba2e648 Konstantin Komarov 2021-08-13 1210 /*
be71b5cba2e648 Konstantin Komarov 2021-08-13 1211 * attr_wof_frame_info
be71b5cba2e648 Konstantin Komarov 2021-08-13 1212 *
be71b5cba2e648 Konstantin Komarov 2021-08-13 1213 * read header of xpress/lzx file to get info about frame
be71b5cba2e648 Konstantin Komarov 2021-08-13 1214 */
be71b5cba2e648 Konstantin Komarov 2021-08-13 1215 int attr_wof_frame_info(struct ntfs_inode *ni, struct ATTRIB *attr,
be71b5cba2e648 Konstantin Komarov 2021-08-13 1216 struct runs_tree *run, u64 frame, u64 frames,
be71b5cba2e648 Konstantin Komarov 2021-08-13 1217 u8 frame_bits, u32 *ondisk_size, u64 *vbo_data)
be71b5cba2e648 Konstantin Komarov 2021-08-13 1218 {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1219 struct ntfs_sb_info *sbi = ni->mi.sbi;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1220 u64 vbo[2], off[2], wof_size;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1221 u32 voff;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1222 u8 bytes_per_off;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1223 char *addr;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1224 struct page *page;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1225 int i, err;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1226 __le32 *off32;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1227 __le64 *off64;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1228
be71b5cba2e648 Konstantin Komarov 2021-08-13 1229 if (ni->vfs_inode.i_size < 0x100000000ull) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1230 /* file starts with array of 32 bit offsets */
be71b5cba2e648 Konstantin Komarov 2021-08-13 1231 bytes_per_off = sizeof(__le32);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1232 vbo[1] = frame << 2;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1233 *vbo_data = frames << 2;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1234 } else {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1235 /* file starts with array of 64 bit offsets */
be71b5cba2e648 Konstantin Komarov 2021-08-13 1236 bytes_per_off = sizeof(__le64);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1237 vbo[1] = frame << 3;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1238 *vbo_data = frames << 3;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1239 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1240
be71b5cba2e648 Konstantin Komarov 2021-08-13 1241 /*
be71b5cba2e648 Konstantin Komarov 2021-08-13 1242 * read 4/8 bytes at [vbo - 4(8)] == offset where compressed frame starts
be71b5cba2e648 Konstantin Komarov 2021-08-13 1243 * read 4/8 bytes@[vbo] == offset where compressed frame ends
be71b5cba2e648 Konstantin Komarov 2021-08-13 1244 */
be71b5cba2e648 Konstantin Komarov 2021-08-13 1245 if (!attr->non_res) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1246 if (vbo[1] + bytes_per_off > le32_to_cpu(attr->res.data_size)) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1247 ntfs_inode_err(&ni->vfs_inode, "is corrupted");
be71b5cba2e648 Konstantin Komarov 2021-08-13 1248 return -EINVAL;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1249 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1250 addr = resident_data(attr);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1251
be71b5cba2e648 Konstantin Komarov 2021-08-13 1252 if (bytes_per_off == sizeof(__le32)) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1253 off32 = Add2Ptr(addr, vbo[1]);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1254 off[0] = vbo[1] ? le32_to_cpu(off32[-1]) : 0;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1255 off[1] = le32_to_cpu(off32[0]);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1256 } else {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1257 off64 = Add2Ptr(addr, vbo[1]);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1258 off[0] = vbo[1] ? le64_to_cpu(off64[-1]) : 0;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1259 off[1] = le64_to_cpu(off64[0]);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1260 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1261
be71b5cba2e648 Konstantin Komarov 2021-08-13 1262 *vbo_data += off[0];
be71b5cba2e648 Konstantin Komarov 2021-08-13 1263 *ondisk_size = off[1] - off[0];
be71b5cba2e648 Konstantin Komarov 2021-08-13 1264 return 0;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1265 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1266
be71b5cba2e648 Konstantin Komarov 2021-08-13 1267 wof_size = le64_to_cpu(attr->nres.data_size);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1268 down_write(&ni->file.run_lock);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1269 page = ni->file.offs_page;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1270 if (!page) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1271 page = alloc_page(GFP_KERNEL);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1272 if (!page) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1273 err = -ENOMEM;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1274 goto out;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1275 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1276 page->index = -1;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1277 ni->file.offs_page = page;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1278 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1279 lock_page(page);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1280 addr = page_address(page);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1281
be71b5cba2e648 Konstantin Komarov 2021-08-13 1282 if (vbo[1]) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1283 voff = vbo[1] & (PAGE_SIZE - 1);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1284 vbo[0] = vbo[1] - bytes_per_off;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1285 i = 0;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1286 } else {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1287 voff = 0;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1288 vbo[0] = 0;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1289 off[0] = 0;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1290 i = 1;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1291 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1292
be71b5cba2e648 Konstantin Komarov 2021-08-13 1293 do {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1294 pgoff_t index = vbo[i] >> PAGE_SHIFT;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1295
be71b5cba2e648 Konstantin Komarov 2021-08-13 1296 if (index != page->index) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1297 u64 from = vbo[i] & ~(u64)(PAGE_SIZE - 1);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1298 u64 to = min(from + PAGE_SIZE, wof_size);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1299
be71b5cba2e648 Konstantin Komarov 2021-08-13 1300 err = attr_load_runs_range(ni, ATTR_DATA, WOF_NAME,
be71b5cba2e648 Konstantin Komarov 2021-08-13 1301 ARRAY_SIZE(WOF_NAME), run,
be71b5cba2e648 Konstantin Komarov 2021-08-13 1302 from, to);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1303 if (err)
be71b5cba2e648 Konstantin Komarov 2021-08-13 1304 goto out1;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1305
be71b5cba2e648 Konstantin Komarov 2021-08-13 1306 err = ntfs_bio_pages(sbi, run, &page, 1, from,
be71b5cba2e648 Konstantin Komarov 2021-08-13 1307 to - from, REQ_OP_READ);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1308 if (err) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1309 page->index = -1;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1310 goto out1;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1311 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1312 page->index = index;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1313 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1314
be71b5cba2e648 Konstantin Komarov 2021-08-13 1315 if (i) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1316 if (bytes_per_off == sizeof(__le32)) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1317 off32 = Add2Ptr(addr, voff);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1318 off[1] = le32_to_cpu(*off32);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1319 } else {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1320 off64 = Add2Ptr(addr, voff);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1321 off[1] = le64_to_cpu(*off64);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1322 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1323 } else if (!voff) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1324 if (bytes_per_off == sizeof(__le32)) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1325 off32 = Add2Ptr(addr, PAGE_SIZE - sizeof(u32));
be71b5cba2e648 Konstantin Komarov 2021-08-13 1326 off[0] = le32_to_cpu(*off32);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1327 } else {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1328 off64 = Add2Ptr(addr, PAGE_SIZE - sizeof(u64));
be71b5cba2e648 Konstantin Komarov 2021-08-13 1329 off[0] = le64_to_cpu(*off64);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1330 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1331 } else {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1332 /* two values in one page*/
be71b5cba2e648 Konstantin Komarov 2021-08-13 1333 if (bytes_per_off == sizeof(__le32)) {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1334 off32 = Add2Ptr(addr, voff);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1335 off[0] = le32_to_cpu(off32[-1]);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1336 off[1] = le32_to_cpu(off32[0]);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1337 } else {
be71b5cba2e648 Konstantin Komarov 2021-08-13 1338 off64 = Add2Ptr(addr, voff);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1339 off[0] = le64_to_cpu(off64[-1]);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1340 off[1] = le64_to_cpu(off64[0]);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1341 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1342 break;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1343 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1344 } while (++i < 2);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1345
be71b5cba2e648 Konstantin Komarov 2021-08-13 1346 *vbo_data += off[0];
be71b5cba2e648 Konstantin Komarov 2021-08-13 1347 *ondisk_size = off[1] - off[0];
be71b5cba2e648 Konstantin Komarov 2021-08-13 1348
be71b5cba2e648 Konstantin Komarov 2021-08-13 1349 out1:
be71b5cba2e648 Konstantin Komarov 2021-08-13 1350 unlock_page(page);
be71b5cba2e648 Konstantin Komarov 2021-08-13 1351 out:
be71b5cba2e648 Konstantin Komarov 2021-08-13 1352 up_write(&ni->file.run_lock);
be71b5cba2e648 Konstantin Komarov 2021-08-13 @1353 return err;
be71b5cba2e648 Konstantin Komarov 2021-08-13 1354 }
be71b5cba2e648 Konstantin Komarov 2021-08-13 1355 #endif
be71b5cba2e648 Konstantin Komarov 2021-08-13 1356
:::::: The code at line 1353 was first introduced by commit
:::::: be71b5cba2e6485e8959da7a9f9a44461a1bb074 fs/ntfs3: Add attrib operations
:::::: TO: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
:::::: CC: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-04-21 6:32 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-21 6:32 fs/ntfs3/attrib.c:1353:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn] kernel test robot
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.