From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 25818C4707B for ; Wed, 10 Jan 2024 12:06:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B08918D0006; Wed, 10 Jan 2024 07:06:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AB8718D0001; Wed, 10 Jan 2024 07:06:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9595D8D0006; Wed, 10 Jan 2024 07:06:08 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 875568D0001 for ; Wed, 10 Jan 2024 07:06:08 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 59CC21A0B79 for ; Wed, 10 Jan 2024 12:06:08 +0000 (UTC) X-FDA: 81663273216.01.AD0BB6B Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) by imf22.hostedemail.com (Postfix) with ESMTP id 48B4DC0020 for ; Wed, 10 Jan 2024 12:06:04 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=jsibjc2J; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf22.hostedemail.com: domain of zhujia.zj@bytedance.com designates 209.85.210.175 as permitted sender) smtp.mailfrom=zhujia.zj@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1704888365; a=rsa-sha256; cv=none; b=ep5o5NjjLpHxKBFDsGD1Y7ESJSsSNu579SdGVDxfpXvcl4yTaFCEVTg0kNXECBUXIr6VIm A22ePr1ZwJjgf9gL/dAGqOqFSxV7MccPk1OX/EOn4xwx0UGV3WfGIEQTohX5uWKOldxnPx vzyrvR5g1sxcyYpntez3HeGDJmsCFKc= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=jsibjc2J; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf22.hostedemail.com: domain of zhujia.zj@bytedance.com designates 209.85.210.175 as permitted sender) smtp.mailfrom=zhujia.zj@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1704888365; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=l8cKztzv2ZktLOe0dzMuixqOyjC0S8dozIynxhbNLCA=; b=NKa4flLsQuSYE/MM+91HWgW7maYrAtUD1zBM0HU22zlYUmt8jtMOclY8WyMtToHgF7e+5F qI9x+IkUjEWFuL2PG4siJt7IhFXzI9DcxM3XRsxNAxJV0x2LUZiFgGFCxppVsLQ6oSV5XE h8ok6VYvjTi7ZG+h7UoVPPLejCh8MJo= Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-6dac225bf42so1999535b3a.0 for ; Wed, 10 Jan 2024 04:06:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1704888363; x=1705493163; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=l8cKztzv2ZktLOe0dzMuixqOyjC0S8dozIynxhbNLCA=; b=jsibjc2JtaVkNIg/X81BX0p0sa1SccTxbeM3/hpFxSasXzAhCnoWlF9ZF6sxwzW5oU 6Sgr70rMlxkLUu082U3cd6bD+PTqXnV3lr5/Ccv3O1Q1E8qwTCXvIj1eWAI6PhR0y3my VkjqB3ewyPSk30Xmph95nUxiJCgRnA4Xr8Dr/Pr3I7qEHUBQsKWEQgIvxi8GtlBHCaTR QTsUENSH4C5vuL1lsGYqkZtt/A54eH8fpzcz2QxlFgvZoQKWHLTOMf1hn8/9PWFoh+QY zKCONh0rjabdatfB3J/49fR09ZC89inQ0yI9pTyGZj3N8XxyXonGttjnc1eqvxIgGsvv 6hPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704888363; x=1705493163; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=l8cKztzv2ZktLOe0dzMuixqOyjC0S8dozIynxhbNLCA=; b=tXGX22ecgHIp47mHJy4n5SY6ZQINm77XE/muJSX+oKvJcTeMP4OvYHOOcGXfDpzj1M BLZdEESzRbrREIpnV10YBco5OpZ0ieEPmZ76Ft71XXw1QYspo9N0XEXt4rtK8cA71qIo WJ6EU4uxhpZxp2rGHoUQnXPA4af8zkAmXlNdoNTWTFEl6NcMKYHu/Xf8cBf4SZluo9sV 1SRgLm43fwzK4smc5fjQrEEnsTpV4h9yyyooy2Dacr/9jo/g0TbwRYkUHJSamf8Ogyxv tQKU2qgKzZ2TEbX/W7MbwMwRE2S7B40wbpwmaRh9inyTJq5cYjeQyAFlkDASe3VGVAWu PKdA== X-Gm-Message-State: AOJu0YxCKKGqbvtdubJ8vG3+EwF6/TyixT+uRwPcUxaXnxy4ltkqmwR9 m+ZVVHgyn5ux/m52uuBBLXzsEQHaoaScGQ== X-Google-Smtp-Source: AGHT+IFsVj/4XzAFKalFZR2COx2846rqnoRx+GhgwtyxD4J0CYsNkiv/V9CNEvpVyo59dEDH4l9dyw== X-Received: by 2002:a05:6a00:3204:b0:6da:63a5:3f32 with SMTP id bm4-20020a056a00320400b006da63a53f32mr612723pfb.66.1704888362874; Wed, 10 Jan 2024 04:06:02 -0800 (PST) Received: from [10.255.187.86] ([139.177.225.245]) by smtp.gmail.com with ESMTPSA id i128-20020a625486000000b006d99056c4edsm3470845pfb.187.2024.01.10.04.05.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 10 Jan 2024 04:06:02 -0800 (PST) Message-ID: Date: Wed, 10 Jan 2024 20:05:50 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [External] [PATCH 5/6] cachefiles: Fix signed/unsigned mixup To: David Howells , Christian Brauner , Jeff Layton , Gao Xiang , Dominique Martinet Cc: Steve French , Matthew Wilcox , Marc Dionne , Paulo Alcantara , Shyam Prasad N , Tom Talpey , Eric Van Hensbergen , Ilya Dryomov , linux-cachefs@redhat.com, linux-afs@lists.infradead.org, linux-cifs@vger.kernel.org, linux-nfs@vger.kernel.org, ceph-devel@vger.kernel.org, v9fs@lists.linux.dev, linux-erofs@lists.ozlabs.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Simon Horman , kernel test robot , Yiqun Leng , zhujia.zj@bytedance.com References: <20240109112029.1572463-1-dhowells@redhat.com> <20240109112029.1572463-6-dhowells@redhat.com> From: Jia Zhu In-Reply-To: <20240109112029.1572463-6-dhowells@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 48B4DC0020 X-Stat-Signature: rdu48eh6ku981o7ppuu184xkysfoeqay X-HE-Tag: 1704888364-27755 X-HE-Meta: U2FsdGVkX19brMiV4BS4mN0xw/EyANJ5gz34xFz4sDmI+0u1Z19OwlIb/aJN0urQDZDNKD3OKg4gUKsxsNGzwNaIcUWDP6D+WWdZQcmbYP4sqocMPcIdW6TJyXTZIhbiJUs9fCK2kf1K56WNjqZjFJc04VYqkrY/VXfnUkiuuZ+gx7kFvzwV1LWExPHCs2Z9MtUplWYJTq14iucx5sMAUbqJeETopJd2AATrW+Nz4De/OQ/EKS8lQ/J9ImFmmUcLEFEZeF9LLGoUZh7bln0VqUQ7bIARn/ILHYw3SEDxjz6QVMm+tmRTb3FTFzgZZkTkTnEqcaKoosNp7UZDoS+yNqyVsTIY23A1Txkhs2P9IQI7hVri/eNu/CU4iBx0gG8dKKWhijcndpdxnAls7nlCaHgIlrkY/t7OLDNd2fz5VoGou00lxnCiQo5ApZIcMRYZtgbLXwT4vAyMFK7A4YXdOPq3Hx82wAZ+3WZYlh4j735Wx5JvYmwKFmmLLxF7+gkd5ohZvVffovzGKJOe1777Jg5vUW8c2Xm70otPn9cHZv86yDjBnAREN1bZ0gU0znf3ZsIUXtujerijWjG0c/OP6zDQ5oBsdOofqu7CZodfhT+jl9A4QTUn+LnpcJC6ZfVvD+yENwsmvcEd+kTaHJDbxiXCtYGnEc5ez0iRqCtoa6N9ZJGQfExSRWKgIR6ZlyWRwzH6n66TWU2BpgdYRt8RVXQnFpyPT1Ggw3pAqKR75K84XX9rs1XxSxXjHBpyZ9k3kC2o08b+5aDatVEOy7k9piWqlk/qK1f4OATlkkwAK7knEq0essB2LSwFtBNrdEEBfvbPuSYKycBd/hD198AWk8vnweVD3T5ntNTVhjDXSvlBw/TIvHh+CettvUHcSRriari/82mXRibk474cwHJTnrmSE6np8iZSrpU8H4uy/tppxuuOnBGYhwVgWeJg/NurC8Iy0JswmL1NL0YzrZ9 MAd5aCul 4lCetEUznCuK3CSnDwiMLtJbMBqqt9KNZL/cfKI9/wyof4W3pGvKvvVigP1181LKE6Kf0I6BIbDSKg1X+eYt05HGucH//7db4DyvdPhZXQnMcYZanQAVUIM6bTeizx94gtp0Tk+bX1Als4QH2rQjgoNjhz1CB0sA0FXEgbsXZKN7KrloiWf9x71JphSz6uT+/wdEgu+d/lVTSfzXj0Til8b+Bjzhd+fyZJhoL9G/40zkZDY6qfCVN5stdJPdITOYv6YHbEiBt21UrKyPwd4WHBkdasrHmgxw4gEbdJrhcVLZKK2ufH0iVgcg8fit17u/CFbD847PkjswpkjcoDGRyNXxlYVIA4aHNj3ly/d4nEgsmYAgU0WuDiFHSD34VOyflVSkvtBtCsVbvKPtBadrWv//5kFawaObfDzkZ4ZjEHaLJj/8eOcEIn6NFi1msUc0IJCZLjwlnl6ibJUT5eGi/bCkXyQaj5WJoS2xUF87cVYiJ4xPqGWiM9eaOcUJZ2jNmHjBPqKviNB+GkOTUIcDj/0F1MzBbdom2VXl3pqUkH0CSA4ueb6AMkRN99MeYX/UvZ9pgiP+DoIAGCIEr+FnMvQ22/+ocrHzbm/cbg4BEzd0SI4VSKKWWuKIXEvPMwrvCm1i6Z8p4Dktd5rkMeeiGZBpETCwd32q3oDGVMcKwUB5UmEyr4YV20tKdGaAP4ZnuDG2kiY0SCz8xKGU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Tested-by: Jia Zhu 在 2024/1/9 19:20, David Howells 写道: > In __cachefiles_prepare_write(), the start and pos variables were made > unsigned 64-bit so that the casts in the checking could be got rid of - > which should be fine since absolute file offsets can't be negative, except > that an error code may be obtained from vfs_llseek(), which *would* be > negative. This breaks the error check. > > Fix this for now by reverting pos and start to be signed and putting back > the casts. Unfortunately, the error value checks cannot be replaced with > IS_ERR_VALUE() as long might be 32-bits. > > Fixes: 7097c96411d2 ("cachefiles: Fix __cachefiles_prepare_write()") > Reported-by: Simon Horman > Reported-by: kernel test robot > Closes: https://lore.kernel.org/oe-kbuild-all/202401071152.DbKqMQMu-lkp@intel.com/ > Signed-off-by: David Howells > Reviewed-by: Simon Horman > cc: Gao Xiang > cc: Yiqun Leng > cc: Jia Zhu > cc: Jeff Layton > cc: linux-cachefs@redhat.com > cc: linux-erofs@lists.ozlabs.org > cc: linux-fsdevel@vger.kernel.org > cc: linux-mm@kvack.org > --- > fs/cachefiles/io.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/fs/cachefiles/io.c b/fs/cachefiles/io.c > index 3eec26967437..9a2cb2868e90 100644 > --- a/fs/cachefiles/io.c > +++ b/fs/cachefiles/io.c > @@ -522,7 +522,7 @@ int __cachefiles_prepare_write(struct cachefiles_object *object, > bool no_space_allocated_yet) > { > struct cachefiles_cache *cache = object->volume->cache; > - unsigned long long start = *_start, pos; > + loff_t start = *_start, pos; > size_t len = *_len; > int ret; > > @@ -556,7 +556,7 @@ int __cachefiles_prepare_write(struct cachefiles_object *object, > cachefiles_trace_seek_error); > return pos; > } > - if (pos >= start + *_len) > + if ((u64)pos >= (u64)start + *_len) > goto check_space; /* Unallocated region */ > > /* We have a block that's at least partially filled - if we're low on > @@ -575,7 +575,7 @@ int __cachefiles_prepare_write(struct cachefiles_object *object, > cachefiles_trace_seek_error); > return pos; > } > - if (pos >= start + *_len) > + if ((u64)pos >= (u64)start + *_len) > return 0; /* Fully allocated */ > > /* Partially allocated, but insufficient space: cull. */ >