From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: ACJfBou3QehQ6Dk1XRy//Nyb7y2cavPvIqLUjwLvP5E9qAzEs0TaFy/sp39EheVWdjZPSUsj55vj ARC-Seal: i=1; a=rsa-sha256; t=1516349937; cv=none; d=google.com; s=arc-20160816; b=Fziti1G688GrpVVussm/lddJ32Tpdqew8iegKoFQJuppMIqI6xQ5uS4wAxVwKz3Xuc BQ+IPF2woul6+uQP2hZie0vIBnm4H1SJlLNEMHWRKRA09mxLHRQ6BPbq9HQgdZHQBFi+ u3rifEaku+HFChY5PFTsKpaSiPKRproRquAHuSxwkleyasrcYGztpQ3324cJBwHOeZ9n phL+nVlodNSMIz2TEjccBb35ZDJ9bDkcFl86WdzUc/m8RyDVHPGqldn89LyHK9EWi5r5 6NVEv7qcJbhfcOalhl8DIxr8U7FdZIwjs/89Zu1A1axaWK1ZE7AVHNdMzOt0X53IMEjs /I9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:arc-authentication-results; bh=4qsZ+8PpbTLiodJMmXGk1ydCJeFUzp1kH2Psd3CVHaU=; b=omef0O/NOvyG9ICqRdiXaf3S3FW2MhyITRLsFw1NsS2FCqShoSIOiMBexRoVnbe66E 9AJTAYihT/XcaUKBjy+d5kx4Tp5mFC8V7wpAaC+0shK9+iKfR0ld1KtqYbFnuZYbr8tG PgXH7XFcwfhhP7tBvMZtjmJJCVtLYHnfMMI/nj7qqAOBmjYREXLYA8q+6TgTl7kcqJCE vklMllQHJFvOfh38i9x1qJXGtbyuBEy0RlRwkcrNd0wPr7mapLJ3JSdx9pPXcoVV5k2z VaDmNThocdw/wmofv6x1caWZZJwPJ0oDxbZPe0wFJmlAT16E47i+2Ap1z/S34WP3Qarq pUKw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ivecera@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=ivecera@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Authentication-Results: mx.google.com; spf=pass (google.com: domain of ivecera@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=ivecera@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com From: Ivan Vecera To: linux-kernel@vger.kernel.org Cc: gregkh@linuxfoundation.org, tj@kernel.org, viro@zeniv.linux.org.uk Subject: [PATCH driver-core] kernfs: fix regression in kernfs_fop_write caused by wrong type Date: Fri, 19 Jan 2018 09:18:54 +0100 Message-Id: <20180119081854.13609-1-ivecera@redhat.com> X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1590008152180270660?= X-GMAIL-MSGID: =?utf-8?q?1590008152180270660?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: Commit b7ce40cff0b9 ("kernfs: cache atomic_write_len in kernfs_open_file") changes type of local variable 'len' from ssize_t to size_t. This change caused that the *ppos value is updated also when the previous write callback failed. Mentioned snippet: ... len = ops->write(...); <- return value can be negative ... if (len > 0) <- true here in this case *ppos += len; ... Fixes: b7ce40cff0b9 ("kernfs: cache atomic_write_len in kernfs_open_file") Signed-off-by: Ivan Vecera --- fs/kernfs/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c index 9698e51656b1..d8f49c412f50 100644 --- a/fs/kernfs/file.c +++ b/fs/kernfs/file.c @@ -275,7 +275,7 @@ static ssize_t kernfs_fop_write(struct file *file, const char __user *user_buf, { struct kernfs_open_file *of = kernfs_of(file); const struct kernfs_ops *ops; - size_t len; + ssize_t len; char *buf; if (of->atomic_write_len) { -- 2.13.6