All of lore.kernel.org
 help / color / mirror / Atom feed
* [goldwynr:btrfs-iomap 32/37] fs/btrfs/iomap.c:114:5-8: WARNING: Unsigned expression compared with zero: ret < 0 (fwd)
@ 2019-11-16 17:58 Julia Lawall
  0 siblings, 0 replies; only message in thread
From: Julia Lawall @ 2019-11-16 17:58 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 9235 bytes --]

ret has type size_t, which is unsigned, and thus not less than 0 (line
114).

julia

---------- Forwarded message ----------
Date: Fri, 15 Nov 2019 15:54:46 +0800
From: kbuild test robot <lkp@intel.com>
To: kbuild(a)lists.01.org
Cc: Julia Lawall <julia.lawall@lip6.fr>
Subject: [goldwynr:btrfs-iomap 32/37] fs/btrfs/iomap.c:114:5-8: WARNING:
    Unsigned expression compared with zero: ret < 0

CC: kbuild-all(a)lists.01.org
TO: Goldwyn Rodrigues <rgoldwyn@suse.com>

tree:   https://github.com/goldwynr/linux btrfs-iomap
head:   e59ace8d00fdaf2bdd99d9606791e6591bff5730
commit: 3953f8a71ab128ebb004185283aa1de2d661e7d9 [32/37] btrfs: Move buffered write code to iomap.c
:::::: branch date: 10 days ago
:::::: commit date: 2 weeks ago

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Julia Lawall <julia.lawall@lip6.fr>

>> fs/btrfs/iomap.c:114:5-8: WARNING: Unsigned expression compared with zero: ret < 0

# https://github.com/goldwynr/linux/commit/3953f8a71ab128ebb004185283aa1de2d661e7d9
git remote add goldwynr https://github.com/goldwynr/linux
git remote update goldwynr
git checkout 3953f8a71ab128ebb004185283aa1de2d661e7d9
vim +114 fs/btrfs/iomap.c

3953f8a71ab128 Goldwyn Rodrigues 2019-10-05   92
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05   93  static int buffered_write_iomap_begin(struct inode *inode, loff_t pos,
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05   94  		loff_t length, unsigned flags, struct iomap *iomap,
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05   95  		struct iomap *srcmap)
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05   96  {
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05   97  	size_t ret;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05   98  	size_t sector_offset;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05   99  	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  100  	struct btrfs_iomap *bi;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  101  	size_t write_bytes = length;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  102  	loff_t end;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  103
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  104  	bi = kzalloc(sizeof(struct btrfs_iomap), GFP_NOFS);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  105  	if (!bi)
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  106  		return -ENOMEM;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  107
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  108  	sector_offset = pos & (fs_info->sectorsize - 1);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  109  	bi->reserved_bytes = round_up(write_bytes + sector_offset,
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  110  			fs_info->sectorsize);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  111
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  112  	ret = btrfs_check_data_free_space(inode, &bi->data_reserved, pos,
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  113  			write_bytes);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05 @114  	if (ret < 0) {
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  115  		if ((BTRFS_I(inode)->flags & (BTRFS_INODE_NODATACOW |
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  116  						BTRFS_INODE_PREALLOC)) &&
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  117  				btrfs_can_nocow(BTRFS_I(inode), pos,
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  118  					&write_bytes) > 0) {
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  119  			/*
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  120  			 * For nodata cow case, no need to reserve
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  121  			 * data space.
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  122  			 */
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  123  			bi->only_release_metadata = true;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  124  			bi->reserved_bytes = round_up(write_bytes +
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  125  					sector_offset,
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  126  					fs_info->sectorsize);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  127  		} else {
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  128  			goto out;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  129  		}
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  130  	}
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  131
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  132  	WARN_ON(bi->reserved_bytes == 0);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  133  	ret = btrfs_delalloc_reserve_metadata(BTRFS_I(inode),
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  134  			bi->reserved_bytes);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  135  	if (ret)
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  136  		goto release;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  137
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  138  again:
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  139  	bi->extents_locked = lock_and_cleanup_extent_if_need(
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  140  			BTRFS_I(inode), pos, write_bytes, &bi->start,
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  141  			&bi->end, &bi->cached_state);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  142  	if (bi->extents_locked < 0) {
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  143  		if (bi->extents_locked == -EAGAIN)
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  144  			goto again;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  145  		btrfs_delalloc_release_extents(BTRFS_I(inode),
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  146  				bi->reserved_bytes);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  147  		ret = bi->extents_locked;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  148  		goto release;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  149  	}
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  150
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  151  	iomap->private = bi;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  152  	iomap->length = write_bytes;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  153  	iomap->offset = pos;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  154  	end = pos + write_bytes;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  155
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  156  	/* Set srcmap for CoW iff start/end is not page aligned */
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  157  	if (((pos & (PAGE_SIZE - 1)) || (end & (PAGE_SIZE - 1)))) {
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  158  		struct extent_map *em;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  159  		em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, pos,
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  160  				      write_bytes, 0);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  161  		if (IS_ERR(em)) {
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  162  			ret = PTR_ERR(em);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  163  			goto release;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  164  		}
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  165  		em_to_iomap(em, srcmap);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  166  		free_extent_map(em);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  167  	}
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  168
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  169  	iomap->type = IOMAP_DELALLOC;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  170  	iomap->addr = IOMAP_NULL_ADDR;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  171  	iomap->bdev = fs_info->fs_devices->latest_bdev;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  172  	return 0;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  173
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  174  release:
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  175  	if (bi->extents_locked)
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  176  		unlock_extent_cached(&BTRFS_I(inode)->io_tree, bi->start,
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  177  				bi->end, &bi->cached_state);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  178  	if (bi->only_release_metadata) {
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  179  		struct btrfs_root *root = BTRFS_I(inode)->root;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  180  		btrfs_end_write_no_snapshotting(root);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  181  		btrfs_delalloc_release_metadata(BTRFS_I(inode),
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  182  				bi->reserved_bytes, true);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  183  	} else {
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  184  		btrfs_delalloc_release_space(inode, bi->data_reserved,
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  185  				round_down(pos, fs_info->sectorsize),
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  186  				bi->reserved_bytes, true);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  187  	}
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  188  	extent_changeset_free(bi->data_reserved);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  189  out:
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  190  	kfree(bi);
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  191  	return ret;
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  192  }
3953f8a71ab128 Goldwyn Rodrigues 2019-10-05  193

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-11-16 17:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-16 17:58 [goldwynr:btrfs-iomap 32/37] fs/btrfs/iomap.c:114:5-8: WARNING: Unsigned expression compared with zero: ret < 0 (fwd) Julia Lawall

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.