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 8708FC4332F for ; Tue, 18 Oct 2022 02:10:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B2BE66B0072; Mon, 17 Oct 2022 22:10:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id ADB2A6B0075; Mon, 17 Oct 2022 22:10:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 97B6A6B0078; Mon, 17 Oct 2022 22:10:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 88D0B6B0072 for ; Mon, 17 Oct 2022 22:10:21 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 5E267A0110 for ; Tue, 18 Oct 2022 02:10:21 +0000 (UTC) X-FDA: 80032440642.29.6FC5D7E Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) by imf07.hostedemail.com (Postfix) with ESMTP id 0A11B4002D for ; Tue, 18 Oct 2022 02:10:20 +0000 (UTC) Received: by mail-pj1-f54.google.com with SMTP id t10-20020a17090a4e4a00b0020af4bcae10so12638117pjl.3 for ; Mon, 17 Oct 2022 19:10:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=pXq7vl1l4DCjha3jqz1NjXeWrlpGUKnIqvQa04QtbZg=; b=ajKiCjw2GqkqjmR7+UI5hnJevb9nOayKTSN8Hl8the106FXQFlJrH8Mcjx/MWGnIa3 OHZ7VQictyh+NrqyMc0IFrEkAmO5/icu3OiRD7g7OYPNI2I/2ACK7uyneihMwI8F2CNI ArL1/oXS9AzLQwfNifqbHcqo56Nw4oo7yznig= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=pXq7vl1l4DCjha3jqz1NjXeWrlpGUKnIqvQa04QtbZg=; b=PxUUgDmPUmWMjcDycdB9pHl8e1fgrRgU/6q9ZEc2/gV8A3n8q8xeeqdfluwthNFs/g if0Oow2KoJ4nTkxOMoAhKvvf7qjfyUpCt6H/vuJ8E9m+6UTgnFt2hQxfY5PkJ4m1ms7f TjYbqMTI6fgnfl5VVrmtyDP++6HmZ96fOX6POlPQHkG/qJWbZr6G42OGTD9SU8SAb2fw 4rxX3H61IsnpBabGeveNI/zrqmgZSlqhJK/IuXVMWmam2cUdLzRuzkmfDWWIUh5i46Yb FVu84ITTYWAV6sWKsfML0PDgbGV/Pwf/EUc7JnrfL+LXZKiwyeJXu1zrHTHJe8CRT3qG 1H8g== X-Gm-Message-State: ACrzQf3F7HzhcLwSZYdtVa/ylmK6pBrTysHVR99p6U3kx6vaKVYySSmp 03vb5F8THZ3wOwZjKCn4EgxaYw== X-Google-Smtp-Source: AMsMyM71fQoy5ngCHvweGrpSziaR3QQE8FA2xSRdyGylOxe1SdKkG87lNq3RrvB/UbXpDBOEBcjUkQ== X-Received: by 2002:a17:902:c792:b0:17f:9255:3185 with SMTP id w18-20020a170902c79200b0017f92553185mr647099pla.100.1666059019750; Mon, 17 Oct 2022 19:10:19 -0700 (PDT) Received: from google.com ([240f:75:7537:3187:58b4:95a3:4654:2a9f]) by smtp.gmail.com with ESMTPSA id a5-20020a17090a740500b0020d526cc147sm10352314pjg.46.2022.10.17.19.10.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 19:10:19 -0700 (PDT) Date: Tue, 18 Oct 2022 11:10:15 +0900 From: Sergey Senozhatsky To: Andrew Morton Cc: Sergey Senozhatsky , Minchan Kim , Nitin Gupta , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCHv3 8/8] zram: correct typos Message-ID: References: <20221009090720.1040633-1-senozhatsky@chromium.org> <20221009090720.1040633-9-senozhatsky@chromium.org> <20221017170844.3284c18376b16713c09b315b@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20221017170844.3284c18376b16713c09b315b@linux-foundation.org> ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1666059021; a=rsa-sha256; cv=none; b=gQ2ttn0pM+2ascjp167zxoE/j5k/wXuZW9rA4H0rLWQp7ZWYQnPzfizeToyzUnOd0WzOtO wAK5Wf5Gx4ELEENU+beMsqXHQlg3P74qeAjgfjIeCPC+OFDzcLbRyqJ7Yvc7FvOjkjIXNM L26HYc5vu2Pl/0pvqqJwoVgUON5odyU= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=ajKiCjw2; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf07.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.216.54 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1666059021; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=pXq7vl1l4DCjha3jqz1NjXeWrlpGUKnIqvQa04QtbZg=; b=h9Akn932I+QwztvzfecaAQlsqO/Rgb/cUhlWl6jl/DkxNNTfIOPvufHk3bceLe60ZOARlm dBDy7HPQqKfu0efRP97v4Z9A3nDP0hPbOX2Wd2H1fNXtPhcdG4/Fj/nmS3vYa9T84Fx/ce 56Oi3bm2n9efb6OdZfk2CEMpIsThRj4= X-Rspamd-Queue-Id: 0A11B4002D Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=ajKiCjw2; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf07.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.216.54 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org X-Rspam-User: X-Rspamd-Server: rspam08 X-Stat-Signature: gghd9cajy66rzakxewbfoc3bbucjb9eu X-HE-Tag: 1666059020-666793 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: On (22/10/17 17:08), Andrew Morton wrote: > On Sun, 9 Oct 2022 18:07:20 +0900 Sergey Senozhatsky wrote: > > > Trivial comment typos fixes. > > > > --- a/drivers/block/zram/zram_drv.c > > +++ b/drivers/block/zram/zram_drv.c > > @@ -759,7 +759,7 @@ static ssize_t writeback_store(struct device *dev, > > zram_slot_unlock(zram, index); > > /* > > * Return last IO error unless every IO were > > - * not suceeded. > > + * not succeeded. > > That's a pretty awkward sentence. Why not "unless every IO failed". > > If that's indeed what we're doing here. Sounds odd. What do we return > if all IOs indeed failed? Hmm, yes, I didn't consider re-phrasing this comment but we probably should do so. What we have there is while (nr_pages_to_write--) { err = submit_bio_wait(); if (err) { ret = err; continue; } } return ret; zram objects are independent and bio errors on individual writes are non-fatal, if we failed to write-back a zram object (page) we just continue and try to write the next one; at the same time we need to signal user-space that some of those writes failed (doesn't matter which ones or how many). That loop used to look as follows (as far as I can tell): while (nr_pages_to_write--) { ret = submit_bio_wait(); } return ret; Notice how `ret' would get overwritten all the time, so we if we had, say, a successful submit_bio_wait, then an unsuccessful one and a successful one again, we would lose the track of the bio error that happened on the second iteration and will always return 0 to user-space. *Unless* the last (or all) submit_bio_wait() also failed, in which case `ret' would hold the correct error code. Will something like this look less awkward to you? --- diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index ecbc5963b5b8..23f1655b7837 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -758,8 +758,12 @@ static ssize_t writeback_store(struct device *dev, zram_clear_flag(zram, index, ZRAM_IDLE); zram_slot_unlock(zram, index); /* - * Return last IO error unless every IO were - * not succeeded. + * BIO errors are not fatal, we continue and simply + * attempt to writeback the remaining objects (pages). + * At the same time we need to signal user-space that + * some writes (at least one, but also could be all of + * them) were not successful and we do so by returning + * the most recent BIO error. */ ret = err; continue;