Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp8076317ybi; Tue, 23 Jul 2019 02:26:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqxfmzSK3NoCtcwGhEny8ViFp7Gi5y35tQkJU8R9b9WN3NnG/BYyMYsEvOyDqnWBNfj0ieI5 X-Received: by 2002:a63:2f44:: with SMTP id v65mr74150048pgv.185.1563873990478; Tue, 23 Jul 2019 02:26:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563873990; cv=none; d=google.com; s=arc-20160816; b=rCuNolZEgZLxvefNWgL3QIQww2Frgq+6jIy6p2lALzxTdtA00MzGg1rtQzFC+PFtIh pVm62rcdBftxeZIwHGZBogFxb/er3uE/mpD/shdruoofFr0nuQ/i9Mgd1Qor2w7ww7IR MwG8mUcW0UjvrImHmAdUisR0ep+aaD8NoVa0Az6Xhfeh/jO3CRUrAY1xoEDnSRVyoUcl qflKuFKcx2jgTNpBSHEG7EleHQ2ekf+MkELDpqWh3bwiFFuDHzJsaJDsSndD/88RkK2j Y1HTTCnlty3yfj9Yfl5GClbGZeQR8p8nBb7YqQE8i6viB2vNBdD6PXlW19f/wJI/z+hW HoPg== 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=KWAuRaa6qc34wEA//JDDq3k1Tx70xH3Sz40ckd5+uJV8ANkNseDKS5B94dAFtVbh96 esxKt+wC4OBoEgwbN12C12/0oZbqhe0ElLDhfVN1jhfKjN+Zs8xY50co8zbSoVPuLCx6 JaCIX5FqeUvcAcqpWzLDqLSD9UwHuo6gnBKZ4FLK51wiDxxTQqkEo+qlLiAviMUm07rm FjBzhw0mc73BhbPpcBIZgQzmjrkPrnXI1o1YG+I8K23S+t91n23Z8nKfYq9Di2YsCPQP UvMbzIFxkQusB4op5RfnbDHTO+b4LMlKCNaH3bZtwaFjbbO/FDbfzVNRigMcZwJwTWkP hoMQ== 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 m15si14001186pgt.495.2019.07.23.02.26.14; Tue, 23 Jul 2019 02:26:30 -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 S2387976AbfGWDJU (ORCPT + 99 others); Mon, 22 Jul 2019 23:09:20 -0400 Received: from ex13-edg-ou-002.vmware.com ([208.91.0.190]:6500 "EHLO EX13-EDG-OU-002.vmware.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387971AbfGWDJT (ORCPT ); Mon, 22 Jul 2019 23:09:19 -0400 Received: from sc9-mailhost2.vmware.com (10.113.161.72) by EX13-EDG-OU-002.vmware.com (10.113.208.156) with Microsoft SMTP Server id 15.0.1156.6; Mon, 22 Jul 2019 20:09:04 -0700 Received: from akaher-lnx-dev.eng.vmware.com (unknown [10.110.19.203]) by sc9-mailhost2.vmware.com (Postfix) with ESMTP id E05E6B24DB; Mon, 22 Jul 2019 23:09:13 -0400 (EDT) From: Ajay Kaher To: CC: , , , , , , , , , , , , , , , , , , Miklos Szeredi , Al Viro Subject: [PATCH 7/8] pipe: add pipe_buf_get() helper Date: Tue, 23 Jul 2019 16:38:30 +0530 Message-ID: <1563880111-19058-8-git-send-email-akaher@vmware.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1563880111-19058-1-git-send-email-akaher@vmware.com> References: <1563880111-19058-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