All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Whitehouse <swhiteho@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [GFS2 PATCH] GFS2: Allocate reservation during splice_write
Date: Thu, 19 Feb 2015 20:58:51 +0000	[thread overview]
Message-ID: <54E64E8B.7070805@redhat.com> (raw)
In-Reply-To: <513731613.16234990.1424370256954.JavaMail.zimbra@redhat.com>

Hi,

On 19/02/15 18:24, Bob Peterson wrote:
> Hi,
>
> This patch adds a GFS2-specific function for splice_write which
> first calls function gfs2_rs_alloc to make sure a reservation
> structure has been allocated before attempting to reserve blocks.
>
> Regards,
>
> Bob Peterson
> Red Hat File Systems
>
> Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Acked-by: Steven Whitehouse <swhiteho@redhat.com>

Steve.

> ---
>   fs/gfs2/file.c | 20 ++++++++++++++++++--
>   1 file changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
> index ec9c2d3..bd86e79 100644
> --- a/fs/gfs2/file.c
> +++ b/fs/gfs2/file.c
> @@ -1063,6 +1063,22 @@ static int gfs2_flock(struct file *file, int cmd, struct file_lock *fl)
>   	}
>   }
>   
> +static ssize_t gfs2_file_splice_write(struct pipe_inode_info *pipe,
> +				      struct file *out, loff_t *ppos,
> +				      size_t len, unsigned int flags)
> +{
> +	int error;
> +	struct gfs2_inode *ip = GFS2_I(out->f_mapping->host);
> +
> +	error = gfs2_rs_alloc(ip);
> +	if (error)
> +		return (ssize_t)error;
> +
> +	gfs2_size_hint(out, *ppos, len);
> +
> +	return iter_file_splice_write(pipe, out, ppos, len, flags);
> +}
> +
>   const struct file_operations gfs2_file_fops = {
>   	.llseek		= gfs2_llseek,
>   	.read		= new_sync_read,
> @@ -1077,7 +1093,7 @@ const struct file_operations gfs2_file_fops = {
>   	.lock		= gfs2_lock,
>   	.flock		= gfs2_flock,
>   	.splice_read	= generic_file_splice_read,
> -	.splice_write	= iter_file_splice_write,
> +	.splice_write	= gfs2_file_splice_write,
>   	.setlease	= simple_nosetlease,
>   	.fallocate	= gfs2_fallocate,
>   };
> @@ -1107,7 +1123,7 @@ const struct file_operations gfs2_file_fops_nolock = {
>   	.release	= gfs2_release,
>   	.fsync		= gfs2_fsync,
>   	.splice_read	= generic_file_splice_read,
> -	.splice_write	= iter_file_splice_write,
> +	.splice_write	= gfs2_file_splice_write,
>   	.setlease	= generic_setlease,
>   	.fallocate	= gfs2_fallocate,
>   };



      reply	other threads:[~2015-02-19 20:58 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1430204999.16233751.1424370137061.JavaMail.zimbra@redhat.com>
2015-02-19 18:24 ` [Cluster-devel] [GFS2 PATCH] GFS2: Allocate reservation during splice_write Bob Peterson
2015-02-19 20:58   ` Steven Whitehouse [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54E64E8B.7070805@redhat.com \
    --to=swhiteho@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.