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,
> };
prev parent 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.