Hello Andrew Morton, The patch f79e2abb9bd4: "[PATCH] sys_sync_file_range()" from Mar 31, 2006, leads to the following static checker warning: fs/sync.c:298 ksys_sync_file_range() warn: signed overflow undefined. 'offset + nbytes < offset' fs/sync.c 279 int ksys_sync_file_range(int fd, loff_t offset, loff_t nbytes, 280 unsigned int flags) 281 { 282 int ret; 283 struct fd f; 284 struct address_space *mapping; 285 loff_t endbyte; /* inclusive */ 286 umode_t i_mode; 287 288 ret = -EINVAL; 289 if (flags & ~VALID_FLAGS) 290 goto out; 291 292 endbyte = offset + nbytes; 293 294 if ((s64)offset < 0) 295 goto out; 296 if ((s64)endbyte < 0) 297 goto out; 298 if (endbyte < offset) ^^^^^^^^^^^^^^^^ This is undefined but I think it works with the kernel build options? 299 goto out; 300 301 if (sizeof(pgoff_t) == 4) { 302 if (offset >= (0x100000000ULL << PAGE_SHIFT)) { 303 /* 304 * The range starts outside a 32 bit machine's 305 * pagecache addressing capabilities. Let it "succeed" 306 */ 307 ret = 0; 308 goto out; 309 } 310 if (endbyte >= (0x100000000ULL << PAGE_SHIFT)) { 311 /* 312 * Out to EOF 313 */ 314 nbytes = 0; 315 } 316 } regards, dan carpenter