* [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.