Skip to contentSkip to conversation

fs/btrfs/ioctl.c:1436 btrfs_ioctl_resize() error: 'device' dereferencing possible ERR_PTR()

PATCH New Dan Carpenter 1 participant 1 message Dec 20, 2012 Btrfs file system

lore
Share & tools
lore
#0 lore raw

PATCH 21/21 fs/btrfs/ioctl.c:1436 btrfs_ioctl_resize() error: 'device' dereferencing possible ERR_PTR()

[ get_avail_device() sometimes returns an ERR_PTR ]

Hi Liu,

FYI, there are new smatch warnings show up in

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next.git master
head:   3d294381647ab114f525a0ccf3d28f8172ce6a5f
commit: 3d294381647ab114f525a0ccf3d28f8172ce6a5f [21/21] Btrfs: resize all devices when we dont assign a specific, device id

fs/btrfs/ioctl.c:386 create_subvol() warn: function puts 544 bytes on stack
+ fs/btrfs/ioctl.c:1436 btrfs_ioctl_resize() error: 'device' dereferencing possible ERR_PTR()

git remote add josef-btrfs git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next.git
git remote update josef-btrfs
git checkout 3d294381647ab114f525a0ccf3d28f8172ce6a5f
vim +/device +1436 fs/btrfs/ioctl.c

3d294381 Liu Bo            2012-12-20  1420  			ret = -EINVAL;
3d294381 Liu Bo            2012-12-20  1421  			goto out_free;
3d294381 Liu Bo            2012-12-20  1422  		}
3d294381 Liu Bo            2012-12-20  1423  	}
3d294381 Liu Bo            2012-12-20  1424  
3d294381 Liu Bo            2012-12-20  1425  	if (devid < -1ULL)
3d294381 Liu Bo            2012-12-20  1426  		device = btrfs_find_device(root->fs_info, devid, NULL, NULL);
3d294381 Liu Bo            2012-12-20  1427  	else
3d294381 Liu Bo            2012-12-20  1428  		device = get_avail_device(root, 0);
3d294381 Liu Bo            2012-12-20  1429  again:
f46b5a66 Christoph Hellwig 2008-06-11  1430  	if (!device) {
5bb14682 Arnd Hannemann    2011-11-20  1431  		printk(KERN_INFO "btrfs: resizer unable to find device %llu\n",
21380931 Joel Becker       2009-04-21  1432  		       (unsigned long long)devid);
f46b5a66 Christoph Hellwig 2008-06-11  1433  		ret = -EINVAL;
c9e9f97b Ilya Dryomov      2012-01-16  1434  		goto out_free;
f46b5a66 Christoph Hellwig 2008-06-11  1435  	}
4e42ae1b Liu Bo            2012-06-14 @1436  	if (device->fs_devices && device->fs_devices->seeding) {
4e42ae1b Liu Bo            2012-06-14  1437  		printk(KERN_INFO "btrfs: resizer unable to apply on "
a8c4a33b Chris Mason       2012-06-15  1438  		       "seeding device %llu\n",
a8c4a33b Chris Mason       2012-06-15  1439  		       (unsigned long long)devid);
4e42ae1b Liu Bo            2012-06-14  1440  		ret = -EINVAL;
4e42ae1b Liu Bo            2012-06-14  1441  		goto out_free;
4e42ae1b Liu Bo            2012-06-14  1442  	}
4e42ae1b Liu Bo            2012-06-14  1443  
3d294381 Liu Bo            2012-12-20  1444  	if (use_max)

---
0-DAY kernel build testing backend Open Source Technology Center
Fengguang Wu, Yuanhan Liu Intel Corporation