Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp5909263ybp; Tue, 8 Oct 2019 10:01:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqzXBixT3VKX2d4BUO961sPRxHwdxIBQdJBJcNDGCbnZuLY1V1lVZds/MDBQIuGLrp4BEDk5 X-Received: by 2002:a17:906:254d:: with SMTP id j13mr29789734ejb.30.1570554104985; Tue, 08 Oct 2019 10:01:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570554104; cv=none; d=google.com; s=arc-20160816; b=F21T6SPWw4QSQAFg+QB3An1Gw95ZVH98FN+hUskn5j6ZYiw5+ssiOTzC0hhTdBg/Bl SLYnNArLlSOStYNJtkbBU3tNN2sVv0MrjITIDv0ubxQD7ytLPwuhyji2fI7ojeRVpa55 ezv4sdnoleUyprUbI37Z8IGQkwkk0yVBP8B7E0SfidyB30SkXCu2AYq62eCcz1fCJQIE dh8zrN58fyc0T9yemH/R99VSXj6CCfMnJDaR3QrjRZMT8CCZbzeUBtfU5ns7LLUBFS+L Wk70Zb1tpcNuyNTOwkB0oSiKbNtpZ2lbBiVkeDFZBwlcizFzQOSWPURi8Dd8q1YdlPN5 wy0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=VJ2rPUXPjeQS1RTgKiJhCoOMG9Wm0cB49p63O/cxTqA=; b=FvlHq6dWv7NZ7ccUTNYX8IwZLcclyELDkE46o9RD/bTikQzxJIclmiDKT1/Y/DCiPD lG2d2FSJN5a2GU9HBL7Yhwwylao+T5ZAlNtMJZDaDKzsDP8NLQslNbUjWT8n0Iub0E1d hYvax4tgAbcuIkh5TCqsCky736OUfc0XMaxXfBQvD0gAP7BnIPTHHwWpU9SB6UXSUW6m aYTh/0tF0Rtv/OkCzQsQsvi8i+wxJ0FF1tkCCeEhFy5BT9EHYxP5kEbCgnJz8WfHVReE 3Kz+3L5My9rfWqYJ+Yc+FtDMRTehDdMKzC24Z+rXCr9K2IQWLfi57Qi8f2gf/YNUCVwQ qzYA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=vmware.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q13si9287239eju.46.2019.10.08.10.01.19; Tue, 08 Oct 2019 10:01:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=vmware.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729604AbfJHQ7q (ORCPT + 99 others); Tue, 8 Oct 2019 12:59:46 -0400 Received: from ex13-edg-ou-002.vmware.com ([208.91.0.190]:32052 "EHLO EX13-EDG-OU-002.vmware.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729589AbfJHQ7q (ORCPT ); Tue, 8 Oct 2019 12:59:46 -0400 Received: from sc9-mailhost3.vmware.com (10.113.161.73) by EX13-EDG-OU-002.vmware.com (10.113.208.156) with Microsoft SMTP Server id 15.0.1156.6; Tue, 8 Oct 2019 09:44:42 -0700 Received: from akaher-lnx-dev.eng.vmware.com (unknown [10.110.19.203]) by sc9-mailhost3.vmware.com (Postfix) with ESMTP id 6C20640C00; Tue, 8 Oct 2019 09:44:39 -0700 (PDT) From: Ajay Kaher To: CC: , , , , , , , , , , , , , , , , , , , Al Viro Subject: [PATCH v2 7/8] pipe: add pipe_buf_get() helper Date: Wed, 9 Oct 2019 06:14:22 +0530 Message-ID: <1570581863-12090-8-git-send-email-akaher@vmware.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1570581863-12090-1-git-send-email-akaher@vmware.com> References: <1570581863-12090-1-git-send-email-akaher@vmware.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: None (EX13-EDG-OU-002.vmware.com: akaher@vmware.com does not designate permitted sender hosts) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Miklos Szeredi commit 7bf2d1df80822ec056363627e2014990f068f7aa upstream. Signed-off-by: Miklos Szeredi Signed-off-by: Al Viro Signed-off-by: Ajay Kaher Reviewed-by: Srivatsa S. Bhat (VMware) --- fs/fuse/dev.c | 2 +- fs/splice.c | 4 ++-- include/linux/pipe_fs_i.h | 11 +++++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index f5d2d23..36a5df9 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -2052,7 +2052,7 @@ static ssize_t fuse_dev_splice_write(struct pipe_inode_info *pipe, pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1); pipe->nrbufs--; } else { - ibuf->ops->get(pipe, ibuf); + pipe_buf_get(pipe, ibuf); *obuf = *ibuf; obuf->flags &= ~PIPE_BUF_FLAG_GIFT; obuf->len = rem; diff --git a/fs/splice.c b/fs/splice.c index 8398974..fde1263 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -1876,7 +1876,7 @@ retry: * Get a reference to this pipe buffer, * so we can copy the contents over. */ - ibuf->ops->get(ipipe, ibuf); + pipe_buf_get(ipipe, ibuf); *obuf = *ibuf; /* @@ -1948,7 +1948,7 @@ static int link_pipe(struct pipe_inode_info *ipipe, * Get a reference to this pipe buffer, * so we can copy the contents over. */ - ibuf->ops->get(ipipe, ibuf); + pipe_buf_get(ipipe, ibuf); obuf = opipe->bufs + nbuf; *obuf = *ibuf; diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index 24f5470..10876f3 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h @@ -115,6 +115,17 @@ struct pipe_buf_operations { void (*get)(struct pipe_inode_info *, struct pipe_buffer *); }; +/** + * pipe_buf_get - get a reference to a pipe_buffer + * @pipe: the pipe that the buffer belongs to + * @buf: the buffer to get a reference to + */ +static inline void pipe_buf_get(struct pipe_inode_info *pipe, + struct pipe_buffer *buf) +{ + buf->ops->get(pipe, buf); +} + /* Differs from PIPE_BUF in that PIPE_SIZE is the length of the actual memory allocation, whereas PIPE_BUF makes atomicity guarantees. */ #define PIPE_SIZE PAGE_SIZE -- 2.7.4