Re: [PATCH 19/25] NFS: Replace custom error reporting mechanism with generic one

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Trond,

url:    https://github.com/0day-ci/linux/commits/Trond-Myklebust/Fix-up-soft-mounts-for-NFSv4-x/20190331-130454
base:   git://git.linux-nfs.org/projects/trondmy/linux-nfs.git linux-next

New smatch warnings:
fs/nfs/write.c:1849 nfs_commit_release_pages() error: we previously assumed 'req->wb_page' could be null (see line 1840)
fs/nfs/write.c:1850 nfs_commit_release_pages() warn: variable dereferenced before check 'req->wb_page' (see line 1849)


# https://github.com/0day-ci/linux/commit/2f2cfd52810bf732da40334bf590dbadda75d6cf
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout 2f2cfd52810bf732da40334bf590dbadda75d6cf
vim +1849 fs/nfs/write.c

c9d8f89d9 Trond Myklebust 2008-04-15  1829  
f453a54a0 Fred Isaman     2012-04-20  1830  static void nfs_commit_release_pages(struct nfs_commit_data *data)
c9d8f89d9 Trond Myklebust 2008-04-15  1831  {
c9d8f89d9 Trond Myklebust 2008-04-15  1832  	struct nfs_page	*req;
c9d8f89d9 Trond Myklebust 2008-04-15  1833  	int status = data->task.tk_status;
f453a54a0 Fred Isaman     2012-04-20  1834  	struct nfs_commit_info cinfo;
353db7966 NeilBrown       2014-09-24  1835  	struct nfs_server *nfss;
788e7a89a Trond Myklebust 2006-03-20  1836  
^1da177e4 Linus Torvalds  2005-04-16  1837  	while (!list_empty(&data->pages)) {
^1da177e4 Linus Torvalds  2005-04-16  1838  		req = nfs_list_entry(data->pages.next);
^1da177e4 Linus Torvalds  2005-04-16  1839  		nfs_list_remove_request(req);
67911c8f1 Anna Schumaker  2016-01-19 @1840  		if (req->wb_page)
                                                            ^^^^^^^^^^^^

d6d6dc7cd Fred Isaman     2012-03-08  1841  			nfs_clear_page_commit(req->wb_page);
^1da177e4 Linus Torvalds  2005-04-16  1842  
1e8968c5b Niels de Vos    2013-12-17  1843  		dprintk("NFS:       commit (%s/%llu %d@%lld)",
3d4ff43d8 Al Viro         2011-06-22  1844  			req->wb_context->dentry->d_sb->s_id,
2b0143b5c David Howells   2015-03-17  1845  			(unsigned long long)NFS_FILEID(d_inode(req->wb_context->dentry)),
^1da177e4 Linus Torvalds  2005-04-16  1846  			req->wb_bytes,
^1da177e4 Linus Torvalds  2005-04-16  1847  			(long long)req_offset(req));
c9d8f89d9 Trond Myklebust 2008-04-15  1848  		if (status < 0) {
2f2cfd528 Trond Myklebust 2019-03-28 @1849  			nfs_mapping_set_error(req->wb_page, status);
                                                                                      ^^^^^^^^^^^^
Dereferenced inside function probably?

38a33101d Kinglong Mee    2017-03-09 @1850  			if (req->wb_page)
                                                                    ^^^^^^^^^^^^
Too late.

^1da177e4 Linus Torvalds  2005-04-16  1851  				nfs_inode_remove_request(req);
ddeaa6379 Joe Perches     2016-10-15  1852  			dprintk_cont(", error = %d\n", status);
^1da177e4 Linus Torvalds  2005-04-16  1853  			goto next;
^1da177e4 Linus Torvalds  2005-04-16  1854  		}
^1da177e4 Linus Torvalds  2005-04-16  1855  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux